包含MessageTimeoutException,连接已关闭。我不想关闭MessageTimeoutException的连接,因为我需要通过相同的出站通道发送重试消息。
为了保持此连接的活跃性,我想将超时设置为无穷大。我试过了clientFactory.setSoTimeout(-1)
,但它没有用。即使我也试过gateway.setRemoteTimeout(-1)
。
请帮忙,我怎样才能将超时设置为无穷大?
我设置了gateway.setRequestTimeout(10000),对于超时,我得到MessageTimeoutException,文本为
"Timed out waiting for response"
错误,我应该在哪里"Timed out waiting for connection".
请提出建议。
答案 0 :(得分:0)
您可以将远程超时设置为Long.MAX_VALUE
,这实际上是无穷大。这将永远等待(除非您在连接工厂上设置套接字超时)。我不建议那样做;选择更合理的超时。
因为我需要通过相同的出站频道发送重试消息
你做不到;我们必须关闭套接字,因为我们失去了任何关联响应的方法 - 我们可能会在发送第二条消息后得到第一条消息的响应。一旦我们超时,那个套接字必须被认为是“脏”的,所以我们关闭它。
网关严格用于请求/响应消息传递。如果要使用任意对等消息传递,则需要使用一对通道适配器。