【问题标题】:WSO2 ESB work with MBWSO2 ESB 与 MB 一起使用
【发布时间】:2014-03-21 06:50:17
【问题描述】:

我正在尝试从本地客户端向 ESB 发送消息并将其重定向到同一服务器上的 MB。 消息传递给 MB。客户端等待响应,直到应用服务器抛出错误。

我的环境如下 WSO2 ESB 4.8.0(端口偏移 1) WSO2 MB 2.1.1(端口偏移 2) IBM WebSphere 应用服务器 8.5.5.1

ESB的代理服务配置

<proxy name="SMSQProdProxy" transports="http" startOnLoad="true" trace="enable">
    <target>
        <inSequence>
            <property name="OUT_ONLY" value="true"/>
            <send>
                <endpoint>
                    <address uri="jms:/SMSQ?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&amp;java.naming.provider.url=repository/conf/jndi.properties&amp;transport.jms.DestinationType=queue"/>
                </endpoint>
            </send>
         </inSequence>
         <outSequence>
            <send/>
         </outSequence>
    </target>
    <publishWSDL key="gov:/trunk/services/SendToSMSQProxy.wsdl">
       <resource location="SMSWSService_schema1.xsd"
               key="gov:/trunk/services/SMSWSService_schema1.xsd"/>
    </publishWSDL>
</proxy>

jndi.properties

connectionfactory.QueueConnectionFactory = amqp://admin:admin@carbon/carbon?brokerlist='tcp://localhost:5674'
connectionfactory.TopicConnectionFactory = amqp://admin:admin@carbon/carbon?brokerlist='tcp://localhost:5674'
queue.SMSQ = SMSQ

wso2-esb-errors.log

2014-03-21 14:18:54,276 [-] [HTTP-Listener I/O dispatcher-1] WARN SourceHandler Connection time out after request is read: http-incoming-3

wso2-esb-trage.log

INFO TRACE_LOGGER Proxy Service SMSQProdProxy 
received a new message from : xx.xx.xx.xx
INFO TRACE_LOGGER Message To: /services/SMSQProdProxy
INFO TRACE_LOGGER SOAPAction:
INFO TRACE_LOGGER WSA-Action:
INFO TRACE_LOGGER Using the anonymous in-sequence of the proxy service for mediation
INFO TRACE_LOGGER Start : Sequence <anonymous>
INFO TRACE_LOGGER Sequence <SequenceMediator> :: mediate()
INFO TRACE_LOGGER Mediation started from mediator position : 0
INFO TRACE_LOGGER Start : Property mediator
INFO TRACE_LOGGER Setting property : OUT_ONLY at scope : default to : true (i.e. constant : true)
INFO TRACE_LOGGER End : Property mediator
INFO TRACE_LOGGER Start : Send mediator
INFO TRACE_LOGGER Sending message through endpoint : null resolving to address = jms:/SMSQ?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&java.naming.provider.url=repository/conf/jndi.properties&transport.jms.DestinationType=queue
INFO TRACE_LOGGER SOAPAction:
INFO TRACE_LOGGER WSA-Action:
INFO TRACE_LOGGER End : Send mediator
INFO TRACE_LOGGER End : Sequence <anonymous>

应用服务器的错误日志

java.io.IOException: Async IO operation failed (3), reason: RC: 55

感谢您的任何想法。

添加&lt;property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/&gt;后,我收到另一条错误消息

2014-03-26 22:17:23,354 [-] [http-nio-9443-exec-15] WARN AuthenticationHandler 在 [2014-03-26 22:17:23,0353] 的 IP 地址尝试非法访问尝试验证对服务 StatisticsAdmin 的访问时为 null 2014-03-26 22:17:23,354 [-] [http-nio-9443-exec-15] ERROR AUDIT_LOG Illegal access attempt at [2014-03-26 22:17:23,0353] from IP address null 尝试时验证对服务 StatisticsAdmin 的访问 2014-03-26 22:17:23,355 [-] [http-nio-9443-exec-15] 错误 StatisticsAdminClient 无法获取服务 SMSQProdProxy 的服务统计信息。后端服务器可能不可用。 org.apache.axis2.AxisFault:传入消息的输入流为空。

有类似问题https://wso2.org/jira/browse/WSAS-1214

【问题讨论】:

  • 您确定 repository/conf/jndi.properties 配置正确吗?
  • 亲爱的 Jean,我在这篇文章中添加了 jndi.properties。谢谢。
  • Yohan,我不确定您要解决什么问题。消息没有发送到 MB 吗?您需要知道如何解决客户端超时问题吗?
  • 亲爱的克里斯。 MB 确实收到了客户端发出的消息,但客户端不知道该过程已完成,并且仍在等待 ESB 的响应,直到超时。我不确定是否缺少任何东西,因此响应没有从 MB 发送到 ESB 或从 ESB 发送到客户端?

标签: wso2 wso2esb


【解决方案1】:

您可以在 OUT_ONLY 属性之后将以下内容添加到您的序列中以返回给客户端。此属性将强制 ESB 使用 HTTP 202 响应客户端。

<property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>

【讨论】:

  • 克里斯,感谢您的回复。有用。我收到了新的错误消息并将其粘贴到问题中。
【解决方案2】:

约汉, 您遇到的新错误似乎与 MB 集成流程无关。您是否在会话超时后访问了管理控制台?你能连续重现这个问题吗?还是这只是一次发生?

【讨论】:

  • Charitha,我可以连续重现这个问题。是的,我在超时之前/之后访问了管理控制台。如果您需要,我可以提供此问题的任何详细信息。
【解决方案3】:

当您将 OUT_ONLY 属性设置为 true 时,您的意思是,您无需等待代理结束后的响应。因此,在 outSequence 中删除 send 中介。

如果要强制代理向客户端发送响应,请删除 Out_Only 属性,并在 inSequence 部分中将其设置在 endPoint 调解器之后。

property name="FORCE_SC_ACCEPTED"  value="true"  scope="axis2"  type="STRING"

outSequence 部分保留&lt;send/&gt; mediator...

【讨论】:

    猜你喜欢
    • 2017-06-24
    • 1970-01-01
    • 2016-08-18
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    相关资源
    最近更新 更多