|
|
|
[
Permlink
| « Hide
]
Rob Bugh - 05/May/08 01:08 PM
I've attached a test case that implements the recreate steps described above.
Forgot to mention the session is transactional. The recreate steps should be amended as follows:
Recreate steps: 1) Start two brokers in JDBC Master/Slave topology 2) Create an app that puts two or more messages in a queue (two messages are sufficient). Give each message a JMXGroupID to force them to go to the same consumer. 3) Create another app that creates two connections to the broker and on each connection creates a transactional session and a consumer with a unique clientID. Each client consumes messages from the queue defined above waits 60 seconds then commits the transaction. 4) Run the app and when the first message is consumed stop the master before the commit occurs. Failover will occur and the slave becomes the new master. 5) Notice that when the transport resumes in the client that received the first message an exception like the following is thrown: 6) Notice that the second consumer now recieves both messages. I expected the transaction (and the JMXGroupID) to survive across the failover and thus the consumer that retrieves the first message retrieves the seconds one as well. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||