org.apache.derby.iapi.store.access
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
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_SECONDARY_LOCKED, OPENMODE_USE_UPDATE_LOCKS, READONLY_TRANSACTION_INITIALIZATION, RELEASE_LOCKS
 
Method Summary
 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.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
 
Methods inherited from interface org.apache.derby.iapi.services.property.PersistentSet
getProperties, getProperty, getPropertyDefault, propertyDefaultIsVisible, setProperty, setPropertyDefault
 

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.

Built on Thu 2011-03-10 11:54:14+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.