我使用Camel Netty通过TCP套接字进行全双工通信。 我的应用程序在路径中使用以下参数。
<inOut uri="netty:tcp://{{IP-Port}}?
textline=true&sync=true&decoderMaxLineLength=1000000&autoAppendDelimiter=false&disconnect=false&producerPoolMaxActive=-1&producerPoolMinEvictableIdle=120000&keepAlive=false&noReplyLogLevel=INFO&serverExceptionCaughtLogLevel=INFO&requestTimeout=2500" />
上面的netty组件接收来自流中前一个窃听的请求。
在大约8-10小时后的一天中,某些连接显示为ESTABLISHED状态,但不会提供任何请求。即使在服务器端,这些连接也显示为ESTABLISHED,但几小时内没有活动。
当我们仔细查看一个连接时,发现最后一个请求尝试(服务器未收到)是将端口写入端点并获得异常org.apache.camel.processor.DefaultErrorHandler - 传递失败(MessageId:xxxxx在ExchangeId上:ID-xxxx)。交货尝试时:0
由于netty是通过窃听方式调用的,因此在最后一次请求之后,连续的请求甚至不被接受,并且它们在窃听本身中被阻止..
我今晚稍后会收集tcpdump以获取更多详情。
问题:
1. Why is producerPoolMinEvictable NOT kicking in to clear such stale connections?
2. How do we clear these stale connections automatically without having to
bounce the application?
3. Is there a problem using wiretap?
感谢您提出解决此问题的建议。请询问需要回答的更多细节,我将很乐意与您分享。
注意:
骆驼网状
2.11.2-