You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Jeff Stein (JIRA)" <qp...@incubator.apache.org> on 2009/03/24 00:03:50 UTC

[jira] Created: (QPID-1770) JMS: No useful exception thrown when message is sent to full queue

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:dev-subscribe@qpid.apache.org


[jira] Resolved: (QPID-1770) JMS: No useful exception thrown when message is sent to full queue

Posted by "Rajith Attapattu (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-1770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rajith Attapattu resolved QPID-1770.
------------------------------------

       Resolution: Fixed
    Fix Version/s: 0.5
         Assignee: Rajith Attapattu

I have tested this with the trunk and verified that the proper exception is thrown instead of the hang and subsequent session detached exception.
However I noticed that if a session exception is received while the client is waiting for a completion the exception is ignored.
A fix for that is commited at rev 758017 on Qpid trunk (and shortly to M5 branch) and is tracked via QPID-1773

> 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:dev-subscribe@qpid.apache.org


[jira] Issue Comment Edited: (QPID-1770) JMS: No useful exception thrown when message is sent to full queue

Posted by "Jeff Stein (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-1770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689658#action_12689658 ] 

Jeff Stein edited comment on QPID-1770 at 3/26/09 2:12 PM:
-----------------------------------------------------------

I've downloaded trunk, and while I am seeing the new, fixed 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?

      was (Author: jmstein):
    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:dev-subscribe@qpid.apache.org


[jira] Commented: (QPID-1770) JMS: No useful exception thrown when message is sent to full queue

Posted by "Rajith Attapattu (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-1770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689671#action_12689671 ] 

Rajith Attapattu commented on QPID-1770:
----------------------------------------

The send in the JMS client is not synchronous. So you wouldn't get notify on the N-th message transfer.
By the time you receive the exception you may have put a few more transfers on the wire.

If you want the N-th message transfer to fail then you need to do synchronous publish.
If you are using a durable queue and have marked your messages persistent, then you could use
-Dsync_publish=persistent or add sync_publish=persistent to the connection URL.
else you could use
-Dsync_publish=all or add sync_publish=all to the connection URL.
Please note that sync publish is very slow compared to async publishing.

> 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:dev-subscribe@qpid.apache.org


[jira] Commented: (QPID-1770) JMS: No useful exception thrown when message is sent to full queue

Posted by "Jeff Stein (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-1770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689689#action_12689689 ] 

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

Ah, I see.  Thank you for your help!

> 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:dev-subscribe@qpid.apache.org


[jira] Commented: (QPID-1770) JMS: No useful exception thrown when message is sent to full queue

Posted by "Jeff Stein (JIRA)" <qp...@incubator.apache.org>.
    [ 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:dev-subscribe@qpid.apache.org


[jira] Issue Comment Edited: (QPID-1770) JMS: No useful exception thrown when message is sent to full queue

Posted by "Jeff Stein (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-1770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689949#action_12689949 ] 

Jeff Stein edited comment on QPID-1770 at 3/27/09 9:29 AM:
-----------------------------------------------------------

Hi again,

I'm not having success using -Dsync_publish=all.  It appears to still be asynchronously publishing.  I'm using trunk code that I downloaded yesterday.  Any idea what might be going on?

Edit--Small update: when I put it in the URL it does work, just not in the command line argument.

      was (Author: jmstein):
    Hi again,

I'm not having success using -Dsync_publish=all.  It appears to still be asynchronously publishing.  I'm using trunk code that I downloaded yesterday.  Any idea what might be going on?
  
> 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:dev-subscribe@qpid.apache.org


[jira] Commented: (QPID-1770) JMS: No useful exception thrown when message is sent to full queue

Posted by "Jeff Stein (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-1770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689949#action_12689949 ] 

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

Hi again,

I'm not having success using -Dsync_publish=all.  It appears to still be asynchronously publishing.  I'm using trunk code that I downloaded yesterday.  Any idea what might be going on?

> 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:dev-subscribe@qpid.apache.org


[jira] Commented: (QPID-1770) JMS: No useful exception thrown when message is sent to full queue

Posted by "Rafael H. Schloming (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-1770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12688687#action_12688687 ] 

Rafael H. Schloming commented on QPID-1770:
-------------------------------------------

I believe this bug has been fixed on trunk and should be coming out in the next release (due shortly).

> 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:dev-subscribe@qpid.apache.org