XASupport (jTDS API)
Date: 2013-06-08

net.sourceforge.jtds.jdbc

## Class XASupport

- java.lang.Object
- - net.sourceforge.jtds.jdbc.XASupport

-     public class XASupport
      extends java.lang.Object

  This class contains static utility methods used to implement distributed transactions. For SQL Server 2000 the driver can provide true distributed transactions provided that the external stored procedure in JtdsXA.dll is installed. For other types of server only an emulation is available at this stage.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static java.lang.String` | `TM_ID` xa_open login string unique to jTDS.
    `private static int` | `XA_CLOSE`
    `private static int` | `XA_COMMIT`
    `private static int` | `XA_COMPLETE`
    `private static int` | `XA_END`
    `private static int` | `XA_FORGET`
    `private static int` | `XA_OPEN`
    `private static int` | `XA_PREPARE`
    `private static int` | `XA_RECOVER`
    `private static int` | `XA_RMID` The Resource Manager ID allocated by jTDS
    `private static int` | `XA_ROLLBACK`
    `private static int` | `XA_START`
    `private static int` | `XA_TRACE` Set this field to 1 to enable XA tracing.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `private` | `XASupport()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `raiseXAException(int errorCode)` Construct and throw an `XAException` with an explanatory message and the XA error code set.
    `static void` | `raiseXAException(java.sql.SQLException sqle)` Construct and throw an `XAException` with an explanatory message derived from the `SQLException` and the XA error code set to `XAER_RMFAIL`.
    `private static byte[]` | `toBytesXid(javax.transaction.xa.Xid xid)` Format an XA transaction ID into a 140 byte array.
    `static void` | `xa_close(java.sql.Connection connection, int xaConId)` Invoke the xa_close routine on the SQL Server.
    `static void` | `xa_commit(java.sql.Connection connection, int xaConId, javax.transaction.xa.Xid xid, boolean onePhase)` Invoke the xa_commit routine on the SQL Server.
    `static void` | `xa_end(java.sql.Connection connection, int xaConId, javax.transaction.xa.Xid xid, int flags)` Invoke the xa_end routine on the SQL Server.
    `static void` | `xa_forget(java.sql.Connection connection, int xaConId, javax.transaction.xa.Xid xid)` Invoke the xa_forget routine on the SQL Server.
    `static int` | `xa_open(java.sql.Connection connection)` Invoke the xa_open routine on the SQL Server.
    `static int` | `xa_prepare(java.sql.Connection connection, int xaConId, javax.transaction.xa.Xid xid)` Invoke the xa_prepare routine on the SQL Server.
    `static javax.transaction.xa.Xid[]` | `xa_recover(java.sql.Connection connection, int xaConId, int flags)` Invoke the xa_recover routine on the SQL Server.
    `static void` | `xa_rollback(java.sql.Connection connection, int xaConId, javax.transaction.xa.Xid xid)` Invoke the xa_rollback routine on the SQL Server.
    `static void` | `xa_start(java.sql.Connection connection, int xaConId, javax.transaction.xa.Xid xid, int flags)` Invoke the xa_start routine on the SQL Server.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### XA_RMID

          private static final int XA_RMID

      The Resource Manager ID allocated by jTDS
      See Also:
        Constant Field Values

    - #### TM_ID

          private static final java.lang.String TM_ID

      xa_open login string unique to jTDS.
      See Also:
        Constant Field Values

    - #### XA_OPEN

          private static final int XA_OPEN

      See Also:
        Constant Field Values

    - #### XA_CLOSE

          private static final int XA_CLOSE

      See Also:
        Constant Field Values

    - #### XA_START

          private static final int XA_START

      See Also:
        Constant Field Values

    - #### XA_END

          private static final int XA_END

      See Also:
        Constant Field Values

    - #### XA_ROLLBACK

          private static final int XA_ROLLBACK

      See Also:
        Constant Field Values

    - #### XA_PREPARE

          private static final int XA_PREPARE

      See Also:
        Constant Field Values

    - #### XA_COMMIT

          private static final int XA_COMMIT

      See Also:
        Constant Field Values

    - #### XA_RECOVER

          private static final int XA_RECOVER

      See Also:
        Constant Field Values

    - #### XA_FORGET

          private static final int XA_FORGET

      See Also:
        Constant Field Values

    - #### XA_COMPLETE

          private static final int XA_COMPLETE

      See Also:
        Constant Field Values

    - #### XA_TRACE

          private static final int XA_TRACE

      Set this field to 1 to enable XA tracing.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### XASupport

          private XASupport()

  - ### Method Detail

    - #### xa_open

          public static int xa_open(java.sql.Connection connection)
                             throws java.sql.SQLException

      Invoke the xa_open routine on the SQL Server.
      Parameters:
        `connection` - the parent XAConnection object
      Returns:
        the XA connection ID allocated by xp_jtdsxa
      Throws:
        `java.sql.SQLException`

    - #### xa_close

          public static void xa_close(java.sql.Connection connection,
                      int xaConId)
                               throws java.sql.SQLException

      Invoke the xa_close routine on the SQL Server.
      Parameters:
        `connection` - JDBC Connection to be enlisted in the transaction
        `xaConId` - the connection ID allocated by the server
      Throws:
        `java.sql.SQLException`

    - #### xa_start

          public static void xa_start(java.sql.Connection connection,
                      int xaConId,
                      javax.transaction.xa.Xid xid,
                      int flags)
                               throws javax.transaction.xa.XAException

      Invoke the xa_start routine on the SQL Server.
      Parameters:
        `connection` - JDBC Connection to be enlisted in the transaction
        `xaConId` - the connection ID allocated by the server
        `xid` - the XA Transaction ID object
        `flags` - XA Flags for start command
      Throws:
        `javax.transaction.xa.XAException` - if an error condition occurs

    - #### xa_end

          public static void xa_end(java.sql.Connection connection,
                    int xaConId,
                    javax.transaction.xa.Xid xid,
                    int flags)
                             throws javax.transaction.xa.XAException

      Invoke the xa_end routine on the SQL Server.
      Parameters:
        `connection` - JDBC Connection enlisted in the transaction
        `xaConId` - the connection ID allocated by the server
        `xid` - the XA Transaction ID object
        `flags` - XA Flags for start command
      Throws:
        `javax.transaction.xa.XAException` - if an error condition occurs

    - #### xa_prepare

          public static int xa_prepare(java.sql.Connection connection,
                       int xaConId,
                       javax.transaction.xa.Xid xid)
                                throws javax.transaction.xa.XAException

      Invoke the xa_prepare routine on the SQL Server.
      Parameters:
        `connection` - JDBC Connection enlisted in the transaction.
        `xaConId` - The connection ID allocated by the server.
        `xid` - The XA Transaction ID object.
      Returns:
        prepare status (XA_OK or XA_RDONLY) as an `int`.
      Throws:
        `javax.transaction.xa.XAException` - if an error condition occurs

    - #### xa_commit

          public static void xa_commit(java.sql.Connection connection,
                       int xaConId,
                       javax.transaction.xa.Xid xid,
                       boolean onePhase)
                                throws javax.transaction.xa.XAException

      Invoke the xa_commit routine on the SQL Server.
      Parameters:
        `connection` - JDBC Connection enlisted in the transaction
        `xaConId` - the connection ID allocated by the server
        `xid` - the XA Transaction ID object
        `onePhase` - `true` if single phase commit required
      Throws:
        `javax.transaction.xa.XAException` - if an error condition occurs

    - #### xa_rollback

          public static void xa_rollback(java.sql.Connection connection,
                         int xaConId,
                         javax.transaction.xa.Xid xid)
                                  throws javax.transaction.xa.XAException

      Invoke the xa_rollback routine on the SQL Server.
      Parameters:
        `connection` - JDBC Connection enlisted in the transaction
        `xaConId` - the connection ID allocated by the server
        `xid` - the XA Transaction ID object
      Throws:
        `javax.transaction.xa.XAException` - if an error condition occurs

    - #### xa_recover

          public static javax.transaction.xa.Xid[] xa_recover(java.sql.Connection connection,
                                              int xaConId,
                                              int flags)
                                                       throws javax.transaction.xa.XAException

      Invoke the xa_recover routine on the SQL Server.

      This version of xa_recover will return all XIDs on the first call.
      Parameters:
        `connection` - JDBC Connection enlisted in the transaction
        `xaConId` - the connection ID allocated by the server
        `flags` - XA Flags for start command
      Returns:
        transactions to recover as a `Xid[]`
      Throws:
        `javax.transaction.xa.XAException` - if an error condition occurs

    - #### xa_forget

          public static void xa_forget(java.sql.Connection connection,
                       int xaConId,
                       javax.transaction.xa.Xid xid)
                                throws javax.transaction.xa.XAException

      Invoke the xa_forget routine on the SQL Server.
      Parameters:
        `connection` - JDBC Connection enlisted in the transaction
        `xaConId` - the connection ID allocated by the server
        `xid` - the XA Transaction ID object
      Throws:
        `javax.transaction.xa.XAException` - if an error condition occurs

    - #### raiseXAException

          public static void raiseXAException(java.sql.SQLException sqle)
                                       throws javax.transaction.xa.XAException

      Construct and throw an `XAException` with an explanatory message derived from the `SQLException` and the XA error code set to `XAER_RMFAIL`.
      Parameters:
        `sqle` - The SQLException.
      Throws:
        `javax.transaction.xa.XAException` - exception derived from the code>SQLException

    - #### raiseXAException

          public static void raiseXAException(int errorCode)
                                       throws javax.transaction.xa.XAException

      Construct and throw an `XAException` with an explanatory message and the XA error code set.
      Parameters:
        `errorCode` - the XA Error code
      Throws:
        `javax.transaction.xa.XAException` - the constructed exception

    - #### toBytesXid

          private static byte[] toBytesXid(javax.transaction.xa.Xid xid)

      Format an XA transaction ID into a 140 byte array.
      Parameters:
        `xid` - the XA transaction ID
      Returns:
        the formatted ID as a `byte[]`

Generated on June 8 2013