2015-08-10 23 views
6

JMS İstisnası alıyorum ve sıra görünmüyor ya da görevi bitirmiyor görünüyor.JMSException InterruptedIOException - üretici iş parçacığı kesintiye uğruyor

İletiler zaman uyumsuzdur ve çoğu zaman iyi çalışır, ancak bazen istisnanın altına düşer. Dinleyici diğer tarafta dinlemeye devam ediyor, ancak yapımcı tarafında bu istisna var.

javax.jms.JMSException: java.io.InterruptedIOException 
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62) 
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1266) 
at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1350) 
at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:495) 
at com.vtech.mqservice.response.SendResponse.sendResponseToQueue(SendResponse.java:44) 


Caused by: java.io.InterruptedIOException 
at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:102) 
at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40) 
at org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:74) 
at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:79) 
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1244) 
... 0 more 

Lütfen üreticinin iş parçacığının neden kesintiye uğradığını belirlemeye yardım edin.

Activemq sürümünü en yeni sürüme geçireceğim ve bulguları güncelleyeceğim.

Lütfen bana doğru yönde gelin?

Güncelleme: Kullanılan ActiveMQ sürüm activemq-all-5.3.0.jar

cevap

1

Ben senin istisna kesin cevabı var googled, ama sonra ActiveMQ ait WireFormatNegotiator için kaynak kodu geçti olduğunu. http://alvinalexander.com/java/jwarehouse/activemq/activemq-core/src/main/java/org/apache/activemq/transport/WireFormatNegotiator.java.shtml

public void oneway(Object command) throws IOException { 
    try { 
     if (!readyCountDownLatch.await(negotiateTimeout, TimeUnit.MILLISECONDS)) { 
      throw new IOException("Wire format negotiation timeout: peer did not send his wire format."); 
     } 
    } catch (InterruptedException e) { 
     Thread.currentThread().interrupt(); 
     throw new InterruptedIOException(); 
    } 
    super.oneway(command); 
} 

Burada bulabilirsiniz

, senin sorunun "negotiateTimeout" hakkında nasılsa olduğunu düşünüyorum. Belki de daha önce koyduysanız belli bir süre aşımı ayarlamalı veya kaldırmalısınız.

0

Aynı istisnayı aldım ve JVM MaxPermSize'in düşük olduğunu anladım. Boyutu 1024Mb'ye çıkardım ve işe yaradı.