不稳定的javax.jms.JMSException:对等处理
我对Java JMS有一个不稳定的问题。 For moments工作正常,但不稳定地抛出以下异常并中断执行 需要注意的是,这种情况在不停止代理的情况下发生不稳定的javax.jms.JMSException:对等处理,java,jms,activemq,Java,Jms,Activemq,我对Java JMS有一个不稳定的问题。 For moments工作正常,但不稳定地抛出以下异常并中断执行 需要注意的是,这种情况在不停止代理的情况下发生 javax.jms.JMSException: Peer (vm://test#1) disposed. at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49) at org.apache.activ
javax.jms.JMSException: Peer (vm://test#1) disposed.
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
at org.apache.activemq.ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1773)
at org.apache.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:1790)
at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:99)
at org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:114)
at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:99)
at org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:203)
at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.activemq.transport.TransportDisposedIOException: Peer (vm://test#1) disposed.
我认为这可能是ActiveMQ的问题:
这个问题跟踪线程说它是无害的(它只是一个嘈杂的信息级别日志消息),并且它在ActiveMQ 5.4.2中得到了修复
另一方面,你说异常“削减执行”。。。这可能意味着这与你的问题不同
更新
任何一个通过升级ActuMeq而不固定的“对等处理”异常,不应该考虑关机(见),应该考虑提交一个bug报告。
看起来海报的问题是完全不同的。该链接提到了一条嘈杂的信息级日志消息,但上面(这也是我得到的)是一个抛出的JMSException,它包含由以下原因引起的
子句中的额外行
at org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:88)
at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:68)
at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
at org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnection.java:1275)
... 31 more
奇怪的是,存在一个连接。isClosed()在它到达这一步之前进行检查。因此,连接是开放的,但“对等方”仍处于释放状态。通过在线研究其他可能的答案,唯一可能的解决方案是,到代理的连接是完整的,但特定的队列可能会关闭
在我的类似案例中,当代理停止时发生了这种情况,但消费者和生产者仍在尝试建立连接。有时连接仍然被认为是打开的(即,即使代理已停止,也未关闭)。解决了这个问题以确保经纪人不会死,解决了我的问题
我还想补充一点,我在ActiveMQ 5.6中看到过这个问题(但我没有在5.8中测试过)。您需要发布更多信息、示例代码等,以便我们提供帮助。除非我遗漏了什么,否则海报的问题似乎完全不同。该链接提到了一个嘈杂的信息级别日志消息,但上面(这也是我得到的)是一个抛出的JMSException,它在Caused by:子句下有这些额外的行。您应该为此提交一个bug报告。