You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Igor Bogicevic <ca...@gmail.com> on 2006/05/22 21:59:51 UTC

onAsyncException and Broken Pipe problem

Hi all,

I've been using activemq versions RC2, RC3 and now 4.0  with JDK 5.0
(update 6) and I am experiencing the same problem through all the
versions, and at this point I am not sure what I am doing wrong. I am
using several threads that each keep their own session (message queue,
auto_ack and persistent messages) and each thread, from the producer's
side, sends frequent messages to the broker, and one control thread
sends exactly one message per minute and it keeps working from 30
minutes to 3-4 hours without any problem, but after a while i get this
exception on a producer side:

javax.jms.JMSException: Broken pipe
       at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:57)
       at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1118)
       at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1524)
       at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:462)
       at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:415)
       at jms.basic.QueueProducer.send(QueueProducer.java:53)
       at jms.wi.WIclient.SendConfirmation(WIclient.java:212)
       at faomi.FaomiRunner$1.run(FaomiRunner.java:420)
       at java.lang.Thread.run(Thread.java:595)
Caused by: java.net.SocketException: Broken pipe
       at java.net.SocketOutputStream.socketWrite0(Native Method)
       at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
       at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
       at org.apache.activemq.transport.tcp.TcpBufferedOutputStream.flush(TcpBufferedOutputStream.java:108)
       at java.io.DataOutputStream.flush(DataOutputStream.java:106)
       at org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:118)
       at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:141)
       at org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:86)
       at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:77)
       at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:44)
       at org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:63)
       at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:68)
       at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1108)
       ... 7 more

or:

May 22, 2006 7:19:30 PM org.apache.activemq.ActiveMQConnection onAsyncException
WARNING: Async exception with no exception listener: java.io.EOFException
java.io.EOFException
       at java.io.DataInputStream.readInt(DataInputStream.java:358)
       at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:270)
       at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:135)
       at java.lang.Thread.run(Thread.java:595)
May 22, 2006 7:19:30 PM org.apache.activemq.ActiveMQConnection onAsyncException
WARNING: Async exception with no exception listener:
java.net.SocketException: Broken pipe
java.net.SocketException: Broken pipe
       at java.net.SocketOutputStream.socketWrite0(Native Method)
       at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
       at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
       at org.apache.activemq.transport.tcp.TcpBufferedOutputStream.flush(TcpBufferedOutputStream.java:108)
       at java.io.DataOutputStream.flush(DataOutputStream.java:106)
       at org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:118)
       at org.apache.activemq.transport.InactivityMonitor.writeCheck(InactivityMonitor.java:81)
       at org.apache.activemq.transport.InactivityMonitor.access$100(InactivityMonitor.java:35)
       at org.apache.activemq.transport.InactivityMonitor$2.run(InactivityMonitor.java:57)
       at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:431)
       at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.runAndReset(FutureTask.java:198)
       at edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:189)
       at edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:213)
       at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
       at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
       at java.lang.Thread.run(Thread.java:595)

and I am not sure what I am doing wrong and I would be grateful if
someone could give me a little bit more insight in what I could be
overlooking, or doing wrong, or is this problem related to activemq
itself?

Thank you,
Igor Bogicevic