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

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

- - ### Method Detail

    - #### commit

          void commit(Xid xid,
                    boolean onePhase)
                      throws 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:
        `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(Xid xid)
                      throws XAException

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

    - #### prepare

          int prepare(Xid xid)
                      throws 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:
        `XAException` - An error has occurred. Possible exception values are: XA_RB*, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, or XAER_PROTO.

    - #### recover

          Xid[] recover(int flag)
                        throws 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:
        `XAException` - An error has occurred. Possible values are XAER_RMERR, XAER_RMFAIL, XAER_INVAL, and XAER_PROTO.

    - #### rollback

          void rollback(Xid xid)
                        throws XAException

      Informs the resource manager to roll back work done on behalf of a transaction branch.
      Parameters:
        `xid` - A global transaction identifier.
      Throws:
        `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 © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.