4 Replies Latest reply on Oct 24, 2011 7:03 AM by tomjenkinson

    Remote txn inflow: branch qualifier different in different transaction manager instance

    tomjenkinson

      I know we discussed it before but I just wanted to highlight this particular issue again.

       

      Branch qualifiers of the "same" RM are going to be different for each different node.

       

      Just putting that out there for completeness.

       

      (This is because we are not proposing shipping around the list of all branch ids over the remoting transport, plus we are using aspects of the branch to assist with detecting orphans on remote servers.)

       

      Questions/comments are welcome!

        • 1. Re: Remote txn inflow: branch qualifier different in different transaction manager instance
          mmusgrov

          Is this in the context of a single transaction. If so then using a different branch qualifier means that the resource manager will treat the accesses as though they were in different transactions. The consequence is contention/deadlock on the resource locks. Or have I misunderstood the issue?

          • 2. Re: Remote txn inflow: branch qualifier different in different transaction manager instance
            tomjenkinson

            Hi Mike,

             

            You are correct that the resource manager will get different branch qualifiers for the same XA resource at the different servers - it will get the same branch qualifier at any single server (even during reentry), e.g. for node flow of 1,2,3,2 the bqual for the XA resource at 2 would be the same for both flows but it would be different at nodes 1 and 3).

             

            Tom

            • 3. Re: Remote txn inflow: branch qualifier different in different transaction manager instance
              mmusgrov

              You are correct that the resource manager will get different branch qualifiers for the same XA resource at the different servers - it will get the same branch qualifier at any single server (even during reentry), e.g. for node flow of 1,2,3,2 the bqual for the XA resource at 2 would be the same for both flows but it would be different at nodes 1 and 3).

               

              OK, but that does mean that accesses to the resource manager from nodes 1 and 3 will be treated as a separate global transaction with respect to isolation - ie work done, and locks taken, at node 1 won't be seen at node 3 (search for loosely-coupled in the X/Open XA  spec for where this is covered).

               

              Since the remoting protocol is not demanded by the JTA spec, is it the case that the issue I raise is a non-issue?

              • 4. Re: Remote txn inflow: branch qualifier different in different transaction manager instance
                tomjenkinson

                Hi Mike,

                 

                I wouldn't describe it as a non-issue per se. Perhaps more an uncaptured requirement (if required) or an undocumented feature (if not required), either way, although it is inconsistent with JTA I suspect it won't make it into the initial version. If you do think it might be vital (from a user expectation point of view) you can raise it as a child of JBTM-895, alternatively someone (either distributed EJB or transactions) must document this restriction.

                 

                Tom