Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-1710

Failing over in JDBC Master/Slave topology does not preserve transaction state

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 4.1.2
    • 5.2.0
    • Broker, Transport
    • None
    • Tested on 4.1.1 and 4.1.2

    Description

      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 connection to the broker and on each connection creates a session and a consumer with a unique clientID. Each should attempt to consume messages from the queue defined above.

      4) Run the app and when the first message is consumed stop the master. 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:
      javax.jms.JMSException: Transaction 'TX:ID:HOSTNAME-3289-1210016021661-0:1:1' has not been started.

      6) Notice that the second consumer now recieves both messages.

      Attachments

        1. AMQ-1710.patch
          2 kB
          Mario Siegenthaler
        2. ASF.LICENSE.NOT.GRANTED--FailoverTest.java
          8 kB
          Rob Bugh

        Activity

          People

            rajdavies Robert Davies
            robbugh@earthlink.net Rob Bugh
            Votes:
            2 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: