On 03/22/2012 04:58 PM, Virgilio Fornazin wrote:
Gordon

If I have the Sender Capacity to 1000 Messages per example, and the queue
has a limit of 800 Messages, and after I send 801 messages, the session is
closed after the
exception while trying to delivery the message to the queue.

But the 800 messages sent previously are guaranteed to be delivered and
stay in queue, since they couldn't be acknowledged by the broker after the
session is terminated?

How the API deals with this situation ?

Not terribly well at present is the honest answer. This is something I would like to revisit. In the messaging API we could probably shield the application from the underlying loss of AMQP session, or at least ensure that their session object can continue to be used.

All messages that the broker received before hitting the limit will be on the queue. If they were durable messages, they may not all have been written to disk, but the loss of session won't interfere with that. The problem is how the application can infer this from the messaging API.

Generally you would use the unsettled count on the sender to determine how many of your sent messages remained in doubt. However that is only periodically updated so it often won't be up to date when a session error occurs. Again that is something we could change, and have the broker issue a completion before sending any exception and ending the session.

I do have a JIRA open for this: https://issues.apache.org/jira/browse/QPID-3179, just need to get some time to work on it.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to