2014-10-29 41 views
1

我正在使用WSO2 ESB 4.8.1並面臨有關掛起的匿名端點的問題。該場景是:TCP/IP傳輸接收器(自定義) - >代理 - >調用HTTP端點。 在啓動運行時,我的自定義傳輸接收器將通過使用TCP/IP協議連接到另一臺計算機並啓動偵聽器消息事件。當消息事件到來時,傳輸接收器將會將消息事件格式化爲JSON格式並將其發送到預定義的代理(即使暫停的匿名端點已經發生,此步驟仍然運行良好)。中端執行代理非常簡單,只需發送到HTTP端點:WSO2 ESB:暫停anonymousendpoint

<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毫秒的端點可以在運回維修

如果請求通信接收器仍在運行,我是w上面的日誌消息顯示幾次,然後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

使用一個名爲端點和配置懸掛和超時,看看有:https://docs.wso2.com/display/ESB481/Endpoint+Error+Handling

如果你不想失去任何消息,如果你的http端點可以長時間關閉例如,你應該考慮使用帶有消息存儲和消息處理器的保證交付,看看那裏:https://docs.wso2.com/display/IntegrationPatterns/Guaranteed+Delivery

+0

嗨米歇爾,謝謝回覆。其實我使用連接器結構來構建模板並使用端點。任何方式,我必須建立自定義中介來調用我的HTTP端點,不再有暫停情況 – 2014-10-30 09:34:33