2011-05-20 13 views
4

Java JMSで異常な問題があります。 momentsはうまく動作しますが、次の例外が異常にスローされ、実行が中断されます。異常なjavax.jms.JMSException:ピアが破棄されました

これは、ブローカを停止することなく行われることに注意することが重要です。

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. 
+1

私たちが助けることができるように、より多くの情報、サンプルコードなどを投稿する必要があります –

答えて

3

私はそれがはActiveMQので、この問題ことができると思います:https://issues.apache.org/jira/browse/AMQ-2902

この問題トラッカースレッドが(それだけでうるさいINFOレベルのログメッセージである)、それは無害であると言う、それが固定されていることActiveMQ 5.4.2で。

一方、あなたは

UPDATE

...例外 これはあなたに別の問題であることを意味するかもしれません ...「実行を切る」と言います

ActiveMQをアップグレードすることで修正されず、シャットダウンに関連しない(「Unable to shutdown embedded activeMQ service using the built in BrokerService.stop call」を参照)、「ピア・ディスポジション」例外を取得した人は、バグ・レポートの宿泊を考慮する必要があります。

+1

何かが欠けていない限り、ポスターの問題は完全に異なっているようです。リンクにはノイズの多いINFOレベルのログメッセージが記載されていますが、上記の(これもまた私が得ている)JMSExceptionがスローされ、Caused by:節の下にこれらの行が追加されています。 – Marcus

+0

@Marcus - あなたはおそらく正しいでしょう。 –

1

ポスターの問題が全く異なるようです。このリンクにはノイズの多いINFOレベルのログメッセージが含まれていますが、上記の(これもまた私が得ているのは)Caused by:句の追加の行を持つ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 

奇数部分はconnection.isClosed()それがここまで取得する前にチェックがあるということです。したがって、接続は開いていますが、「ピア」はまだ処分されています。他の潜在的な回答をオンラインで調べてみると、唯一の可能な解決策はブローカへの接続が損なわれていないことですが、特定のキューが閉じられる可能性があります。

これは、ブローカーが停止しても、コンシューマーとプロデューサーがまだ接続を確立しようとしていたときに発生しました。接続がまだ開いていると見なされることがあります(ブローカーが停止していてもが閉じていない)。ブローカーが死ぬことを確実にするためにこれを修正することで、私の問題は解決されました。

私はActiveMQ 5.6でこの問題を追加したかったのですが(私は5.8でテストしていません)。

+0

これについてはバグレポートを提出する必要があります。 –

関連する問題