Class WSATGatewayRM

  • All Implemented Interfaces:
    com.sun.xml.ws.tx.dev.WSATRuntimeConfig.RecoveryEventListener, XAResource

    public class WSATGatewayRM
    extends Object
    implements XAResource, com.sun.xml.ws.tx.dev.WSATRuntimeConfig.RecoveryEventListener
    Gateway XAResource for managing outbound WS-AT transaction branches.
    • Field Detail

      • isReadyForRuntime

        public static boolean isReadyForRuntime
      • txlogdir

        public static String txlogdir
    • Method Detail

      • getInstance

        public static WSATGatewayRM getInstance()
        called by transaction services for enlistment and used by HA delegation
        Returns:
      • create

        public static WSATGatewayRM create()
        Called during tube/web service init
        Returns:
      • registerWSATResource

        public Xid registerWSATResource​(Xid xid,
                                        XAResource wsatResource,
                                        javax.transaction.Transaction tx)
                                 throws IllegalStateException,
                                        javax.transaction.RollbackException,
                                        javax.transaction.SystemException
        Enlist a foreign WS-AT resource in the current transaction. It is assumed that the XAResource parameter wraps a WS-AT endpoint. Invoked in the outbound case.
        Parameters:
        xid - The current, superior transaction id.
        wsatResource - The foreign WS-AT resource.
        Returns:
        Xid xid
        Throws:
        javax.transaction.SystemException - from enlistResource
        javax.transaction.RollbackException - from enlistResource
        IllegalStateException - from enlistResource
      • start

        public void start​(Xid xid,
                          int flags)
                   throws XAException
        Implementation of Subordinate/ServerXAResource called in reaction to registerWSATResource enlistResource call This should be the only use/patch of this method NOTE: lock on currentBQual must be obtained before calling this method as it is in
        Specified by:
        start in interface XAResource
        Parameters:
        xid - Xid
        flags - flags
        Throws:
        XAException - xaException
      • recover

        public void recover()
        Used for lazy/automatic-recovery="false"
      • recover

        public Xid[] recover​(int flag)
                      throws XAException
        Call for local recover/server specified by null instance value
        Specified by:
        recover in interface XAResource
        Parameters:
        flag -
        Returns:
        Xid[] indoubt Xids
        Throws:
        XAException
      • recover

        public Xid[] recover​(int flag,
                             String instance)
                      throws XAException
        Call for delegated recovery specified by non-null instance
        Parameters:
        flag -
        instance -
        Returns:
        Xid[] indoubt Xids
        Throws:
        XAException
      • setTransactionTimeout

        public boolean setTransactionTimeout​(int seconds)
                                      throws XAException
        Not applicable
        Specified by:
        setTransactionTimeout in interface XAResource
        Parameters:
        seconds - int
        Returns:
        boolean always false as not applicable
        Throws:
        XAException - xaException
      • isSameRM

        public boolean isSameRM​(XAResource xares)
                         throws XAException
        There is only one WSATGatewayRM per server for active transactions and isSameRM should not be called for any migrated WSATGatewayRM instances
        Specified by:
        isSameRM in interface XAResource
        Parameters:
        xares - XAResource
        Returns:
        boolean if is same RM which in this WSATGatewayRM case means means the same instance
        Throws:
        XAException
      • detectedUnavailable

        public boolean detectedUnavailable()
        Return true as WSATGatewayRM is always available, health should not change.
        Returns:
        boolean
      • getDelistFlag

        public int getDelistFlag()
        Always returns TMSUCCESS, avoids unnecessary suspend
        Returns:
        int TMSUCCESS delist flag
      • beforeRecovery

        public void beforeRecovery​(boolean delegated,
                                   String instance)
        Specified by:
        beforeRecovery in interface com.sun.xml.ws.tx.dev.WSATRuntimeConfig.RecoveryEventListener
      • afterRecovery

        public void afterRecovery​(boolean success,
                                  boolean delegated,
                                  String instance)
        Specified by:
        afterRecovery in interface com.sun.xml.ws.tx.dev.WSATRuntimeConfig.RecoveryEventListener