【发布时间】:2014-10-29 15:52:33
【问题描述】:
我正在开发 WSO2 ESB 4.8.1,并面临有关暂停匿名端点的问题。场景是:TCP/IP 传输接收器(自定义一个)-> 代理-> 调用 HTTP 端点。 在启动运行时,我的自定义传输接收器将使用 TCP/IP 协议连接到另一台机器并启动侦听器消息事件。当消息事件到来时,传输接收器会将消息事件格式化为 JSON 格式并将其发送到预定义的 Proxy(即使已发生挂起的匿名端点,此步骤也能正常工作)。代理内部的实现非常简单,只需发送到 HTTP 端点:
<property name="messageType" value="application/json" scope="axis2" />
<property name="Accept" scope="transport" value="application/json" />
<payloadFactory media-type="json">
<format>$1</format>
<args>
<arg evaluator="json" expression="$.eventMessage" />
</args>
</payloadFactory>
<call>
<endpoint>
<http method="post" uri-template="http://localhost:9080/goal"></http>
</endpoint>
</call>
除了暂停的匿名端点已经发生(例如 HTTP 端点已关闭)之外,该过程工作正常,然后我可以看到如下日志消息:
WARN {org.apache.synapse.endpoints.EndpointContext} - Suspending endpoint : AnonymousEndpoint - current suspend duration is : 30000ms - Next retry after : Tue Oct 28 17:38:23 ICT 2014
如果我停止传输接收器的请求流量并重新启动 HTTP 端点,30 毫秒后端点可以恢复服务
如果传输接收器的请求流量仍在运行,我看到上面的日志消息显示了几次,然后 ESB 服务器不再记录该消息。此时,HTTP 端点被挂起,除了重新启动 ESB 服务器外,再也不会恢复服务
我还看到了这条日志消息:
WARN {org.apache.synapse.core.axis2.TimeoutHandler} - Expiring message ID : urn:uuid:5dcedb38-3f9a-4a75-a201-ae4e76428216; dropping message after global timeout of : 120 seconds
这对我来说真的很奇怪,我想知道我是否在这里做错了什么。我真的很需要你们的建议
最好的问候,
安
【问题讨论】:
标签: wso2 wso2esb esb wso2carbon