2014-01-20 67 views
2

我有JMS隊列消息處理器序列,其中請求發送到SOAP端點。然而,對此端點的請求可能需要很長時間,最長可達30分鐘左右。我怎樣才能配置ESB允許長超時值?目前,我收到以下錯誤60秒後:wso2 esb如何增加端點超時

[2014-01-20 14:18:31,772] WARN - TargetHandler http-outgoing-4: Connection time out while in state: REQUEST_DONE 
[2014-01-20 14:18:31,775] WARN - SynapseCallbackReceiver Synapse received a response for the request with message Id : urn:uuid:c6a023c2-7fb4-4321-b1c2-d78e9bb13add But a callback is not registered (anymore) to process this response 

感謝所有幫助

編輯:我添加http.socket.timeout = 1800000 -property在庫/ conf目錄/ passthru-http.properties這似乎解決了超時問題。

+0

我知道這是脫離主題,我可能會downvoted,但在http上阻塞30分鐘幾乎總是一個壞主意... – Mainguy

回答

1

假設這是一個「計劃的消息轉發處理器」,以增加發送超時長達30分鐘:

  1. 在你端點,確認「連接超時」是「永不 超時「(編輯端點在控制檯和 」顯示高級 選項「)
  2. 編輯庫/ conf目錄/ synapse.properties和修改 synapse.global_timeout_interval(毫秒):這是接收響應
  3. 複製樣本的axis2 CONF文件 從樣本/ axis2Client/client_repo/CONF/Axis2中的最長時間 回調實例將在WSO2存在。 XML,例如, 庫/ conf目錄/ Axis2的/ axis2_mp.xml
  4. 編輯本axis2_mp.xml配置,發現 transportSender名= 「HTTP」,並添加參數 「SO_TIMEOUT」(毫秒): <parameter name="SO_TIMEOUT" locked="false">108000000</parameter>
  5. 編輯信息處理器和顯示其他參數,指定入口「Axis2配置」到資源庫/ conf目錄/ Axis2的/ axis2_mp.xml

SO_TIMEOUT是等待響應的時間。 您可以指定CONNECTION_TIMEOUT建立連接的最長時間。

注意:全部在ESB中回調將持續長達30分鐘!

+0

謝謝,其實我使用「消息採樣處理器」,其中發送 - 調解器用於調用SOAP端點。 – kleht8

+0

在這種情況下,我認爲你只需要考慮點1和2 –

+0

是更改** synapse.global_timeout_interval **並在repository/conf/passthru-http中添加** http.socket.timeout = 1800000 ** -property。屬性似乎解決了這個問題。 – kleht8