3 Replies Latest reply on May 24, 2007 7:55 AM by marklittle

    Should completion participants still be notified if the coor

    ivanneto

      The WS-AT 1.1 spec says this about the completion protocol:

      The completion protocol initiates commit processing. Based on each protocol's registered participants, the coordinator begins with Volatile 2PC and then proceeds through Durable 2PC. The final result is signaled to the initiator.


      The coordinator should signal the transaction outcome to the initiator even if the coordinator crashes, right? In other words, a reference to the initiator is saved in the coordinator transaction log, isn't it?

      PS: I know this is not JBossTS-specific. Any help on this would be very appreciated, though.

        • 1. Re: Should completion participants still be notified if the
          marklittle

          WS-AT is no different to other ACID protocols, such as JTA or JTS/OTS: in a distributed environment the coordinator does not keep a reference to the initiator. If the initiator needs to reliably know the outcome of the transaction then it must register as a Durable participant (in the case of WS-AT). Otherwise, if the coordinator fails then the initiator will get an error and not know the final outcome. That may then be determined using some out-of-band approach.

          • 2. Re: Should completion participants still be notified if the
            ivanneto

            Hi Mark!

            "mark.little@jboss.com" wrote:
            WS-AT is no different to other ACID protocols, such as JTA or JTS/OTS: in a distributed environment the coordinator does not keep a reference to the initiator. If the initiator needs to reliably know the outcome of the transaction then it must register as a Durable participant (in the case of WS-AT). Otherwise, if the coordinator fails then the initiator will get an error and not know the final outcome. That may then be determined using some out-of-band approach.


            I understood from what you said that if the coordinator fails, then the initiator will wait until a timeout occurs. Is this right? In the OTS case, an exception would be thrown, as the initiator would be blocked until the transaction outcome arrives (synchronous calls). But in the WS-AT realm, the initiator isn't blocked, as the communication is made asynchronously. So, in the WS-AT scenario, if the coordinator doesn't signal the transaction outcome to the initiator (due to a failure, for instance), the latter will wait until a timeout occurs. Is this what should happen?

            Thanks.

            • 3. Re: Should completion participants still be notified if the
              marklittle

               

              "ivanneto" wrote:

              I understood from what you said that if the coordinator fails, then the initiator will wait until a timeout occurs. Is this right? In the OTS case, an exception would be thrown, as the initiator would be blocked until the transaction outcome arrives (synchronous calls). But in the WS-AT realm, the initiator isn't blocked, as the communication is made asynchronously. So, in the WS-AT scenario, if the coordinator doesn't signal the transaction outcome to the initiator (due to a failure, for instance), the latter will wait until a timeout occurs. Is this what should happen?


              Pretty much, yes. However, the specification is deliberately silent on this, so implementations are free to do whatever they want (within reason).