javax.resource.spi

## Interface XATerminator

-     public interface XATerminator

  The XATerminator interface is used for transaction completion and crash recovery flows.

  Version:
    1.0
  Author:
    Ram Jeyaraman

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `commit(javax.transaction.xa.Xid xid, boolean onePhase)` Commits the global transaction specified by xid.
    `void` | `forget(javax.transaction.xa.Xid xid)` Tells the resource manager to forget about a heuristically completed transaction branch.
    `int` | `prepare(javax.transaction.xa.Xid xid)` Ask the resource manager to prepare for a transaction commit of the transaction specified in xid.
    `javax.transaction.xa.Xid[]` | `recover(int flag)` Obtains a list of prepared transaction branches from a resource manager.
    `void` | `rollback(javax.transaction.xa.Xid xid)` Informs the resource manager to roll back work done on behalf of a transaction branch.

- - ### Method Detail

    - #### commit

          void commit(javax.transaction.xa.Xid xid,
                      boolean onePhase)
               throws javax.transaction.xa.XAException

      Commits the global transaction specified by xid.
      Parameters:
        `xid` - A global transaction identifier
        `onePhase` - If true, the resource manager should use a one-phase commit protocol to commit the work done on behalf of xid.
      Throws:
        `javax.transaction.xa.XAException` - An error has occurred. Possible XAExceptions are XA_HEURHAZ, XA_HEURCOM, XA_HEURRB, XA_HEURMIX, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO.

        If the resource manager did not commit the transaction and the parameter onePhase is set to true, the resource manager may throw one of the XA_RB* exceptions. Upon return, the resource manager has rolled back the branch's work and has released all held resources.

    - #### forget

          void forget(javax.transaction.xa.Xid xid)
               throws javax.transaction.xa.XAException

      Tells the resource manager to forget about a heuristically completed transaction branch.
      Parameters:
        `xid` - A global transaction identifier.
      Throws:
        `javax.transaction.xa.XAException` - An error has occurred. Possible exception values are XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO.

    - #### prepare

          int prepare(javax.transaction.xa.Xid xid)
               throws javax.transaction.xa.XAException

      Ask the resource manager to prepare for a transaction commit of the transaction specified in xid.
      Parameters:
        `xid` - A global transaction identifier.
      Returns:
        A value indicating the resource manager's vote on the outcome of the transaction. The possible values are: XA_RDONLY or XA_OK. These constants are defined in `javax.transaction.xa.XAResource` interface. If the resource manager wants to roll back the transaction, it should do so by raising an appropriate XAException in the prepare method.
      Throws:
        `javax.transaction.xa.XAException` - An error has occurred. Possible exception values are: XA_RB*, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO.

    - #### recover

          javax.transaction.xa.Xid[] recover(int flag)
                                      throws javax.transaction.xa.XAException

      Obtains a list of prepared transaction branches from a resource manager. The transaction manager calls this method during recovery to obtain the list of transaction branches that are currently in prepared or heuristically completed states.
      Parameters:
        `flag` - One of TMSTARTRSCAN, TMENDRSCAN, TMNOFLAGS. TMNOFLAGS must be used when no other flags are set in the parameter. These constants are defined in `javax.transaction.xa.XAResource` interface.
      Returns:
        The resource manager returns zero or more XIDs of the transaction branches that are currently in a prepared or heuristically completed state. If an error occurs during the operation, the resource manager should throw the appropriate XAException.
      Throws:
        `javax.transaction.xa.XAException` - An error has occurred. Possible values are XAER_RMERR, XAER_RMFAIL, XAER_INVAL, and XAER_PROTO.

    - #### rollback

          void rollback(javax.transaction.xa.Xid xid)
                 throws javax.transaction.xa.XAException

      Informs the resource manager to roll back work done on behalf of a transaction branch.
      Parameters:
        `xid` - A global transaction identifier.
      Throws:
        `javax.transaction.xa.XAException` - An error has occurred. Possible XAExceptions are XA_HEURHAZ, XA_HEURCOM, XA_HEURRB, XA_HEURMIX, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO.

        If the transaction branch is already marked rollback-only the resource manager may throw one of the XA_RB* exceptions. Upon return, the resource manager has rolled back the branch's work and has released all held resources.

Copyright © 2014 IronJacamar (http://www.ironjacamar.org)