重复日志:警告传输连接到 tcp:<ip> failed: java.net.SocketException: Connection reset

Posted

技术标签:

【中文标题】重复日志:警告传输连接到 tcp:<ip> failed: java.net.SocketException: Connection reset【英文标题】:Repeated log : Warn Transport Connection to tcp:<ip> failed: java.net.SocketException: Connection reset 【发布时间】:2014-05-12 21:28:12 【问题描述】:

出于开发目的(Windows 7),我在本地计算机上运行 ActiveMQ 5.9.0 版本。我使用 AMQP 作为协议,使用 Apache qpid 作为客户端来使用来自 activeMQ 代理(AMQP 1.0 协议)的消息(发布订阅)。

虽然我已经在activemq.xml 中注释掉了除amqp 之外的所有协议,但我仍然会定期在代理日志中看到以下消息(标准输出):

WARN: Transport Connect to tcp://<ip> failed: java.net.SocketException: Connection reset 

我确实尝试“取消注释”activemq.xml 中的 openwire 协议定义并附加 transport.useInactivityMonitor=false(基于谷歌搜索):

我仍然无法让警告消息消失。

【问题讨论】:

【参考方案1】:

我自己没用过。但是 amqp 协议在幕后使用了 tcp 传输。该协议的使用记录在here。您也可以将其配置为使用 nio。有useInactivityMonitor=false 是hardcoded。您可以通过在连接 uri 中设置这些选项来修改 amqp 传输上的传输选项。例如:

<transportConnectors>
   <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?transport.keepAlive=true"/>
</transportConnectors>

tcp 传输选项记录在 here。

【讨论】:

以上是关于重复日志:警告传输连接到 tcp:<ip> failed: java.net.SocketException: Connection reset的主要内容,如果未能解决你的问题,请参考以下文章

Unity TCP 客户端:连接到服务器

TCP/IP协议:网络设备

最佳实践:每次传输后保持 TCP/IP 连接打开还是关闭?

从浏览器建立任意 TCP 连接 [重复]

如何避免只连接到 ActiveMQ 中的一个代理?

从外部IP将TCP客户端连接到我的服务器