我有JMS队列消息处理器序列,请求发送到SOAP端点。但是,该端点的要求可能需要很长时间,最多30分钟左右。如何配置ESB以允许长时间值?目前,我在60秒后会遇到关注错误:
[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/conf/passthru -http.properties中,似乎可以解决超时问题。
假设这是"计划的消息转发处理器",以将发送超时提高到30分钟:
- 在您的端点中,验证"连接超时"是"从不超时" (编辑控制台中的端点,并显示"高级"选项")
- 编辑存储库/conf/synapse.properties 和修改 Synapse.global_timeout_interval (在MS):这是最大时间回调实例将存在于WSO2中以接收响应
- 复制示例 axis2 conf文件从samples/axis2client/client_repo/conf/axis2.xml到例如存储库/conf/axis2/axis2_mp.xml
- 编辑此axis2_mp.xml配置,查找 transportsender name =" http" 并添加参数" so_timeout" (在MS):
<parameter name="SO_TIMEOUT" locked="false">108000000</parameter>
- 编辑您的消息处理器和显示其他参数,指定条目" axis2 Configuration "
so_timeout是等待响应的时候了。您可以在最大时间为建立连接的最大时间指定Connection_timeout。
请注意:所有回调将在ESB中持续30分钟!