【发布时间】:2015-05-13 07:10:20
【问题描述】:
我的系统有以下部分:
- ActiveMQ 5.8.0
- Glassfish 3.0 上部署了 4 个耳朵
- 连接到部署在 Glassfish 上的 Web 服务的 .net 客户端
(这些似乎都没有使用activemq)
系统可以完美运行数月,直到出现 InactivityIOException (ActiveMQ) 失败
2015-03-11 08:23:17,369 警告 |传输连接到:tcp://127.0.0.1:33130 > 失败: org.apache.activemq.transport.InactivityIOException:通道是 太长(>30000)不活动:tcp://127.0.0.1:33130 | org.apache.activemq.broker.TransportConnection.Transport |活动MQ InactivityMonitor Worker
一段时间后 Glassfish 崩溃
|2015-03-11T08:37:08.845+0100|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=120519;_ThreadName=Thread-2; |2015-03-11 08:34:30,418 [0.1:61616@33130] 错误 ActiveMQEndpointWorker - 与代理的连接失败:java.io.EOFException javax.jms.JMSException:java.io.EOFException 在 org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49) 在 org.apache.activemq.ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1969) 在 org.apache.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:1988) 在 org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:101) 在 org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:126) 在 org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:101) 在 org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:101) 在 org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:160) 在 org.apache.activemq.transport.AbstractInactivityMonitor.onException(AbstractInactivityMonitor.java:332) 在 org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:96) 在 org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:200) 在 java.lang.Thread.run(Thread.java:744) 引起: java.io.EOFException 在 java.io.DataInputStream.readInt(DataInputStream.java:392) 在 org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:275) 在 org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:221) 在 org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:213) 在 org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196) ... 1 更多 |#] [#|2015-03-11T08:45:44.211+0100|警告|glassfish3.1.2|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=19;_ThreadName=Thread-2;|GRIZZLY0023: 中断空闲线程:http-thread-pool-8080(4).|#]
我读了ActiveMQ:'channel inactive for too long' exceptions stop broker messaging,但我不想停止 InactivityMonitor,设置更高的超时值并不能解决我的问题(只是推迟它),问题是:为什么我会收到这个 inactivityException 以及为什么 GF出去玩?
【问题讨论】: