Interface XATransactionController
- All Superinterfaces:
PersistentSet
,TransactionController
- All Known Implementing Classes:
RAMTransaction
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
FieldsModifier and TypeFieldDescriptionstatic final int
static final int
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
Modifier and TypeMethodDescriptionvoid
xa_commit
(boolean onePhase) This method is called to commit the current XA global transaction.int
This method is called to ask the resource manager to prepare for a transaction commit of the transaction specified in xid.void
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 Details
-
XA_RDONLY
static final int XA_RDONLYPublic Methods of This class:- See Also:
-
XA_OK
static final int XA_OK- See Also:
-
-
Method Details
-
xa_commit
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
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
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.
-