java.lang.Object
org.omg.PortableServer.Servant
org.omg.CosTransactions.RecoveryCoordinatorPOA
com.arjuna.ats.internal.jts.orbspecific.recovery.recoverycoordinators.GenericRecoveryCoordinator
All Implemented Interfaces:
org.omg.CORBA.portable.InvokeHandler, RecoveryCoordinatorOperations
Direct Known Subclasses:
JavaIdlRCDefaultServant

public class GenericRecoveryCoordinator extends RecoveryCoordinatorPOA
This provides the ORB-independent recovery coordinator functionality. The ORB-specific implementations delegate their work to this.

Version:
$Id: GenericRecoveryCoordinator.java 2342 2006-03-30 13:06:17Z $
Author:
Dave Ingham(dave.ingham@arjuna.com), Peter Furniss, Mark Little (mark.little@arjuna.com) Malik SAHEB (malik.saheb@arjuna.com
  • Constructor Details

    • GenericRecoveryCoordinator

      public GenericRecoveryCoordinator(Uid RCUid, Uid actionUid, Uid processUid, boolean isServerTransaction)
      Normal constructor. Used both for creating a RecoveryCoordinator in the same process as the Coordinator (where this is necessary) and when reactivating a RecoveryCoordinator as an implementation instance (i.e. not as POA default servant) from stringified data in RecoveryManager from data received in a RecoveryCoordinator object key.

      Combines the parameters into a RecoveryCoordinatorId.

    • GenericRecoveryCoordinator

      protected GenericRecoveryCoordinator()
      protected constructor used by default servant derived class (with POA orbs). When used a default servant, there is only one GenericRecoveryCoordinator instance, whose _id field is null.
  • Method Details

    • replay_completion

      public Status replay_completion(Resource res) throws org.omg.CORBA.SystemException, NotPrepared
      Implementation of IDL method:

      Operation: ::CosTransactions::RecoveryCoordinator::replay_completion.

        #pragma prefix "omg.org/CosTransactions/RecoveryCoordinator"
        ::CosTransactions::Status replay_completion(
        in ::CosTransactions::Resource r
        )
        raises(
        ::CosTransactions::NotPrepared
        );
        

      This method is used when the instance is used as a particular implementation object (i.e. not as default servant). Delegates to the static replay_completion using the RecoveryCoordinatorId made in the constructor.
      Throws:
      org.omg.CORBA.SystemException
      NotPrepared
    • replay_completion

      protected static Status replay_completion(RecoveryCoordinatorId id, Resource res) throws org.omg.CORBA.SystemException, NotPrepared
      Respond to a replay_completion request for the RecoveryCoordinator identified by parameter id.
      Throws:
      org.omg.CORBA.SystemException
      NotPrepared
    • makeId

      public static String makeId(Uid rcUid, Uid tranUid, Uid processUid, boolean isServerTransaction)
      Construct a string, to be used somehow in the objectkey (probably) of a RecoveryCoordinator reference. This will be deconstructed in the reconstruct() which is passed such a string, to remake the necessary RecoveryCoordinator when a replay_completion is received for it. Put here to make it in the same class as the deconstruction
    • reconstruct

      public static GenericRecoveryCoordinator reconstruct(String encodedRCData)
      (re)construct a RecoveryCoordinator instance using the encoded information in the parameter. The encoded information was (we hope) created using makeId and has been passed around as part of the object key in the RecoveryCoordinator IOR.