Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-5559

ServiceTaskManager fails to commit if session is transacted and always rollsback when using swiftMQ 2.1.3

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • Transports 1.0.0
    • 1.6.3, 1.7.0
    • JMS transport
    • None
    • SwiftMQ 2.1.3,

    Description

      Hi,

      I have an issue reading JMS messages from an old JMS 1.0 implementation provided by swiftMQ as part of a transaction. The transaction always rolls back and never commits a read from the queue.

      Looking at ServiceTaskManager, in the method handleMessage, the logic it takes is:

      1. pass message to jmsMessageReceiver for processing
      2. close the consumer
      3. commit or rollback transaction on session.
      4. close session
      5. close connection

      It appears though that at stage 2 with swiftMQ the open transaction is rolledback. This means the commit in stage 3 does nothing.

      The solution is swap stages 2 and 3 such that the open transaction is commited before the consumer is closed.

      I noticted this issue on the verison of Transports (1.0) that ships with WSO2's ESB product but it appears that the same issue applies to 1.1 as well.

      Paul Inglis

      Attachments

        1. ServiceTaskManager.patch.txt
          0.8 kB
          Paul Inglis

        Activity

          People

            ruwan Ruwan Linton
            pinglis Paul Inglis
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: