[ 
https://issues.apache.org/jira/browse/QPID-1770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689658#action_12689658
 ] 

Jeff Stein commented on QPID-1770:
----------------------------------

I've downloaded trunk, and while I am seeing exceptions, the timing seems off.  
If the message that exceeds the queue size is message number N, the exception 
appears to only get thrown when I send message number N+1.  For example, say 
queue limit is 100k, and the queue is current 99k.  When I send message N of 
2k, no exception is thrown, even though it has exceed the queue size limit and 
the message is rejected by the queue.  Then, when I send the next message (N+1) 
of 2k, the exception is thrown.  

In contrast, the Python client seems to throw the exception at message number 
N, which seems more intuitive to me.

Is this a bug in trunk?

> 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
>            Assignee: Rajith Attapattu
>            Priority: Critical
>             Fix For: 0.5
>
>
> 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]

Reply via email to