5 Replies Latest reply: Jun 27, 2012 4:52 AM by Kristian Ivarsson RSS

    Problems with multiple domains

    Kristian Ivarsson
      Dear experts,

      does anyone know if there are some known limitations/defects in Tuxedo and/or WebLogic considering transactions that span over multiple domains (both Tuxedo and WebLogic) ?

      I know that (at least) Tuxedo only supports loosely coupled transactions between domains so the scenario where domain 1 calls domain 2 and 3 and both 2 and 3 tries to access/update same resource in e.g. domain 4 it fails, but what about domain 1 calls domain 2 that calls domain 3 that calls domain 4 (in a straight chain) ?

      We're having problem with the following scenario; Tuxedo domain X calls (via WTC) WebLogic domain Y that calls WebLogic domain Z (some update) that calls a Tuxedo domain (some update). The data in WLS domain Z seems to be commitet but not the data in the last Tuxedo-domain. The last Tuxedo-domain finally retrievs a xa_rollback and we cannot find any warnings about heuristic completion or anything (which seems to be the case)

      Is this a known behaviour ? Are there any workarounds (except by moving around services) ?

      We're using Tuxedo 11.x and WebLogic 10.3 SP0

      Regards,
      Kristian

      Edited by: Kristian Ivarsson on 2012-jan-03 07:22

      Edited by: Kristian Ivarsson on 2012-jan-03 07:23
        • 1. Re: Problems with multiple domains
          Todd Little-Oracle
          Hi Kristian,

          Currently transactions that span domains (Tuxedo or WLS) are always loosely coupled. This is true regardless of the commit tree. So any calls spanning domains will result in subordinate or interposed transactions on the remote system. Since the remote system uses a new GTRID when interacting with resource managers (RMs), the RMs don't realize that these are really branches of the same transaction, and typically due to isolation constraints, result in a deadlock if the two transactions hit the same locks.

          You should be able to tell from the Database what is happening, i.e., are you getting lock timeouts that in turn are causing transaction rollbacks.

          It sounds like from your post though that you think the WLS transaction committed properly while one or more of the Tuxedo transaction rolledback? That should NEVER happen and if you can reproduce it, please open a support case with Oracle Customer Support.

          If indeed you are getting lock conflicts, there is little you can do at the moment other than design the application to not go after the same records. If you really need this, please submit an enhancement request through Oracle Customer Support and make sure to mention my name.

          Regards,
          Todd Little
          Oracle Tuxedo Chief Architect
          • 2. Re: Problems with multiple domains
            Kristian Ivarsson
            Thanks for the swift reply Todd

            We tried to move the bean from WebLogic-domain 2 into domain 1 and then things worked

            We will try to narrow this down and remove all the fuzz to eliminate other possible defects and if it still is reproducable we will file a support case and I will either way update this thread

            Best regards,
            Kristian
            • 3. Re: Problems with multiple domains
              Kristian Ivarsson
              We "succeeded" to reproduce this in a very slimmed down application/environment. Even without some database stuff in the 2:nd WebLogic-domain a xa_rollback finally ended up in the last Tuxedo-domain

              If we move the appserver from 2:nd WebLogic-domain into 1:st domain, everything seems to work as a charm

              We filed a support-case and perhaps I will update this thread with its outcome
              • 4. Re: Problems with multiple domains
                Todd Little-Oracle
                Hi Kristian,

                In the meantime, could you describe in a bit more detail what exactly you are doing? I'd love to get a head start on this as it is related to some other work I'm doing in this area. If you could describe the call path and what each called service is doing related to transactions and database, that would help a great deal.

                Oh, and as well could you post any relevant portions of the Tuxedo ULOGs involved and any .trc files generated (assuming you have enabled error logging in your OPENINFO string.)

                Thanks,
                Todd Little
                Oracle Tuxedo Chief Architect

                Edited by: Todd Little on Jan 5, 2012 11:00 AM
                • 5. Re: Problems with multiple domains
                  Kristian Ivarsson
                  For whom it may concern,

                  this is (now) a confirmed defect in WebLogic but a patch to solve the issue is (somehow) available

                  Kristian