Interface XATransactionController
-
- All Superinterfaces:
PersistentSet
,TransactionController
- All Known Implementing Classes:
RAMTransaction
public interface XATransactionController extends TransactionController
This interface allows access to commit,prepare,abort global transactions as part of a two phase commit protocol, during runtime. These interfaces have been chosen to be exact implementations required to implement the XAResource interfaces as part of the JTA standard extension.It is expected that the following interfaces are only used during the runtime portion of a 2 phase commit connection.
If a runtime exception causes a transaction abort (of a transaction that has not been successfully prepared), then the transaction will act as if xa_rollback() had been called. The transaction will be aborted and any other call other than destroy will throw exceptions.
The XAResource interface is a Java mapping of the industry standard XA resource manager interface. Please refer to: X/Open CAE Specification - Distributed Transaction Processing: The XA Specification, X/Open Document No. XO/CAE/91/300 or ISBN 1 872630 24 3.
NOTE - all calls to this interface assume that the caller has insured that there is no active work being done on the local instance of the transaction in question. RESOLVE - not sure whether this means that the connection associated with the transaction must be closed, or if it just means that synchronization has been provided to provide correct MT behavior from above.
-
-
Field Summary
Fields Modifier and Type Field Description static int
XA_OK
static int
XA_RDONLY
Public Methods of This class:-
Fields inherited from interface org.apache.derby.iapi.store.access.TransactionController
IS_DEFAULT, IS_KEPT, IS_TEMPORARY, ISOLATION_NOLOCK, ISOLATION_READ_COMMITTED, ISOLATION_READ_COMMITTED_NOHOLDLOCK, ISOLATION_READ_UNCOMMITTED, ISOLATION_REPEATABLE_READ, ISOLATION_SERIALIZABLE, KEEP_LOCKS, MODE_RECORD, MODE_TABLE, OPEN_CONGLOMERATE, OPEN_CREATED_SORTS, OPEN_SCAN, OPEN_SORT, OPEN_TOTAL, OPENMODE_BASEROW_INSERT_LOCKED, OPENMODE_FOR_LOCK_ONLY, OPENMODE_FORUPDATE, OPENMODE_LOCK_NOWAIT, OPENMODE_LOCK_ROW_NOWAIT, OPENMODE_SECONDARY_LOCKED, OPENMODE_USE_UPDATE_LOCKS, READONLY_TRANSACTION_INITIALIZATION, RELEASE_LOCKS
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
xa_commit(boolean onePhase)
This method is called to commit the current XA global transaction.int
xa_prepare()
This method is called to ask the resource manager to prepare for a transaction commit of the transaction specified in xid.void
xa_rollback()
rollback the current global transaction.-
Methods inherited from interface org.apache.derby.iapi.services.property.PersistentSet
getProperties, getProperty, getPropertyDefault, propertyDefaultIsVisible, setProperty, setPropertyDefault
-
Methods inherited from interface org.apache.derby.iapi.store.access.TransactionController
abort, addColumnToConglomerate, anyoneBlocked, commit, commitNoSync, compressConglomerate, conglomerateExists, countOpens, createAndLoadConglomerate, createBackingStoreHashtableFromScan, createConglomerate, createSort, createXATransactionFromLocalTransaction, debugOpened, defragmentConglomerate, destroy, dropConglomerate, dropSort, fetchMaxOnBtree, findConglomid, findContainerid, getAccessManager, getActiveStateTxIdString, getContextManager, getDynamicCompiledConglomInfo, getFileHandler, getLockSpace, getStaticCompiledConglomInfo, getTransactionIdString, getUserCreateConglomPropList, isGlobal, isIdle, isPristine, logAndDo, openCompiledConglomerate, openCompiledScan, openConglomerate, openGroupFetchScan, openScan, openSort, openSortCostController, openSortRowSource, openSortScan, openStoreCost, purgeConglomerate, recreateAndLoadConglomerate, releaseSavePoint, rollbackToSavePoint, setNoLockWait, setSavePoint, startNestedUserTransaction
-
-
-
-
Field Detail
-
XA_RDONLY
static final int XA_RDONLY
Public Methods of This class:- See Also:
- Constant Field Values
-
XA_OK
static final int XA_OK
- See Also:
- Constant Field Values
-
-
Method Detail
-
xa_commit
void xa_commit(boolean onePhase) throws StandardException
This method is called to commit the current XA global transaction.Once this call has been made all other calls on this controller other than destroy will throw exceptions.
- Parameters:
onePhase
- If true, the resource manager should use a one-phase commit protocol to commit the work done on behalf of current xid.- Throws:
StandardException
- Standard exception policy.
-
xa_prepare
int xa_prepare() throws StandardException
This method is called to ask the resource manager to prepare for a transaction commit of the transaction specified in xid.If XA_OK is returned then any call other than xa_commit() or xa_abort() will throw exceptions. If XA_RDONLY is returned then any call other than destroy() will throw exceptions.
- Returns:
- A value indicating the resource manager's vote on the the outcome of the transaction. The possible values are: XA_RDONLY or XA_OK. If the resource manager wants to roll back the transaction, it should do so by throwing an appropriate XAException in the prepare method.
- Throws:
StandardException
- Standard exception policy.
-
xa_rollback
void xa_rollback() throws StandardException
rollback the current global transaction.The given transaction is roll'ed back and it's history is not maintained in the transaction table or long term log.
Once this call has been made all other calls on this controller other than destroy will throw exceptions.
- Throws:
StandardException
- Standard exception policy.
-
-