Package net.sourceforge.jtds.jdbc
Class XASupport
- java.lang.Object
-
- net.sourceforge.jtds.jdbc.XASupport
-
public class XASupport extends java.lang.ObjectThis 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 Description private static java.lang.StringTM_IDxa_open login string unique to jTDS.private static intXA_CLOSEprivate static intXA_COMMITprivate static intXA_COMPLETEprivate static intXA_ENDprivate static intXA_FORGETprivate static intXA_OPENprivate static intXA_PREPAREprivate static intXA_RECOVERprivate static intXA_RMIDThe Resource Manager ID allocated by jTDSprivate static intXA_ROLLBACKprivate static intXA_STARTprivate static intXA_TRACESet this field to 1 to enable XA tracing.
-
Constructor Summary
Constructors Modifier Constructor Description privateXASupport()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidraiseXAException(int errorCode)Construct and throw anXAExceptionwith an explanatory message and the XA error code set.static voidraiseXAException(java.sql.SQLException sqle)Construct and throw anXAExceptionwith an explanatory message derived from theSQLExceptionand the XA error code set toXAER_RMFAIL.private static byte[]toBytesXid(javax.transaction.xa.Xid xid)Format an XA transaction ID into a 140 byte array.static voidxa_close(java.sql.Connection connection, int xaConId)Invoke the xa_close routine on the SQL Server.static voidxa_commit(java.sql.Connection connection, int xaConId, javax.transaction.xa.Xid xid, boolean onePhase)Invoke the xa_commit routine on the SQL Server.static voidxa_end(java.sql.Connection connection, int xaConId, javax.transaction.xa.Xid xid, int flags)Invoke the xa_end routine on the SQL Server.static voidxa_forget(java.sql.Connection connection, int xaConId, javax.transaction.xa.Xid xid)Invoke the xa_forget routine on the SQL Server.static intxa_open(java.sql.Connection connection)Invoke the xa_open routine on the SQL Server.static intxa_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 voidxa_rollback(java.sql.Connection connection, int xaConId, javax.transaction.xa.Xid xid)Invoke the xa_rollback routine on the SQL Server.static voidxa_start(java.sql.Connection connection, int xaConId, javax.transaction.xa.Xid xid, int flags)Invoke the xa_start routine on the SQL Server.
-
-
-
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
-
-
Method Detail
-
xa_open
public static int xa_open(java.sql.Connection connection) throws java.sql.SQLExceptionInvoke 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.SQLExceptionInvoke the xa_close routine on the SQL Server.- Parameters:
connection- JDBC Connection to be enlisted in the transactionxaConId- 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.XAExceptionInvoke the xa_start routine on the SQL Server.- Parameters:
connection- JDBC Connection to be enlisted in the transactionxaConId- the connection ID allocated by the serverxid- the XA Transaction ID objectflags- 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.XAExceptionInvoke the xa_end routine on the SQL Server.- Parameters:
connection- JDBC Connection enlisted in the transactionxaConId- the connection ID allocated by the serverxid- the XA Transaction ID objectflags- 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.XAExceptionInvoke 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.XAExceptionInvoke the xa_commit routine on the SQL Server.- Parameters:
connection- JDBC Connection enlisted in the transactionxaConId- the connection ID allocated by the serverxid- the XA Transaction ID objectonePhase-trueif 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.XAExceptionInvoke the xa_rollback routine on the SQL Server.- Parameters:
connection- JDBC Connection enlisted in the transactionxaConId- the connection ID allocated by the serverxid- 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.XAExceptionInvoke 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 transactionxaConId- the connection ID allocated by the serverflags- 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.XAExceptionInvoke the xa_forget routine on the SQL Server.- Parameters:
connection- JDBC Connection enlisted in the transactionxaConId- the connection ID allocated by the serverxid- 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.XAExceptionConstruct and throw anXAExceptionwith an explanatory message derived from theSQLExceptionand the XA error code set toXAER_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.XAExceptionConstruct and throw anXAExceptionwith 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[]
-
-