activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <>
Subject [jira] Closed: (AMQ-2243) Stomp does not retransmit message if client ACKs inside disconnected transaction
Date Tue, 17 Aug 2010 14:48:48 GMT


Timothy Bish closed AMQ-2243.

    Resolution: Cannot Reproduce

Tests pass when run against the 5.4.0 release.  If you still see this issue when using 5.4.0
please reopen and report on how you reproduced it.

> Stomp does not retransmit message if client ACKs inside disconnected transaction
> --------------------------------------------------------------------------------
>                 Key: AMQ-2243
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Transport
>    Affects Versions: 5.2.0
>            Reporter: Ashley Holman
>             Fix For: 5.4.1
>         Attachments: AMQ-2243-telnetExample.txt,
> Demonstration of problem:
> MyQueue contains MSG1, MSG2.
> Stomp:
> - SUBSCRIBE MyQueue (ack = client)
> - BEGIN tx1
> - <reads a message coming from MyQueue> message-id: MSG1
> - ACK message-id: MSG1 
> - *disconnect TCP session*
> Upon reconnecting and subscribing, MSG2 is received.  MSG1 still appears in the queue
under the admin web interface but does not get retransmitted (is it still being locked by
the now-dead transaction?)
> If the above example finished with an ABORT tx1 before disconnecting, the problem does
not occur.
> Further to this, if I restart activemq, MSG1 will now get retransmitted correctly (ie.
it is no longer locked by the transaction).
> I suspect that the stomp implementation does not roll back all open transactions when
the client unexpectedly disconnects.
> I have attached a telnet session demonstrating the exact problem.
> I've also attached a unit test for transport/stomp/ which contains two tests:
> * testDisconnectRetransmit() - tests that an unacknowledged message is re-transmitted
if the client disconnects before ACKing it - SUCCEEDS
> * testTransactionDisconnectRetransmit() - same as above except the message gets ACK'd
inside an incomplete transaction before disconnecting - FAILS

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message