Qpid
  1. Qpid
  2. QPID-24

Extend Qpid transaction functionality to support distributed transactions (JTA)

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.15
    • Component/s: Java Broker, Java Client
    • Labels:
      None

      Description

      Our current transaction code does not support JTA and XA. Whilst this functionality is not required for JMS compliance, it is suported by comparable products (ActiveMQ, SonicMQ, IBM MQ Series) and we have had questions about distributed transaction support from our users.

      See section 8 of the JMS specification for details.

        Issue Links

          Activity

          Marnie McCormack created issue -
          Marnie McCormack made changes -
          Field Original Value New Value
          Component/s Java Client [ 12311389 ]
          Component/s Java Broker [ 12311388 ]
          Marnie McCormack made changes -
          Fix Version/s M2 [ 12312116 ]
          Hide
          Arnaud Simon added a comment -

          The AMQP transaction SIG has reached consensus on defining dtx classes. All the documents are available on the transaction SIG wiki page: https://wiki.108.redhat.com/wiki/index.php/AMQP:Transaction_SIG
          This should be voted during the next PMC and dtx classes should be part of the next AMQP specs.
          The C++ broker already implements dtx support.
          I would like to now concentrate on the Java broker to extend the current solution with dtx capabilities. I really think that java and C++ code sources should be as similar as possible. This is why I would like us to agree on common java/C++ interfaces for transaction and persistence stores. When agreed, I am volunteer to refactor the existing java code source and to implement dtx support.

          Show
          Arnaud Simon added a comment - The AMQP transaction SIG has reached consensus on defining dtx classes. All the documents are available on the transaction SIG wiki page: https://wiki.108.redhat.com/wiki/index.php/AMQP:Transaction_SIG This should be voted during the next PMC and dtx classes should be part of the next AMQP specs. The C++ broker already implements dtx support. I would like to now concentrate on the Java broker to extend the current solution with dtx capabilities. I really think that java and C++ code sources should be as similar as possible. This is why I would like us to agree on common java/C++ interfaces for transaction and persistence stores. When agreed, I am volunteer to refactor the existing java code source and to implement dtx support.
          Hide
          Mark Little added a comment -

          Depends what you mean by this. However, if you're looking for language neutral XA support then it may be worth checking out the OTS.

          Show
          Mark Little added a comment - Depends what you mean by this. However, if you're looking for language neutral XA support then it may be worth checking out the OTS.
          Hide
          Marnie McCormack added a comment -

          Moving unresolved JIRAs from M2 to M3, in preparation for M2 release

          Show
          Marnie McCormack added a comment - Moving unresolved JIRAs from M2 to M3, in preparation for M2 release
          Marnie McCormack made changes -
          Fix Version/s M3 [ 12312117 ]
          Fix Version/s M2 [ 12312116 ]
          Gavin made changes -
          Workflow jira [ 12386622 ] QPid [ 12438262 ]
          Gavin made changes -
          Workflow QPid [ 12438262 ] QPid Workflow [ 12439609 ]
          Aidan Skinner made changes -
          Fix Version/s M3 [ 12312117 ]
          Fix Version/s M4 [ 12313279 ]
          Hide
          Marnie McCormack added a comment -

          Descoping items not being worked on for M4 into Unknown Fix Version for now

          Show
          Marnie McCormack added a comment - Descoping items not being worked on for M4 into Unknown Fix Version for now
          Marnie McCormack made changes -
          Fix Version/s M4 [ 12313279 ]
          Rob Godfrey made changes -
          Assignee Rob Godfrey [ rgodfrey ]
          Robbie Gemmell made changes -
          Link This issue is related to QPID-2729 [ QPID-2729 ]
          Rob Godfrey made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Rob Godfrey made changes -
          Original Estimate 72h [ 259200 ]
          Remaining Estimate 72h [ 259200 ]
          Fix Version/s 0.15 [ 12319043 ]
          Hide
          Rob Godfrey added a comment -

          I've implemented the AMQP 0-10 DTX operations in the Java broker and tested against the existing xa tests in both Java and Python (note some of the Python test are still excluded because they depend on the C++ broker behaviour of excluded acquired messages from queue counts... if the tests are adapted to not depend on this behaviour the Java broker passes against them to).

          Only took 5 and a half years to resolve this one...

          Show
          Rob Godfrey added a comment - I've implemented the AMQP 0-10 DTX operations in the Java broker and tested against the existing xa tests in both Java and Python (note some of the Python test are still excluded because they depend on the C++ broker behaviour of excluded acquired messages from queue counts... if the tests are adapted to not depend on this behaviour the Java broker passes against them to). Only took 5 and a half years to resolve this one...
          Rob Godfrey made changes -
          Status In Progress [ 3 ] Ready To Review [ 10006 ]
          Hide
          Rob Godfrey added a comment -

          Hi robbie - can you review this for me?

          Show
          Rob Godfrey added a comment - Hi robbie - can you review this for me?
          Rob Godfrey made changes -
          Assignee Rob Godfrey [ rgodfrey ] Robbie Gemmell [ gemmellr ]
          Hide
          Rob Godfrey added a comment -

          Check-in is this revision...

          http://svn.apache.org/viewvc?rev=1292984&view=rev

          confused by the low JIRA number I used AMQP-24 rather than QPID-24 in the commit message

          AMQP-24 (http://tools.oasis-open.org/issues/browse/AMQP-24) is infinitely less exciting

          Show
          Rob Godfrey added a comment - Check-in is this revision... http://svn.apache.org/viewvc?rev=1292984&view=rev confused by the low JIRA number I used AMQP-24 rather than QPID-24 in the commit message AMQP-24 ( http://tools.oasis-open.org/issues/browse/AMQP-24 ) is infinitely less exciting
          Hide
          Robbie Gemmell added a comment -

          Looked over the changes, seem reasonable to me.

          Resolving oldest open JIRA

          Show
          Robbie Gemmell added a comment - Looked over the changes, seem reasonable to me. Resolving oldest open JIRA
          Robbie Gemmell made changes -
          Status Ready To Review [ 10006 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Rob Godfrey made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Open Open In Progress In Progress
          1962d 12h 13m 1 Rob Godfrey 23/Feb/12 21:46
          In Progress In Progress Reviewable Reviewable
          30m 52s 1 Rob Godfrey 23/Feb/12 22:17
          Reviewable Reviewable Resolved Resolved
          16d 22h 51m 1 Robbie Gemmell 11/Mar/12 21:09
          Resolved Resolved Closed Closed
          1066d 22h 56m 1 Rob Godfrey 11/Feb/15 20:06

            People

            • Assignee:
              Robbie Gemmell
              Reporter:
              Marnie McCormack
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 72h
                72h
                Remaining:
                Remaining Estimate - 72h
                72h
                Logged:
                Time Spent - Not Specified
                Not Specified

                  Development