JMS: No useful exception thrown when message is sent to full queue
------------------------------------------------------------------
Key: QPID-1770
URL: https://issues.apache.org/jira/browse/QPID-1770
Project: Qpid
Issue Type: Bug
Components: Java Client
Affects Versions: M4
Environment: Redhat with C++ broker
Reporter: Jeff Stein
Priority: Critical
In JMS, when a message is sent when a queue is already at its maximum size,
nothing happens for 60 seconds. The program just hangs there. Then, suddenly,
these two exceptions are thrown:
org.apache.qpid.transport.SessionException: timed out waiting for session to
become open (state=DETACHED)
at org.apache.qpid.transport.Session.invoke(Session.java:442)
at
org.apache.qpid.transport.SessionInvoker.messageTransfer(SessionInvoker.java:96)
at
org.apache.qpid.client.BasicMessageProducer_0_10.sendMessage(BasicMessageProducer_0_10.java:160)
at
org.apache.qpid.client.BasicMessageProducer.sendImpl(BasicMessageProducer.java:465)
at
org.apache.qpid.client.BasicMessageProducer.sendImpl(BasicMessageProducer.java:420)
at
org.apache.qpid.client.BasicMessageProducer.send(BasicMessageProducer.java:289)
at Producer.runTest(Producer.java:135)
at Producer.main(Producer.java:64)
Producer: Caught an Exception: javax.jms.JMSException: Exception when sending
message
javax.jms.JMSException: Exception when sending message
at
org.apache.qpid.client.BasicMessageProducer_0_10.sendMessage(BasicMessageProducer_0_10.java:173)
at
org.apache.qpid.client.BasicMessageProducer.sendImpl(BasicMessageProducer.java:465)
at
org.apache.qpid.client.BasicMessageProducer.sendImpl(BasicMessageProducer.java:420)
at
org.apache.qpid.client.BasicMessageProducer.send(BasicMessageProducer.java:289)
at Producer.runTest(Producer.java:135)
at Producer.main(Producer.java:64)
This is in contrast to, for example, a Python qpid producer, which will throw
an exception as soon as the queue is full, and it will be very specific about
the problem, telling you the queue is too full, which message overfilled it,
etc.
I tested this using a hacked up version of the direct producer/consumer JMS
example. Just run the producer (without the consumer running) long enough with
large enough messages so that it will reach the maximum queue size, and you
should be able to see it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]