Joakim von Brandis created AMQ-4699:
---------------------------------------

             Summary: Transacted producer does not throw 
ResourceAllocationException on error
                 Key: AMQ-4699
                 URL: https://issues.apache.org/jira/browse/AMQ-4699
             Project: ActiveMQ
          Issue Type: Bug
          Components: JMS client
    Affects Versions: 5.8.0
         Environment: ActiveMQ 5.8.0 server
ActiveMQ 5.8.0 client on Java 7

            Reporter: Joakim von Brandis


Using a transacted producer session, with sendFailIfNoSpace=true or 
sendFailIfNoSpaceAfterTimeout=timeout, the producer gets no error on whether 
send() or commit(). Thus, the producer may pour out messages in a transacted 
session, which are silently discarded by ActiveMQ.

A connection exception listener will receive ResourceAllocationException, but 
since this happens in another thread than the sending client, there is no 
guarantee that the client can be notified in time to avoid commit().

Without using sendFailIfNoSpace(AfterTimeout), producer is blocked until space 
is available, as expected.

The client should receive error on send() when the resource exhaustion is 
reported, and in any case a commit() should not complete without error if the 
server has discarded any messages in the transaction.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to