WSO2 ESB:暂停anonymousendpoint

时间:2014-10-29 03:39:48

标签: wso2 wso2esb esb wso2carbon

我正在研究WSO2 ESB 4.8.1并面临有关暂停匿名端点的问题。场景是:TCP / IP传输接收器(自定义的) - >代理 - >调用HTTP端点。 在启动运行时,我的自定义传输接收器将使用TCP / IP协议连接到另一台计算机并启动侦听器消息事件。当消息事件到来时,传输接收器将消息事件格式化为JSON格式并将其发送到预定义的代理(即使已发生暂停的匿名端点,此步骤仍然正常)。代理端的工具非常简单,只需发送到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 ms后端点可以恢复服务

如果传输接收器上的请求流量仍在运行,我看到上面的日志消息显示几次,然后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

这对我来说真的很奇怪,我想知道我在这里做错了什么。我真的需要你的建议人

致以最诚挚的问候,

这是

1 个答案:

答案 0 :(得分:1)

使用命名端点并配置暂停和超时,看一下:https://docs.wso2.com/display/ESB481/Endpoint+Error+Handling

如果您不想丢失任何消息,并且如果您的http端点可能会长时间停用,那么您应该考虑使用带有消息存储和消息处理器的保证传递,请查看:{{ 3}}