com.ibm.as400.access
Class AS400JDBCXAResource
- java.lang.Object
-
- com.ibm.as400.access.AS400JDBCXAResource
-
- All Implemented Interfaces:
- javax.transaction.xa.XAResource
public class AS400JDBCXAResource extends java.lang.Object implements javax.transaction.xa.XAResource
The AS400JDBCXAResource class represents a resource manager for use in XA transaction management.This support is only available when connecting to systems running OS/400 V5R1 or later, or IBM i.
The following example creates an AS400JDBCXAResource object that can be used to work with the XA resource manager.
// Create an XA data source for making the XA connection. AS400JDBCXADataSource xaDataSource = new AS400JDBCXADataSource("myAS400"); xaDataSource.setUser("myUser"); xaDataSource.setPassword("myPasswd"); // Get an XAConnection and get the associated XAResource. // This provides access to the resource manager. XAConnection xaConnection = xaDataSource.getXAConnection(); XAResource xaResource = xaConnection.getXAResource(); // ... work with the XA resource. // Close the XA connection when done. This implicitly // closes the XA resource. xaConnection.close();
- See Also:
AS400JDBCXAConnection
,AS400JDBCXADataSource
-
-
Method Summary
Methods Modifier and Type Method and Description void
commit(javax.transaction.xa.Xid xid, boolean onePhase)
Commits a global transaction.void
end(javax.transaction.xa.Xid xid, int flags)
Ends the work performed on behalf of a transaction branch.void
forget(javax.transaction.xa.Xid xid)
Tells the resource manager to forget about a heuristically completed transaction branch.int
getTransactionTimeout()
Returns the current transaction timeout value.boolean
isSameRM(javax.transaction.xa.XAResource xaResource)
Indicates if the resource manager represented by this XA resource is the same resource manager represented by the specified XA resource.int
prepare(javax.transaction.xa.Xid xid)
Prepares for a transaction commit.javax.transaction.xa.Xid[]
recover(int flags)
Recovers a list of prepared transaction branches from the resource manager.void
rollback(javax.transaction.xa.Xid xid)
Rolls back a transaction branch.void
setLockWait(int lockWait)
Specifies the number of seconds that the system will wait on any lock request during this transaction.boolean
setTransactionTimeout(int transactionTimeout)
Sets the current transaction timeout value.void
start(javax.transaction.xa.Xid xid, int flags)
Starts the work on behalf of a transaction branch.java.lang.String
toString()
Returns the string representation of the XA resource.
-
-
-
Method Detail
-
commit
public void commit(javax.transaction.xa.Xid xid, boolean onePhase) throws javax.transaction.xa.XAException
Commits a global transaction.- Specified by:
commit
in interfacejavax.transaction.xa.XAResource
- Parameters:
xid
- The global transaction identifier.onePhase
- true if the resource manager should use a one-phase commit protocol to commit the work; false otherwise.- Throws:
javax.transaction.xa.XAException
- If an error occurs.
-
end
public void end(javax.transaction.xa.Xid xid, int flags) throws javax.transaction.xa.XAException
Ends the work performed on behalf of a transaction branch. The resource manager disassociates the XA resource from the transaction branch specified and lets the transaction be completed.- Specified by:
end
in interfacejavax.transaction.xa.XAResource
- Parameters:
xid
- The global transaction identifier. This must correspond to the global transaction identifier previously passed to start().flags
- The flags. Possible values are:- TMSUCCESS - The portion of work has completed successfully.
- TMFAIL - The portion of work has failed. The resource manager may mark the transaction as rollback-only.
- TMSUSPEND - The transaction branch is temporarily suspended in incomplete state. The transaction context is in suspend state and must be resumed via start() with TMRESUME. (This is not currently supported for V5R2 and earlier versions.)
- Throws:
javax.transaction.xa.XAException
- If an error occurs.
-
forget
public void forget(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
Tells the resource manager to forget about a heuristically completed transaction branch.- Specified by:
forget
in interfacejavax.transaction.xa.XAResource
- Parameters:
xid
- The global transaction identifier.- Throws:
javax.transaction.xa.XAException
- If an error occurs.
-
getTransactionTimeout
public int getTransactionTimeout() throws javax.transaction.xa.XAException
Returns the current transaction timeout value.- Specified by:
getTransactionTimeout
in interfacejavax.transaction.xa.XAResource
- Returns:
- The current transaction timeout value.
- Throws:
javax.transaction.xa.XAException
- If an error occurs.
-
isSameRM
public boolean isSameRM(javax.transaction.xa.XAResource xaResource) throws javax.transaction.xa.XAException
Indicates if the resource manager represented by this XA resource is the same resource manager represented by the specified XA resource.- Specified by:
isSameRM
in interfacejavax.transaction.xa.XAResource
- Parameters:
xaResource
- The XA resource.- Returns:
- true if both XA resources represent the same resource manager, false otherwise.
- Throws:
javax.transaction.xa.XAException
- If an error occurs.
-
prepare
public int prepare(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
Prepares for a transaction commit.- Specified by:
prepare
in interfacejavax.transaction.xa.XAResource
- Parameters:
xid
- The global transaction identifier.- Returns:
- One of the following values:
- XA_OK - The transaction work has been prepared normally.
- XA_RDONLY - The transaction branch has been read-only and has been committed.
- Throws:
javax.transaction.xa.XAException
- If an error occurs.
-
recover
public javax.transaction.xa.Xid[] recover(int flags) throws javax.transaction.xa.XAException
Recovers a list of prepared transaction branches from the resource manager.- Specified by:
recover
in interfacejavax.transaction.xa.XAResource
- Parameters:
flags
- The flags. Possible values are:- TMSTARTRSCAN - Start a recovery scan.
- TMENDRSCAN - End a recovery scan.
- TMNOFLAGS - No flags are set.
- Returns:
- The global transaction identifiers for the transaction branches that are currently in a prepared or heuristically completed state.
- Throws:
javax.transaction.xa.XAException
- If an error occurs.
-
rollback
public void rollback(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
Rolls back a transaction branch.- Specified by:
rollback
in interfacejavax.transaction.xa.XAResource
- Parameters:
xid
- The global transaction identifier.- Throws:
javax.transaction.xa.XAException
- If an error occurs.
-
setTransactionTimeout
public boolean setTransactionTimeout(int transactionTimeout) throws javax.transaction.xa.XAException
Sets the current transaction timeout value. This is not supported.- Specified by:
setTransactionTimeout
in interfacejavax.transaction.xa.XAResource
- Parameters:
transactionTimeout
- The current transaction timeout value in seconds, or 0 to reset the timeout value to the default. The transaction timeout will be set the next time start() is called.- Returns:
- true if the timeout value can be set successfully, false if the resource manager does not support the transaction timeout value to be set.
- Throws:
javax.transaction.xa.XAException
- If an error occurs.
-
start
public void start(javax.transaction.xa.Xid xid, int flags) throws javax.transaction.xa.XAException
Starts the work on behalf of a transaction branch. The resource manager associates the XA resource from the transaction branch specified.- Specified by:
start
in interfacejavax.transaction.xa.XAResource
- Parameters:
xid
- The global transaction identifier.flags
- The flags. Possible values are:- TMJOIN - Joins a transaction previously seen by the resource manager.
- TMRESUME - Resumes a suspended transaction. (This is not currently supported for V5R3 and earlier versions.)
- TMNOFLAGS - No flags are set.
- Throws:
javax.transaction.xa.XAException
- If an error occurs.
-
setLockWait
public void setLockWait(int lockWait) throws java.sql.SQLException
Specifies the number of seconds that the system will wait on any lock request during this transaction.- Parameters:
lockWait
- The time in seconds to wait.- Throws:
java.sql.SQLException
-
toString
public java.lang.String toString()
Returns the string representation of the XA resource.- Overrides:
toString
in classjava.lang.Object
- Returns:
- The string representation.
-
-