Package org.datanucleus.transaction
Class ResourcedTransaction
- java.lang.Object
-
- org.datanucleus.transaction.ResourcedTransaction
-
public class ResourcedTransaction extends java.lang.ObjectTransaction allowing resources to be enlisted, with branches and phased commit, following the style of an Open/XA transaction. Enlisted resources are typically datastore resources which, in turn, need committing.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<javax.transaction.xa.XAResource,javax.transaction.xa.Xid>activeBranchesactive branches are resources that have not ended and are not suspendedprivate java.util.Map<javax.transaction.xa.Xid,javax.transaction.xa.XAResource>branchesbranches - each resource is a new branchprivate booleancompletinghas completing started ?private java.util.List<javax.transaction.xa.XAResource>enlistedResourcesenlisted XAResource resourcesprivate java.lang.StringidStringprivate static intNEXT_GLOBAL_TRANSACTION_IDsequence number for global transactionsprivate intnextBranchIdnumber for next branchprivate static intNODE_IDid of this instancestatic java.util.RandomrandomRandom number generator, for use when needing unique names.private intstatustransaction status(package private) static intSTATUS_ACTIVE(package private) static intSTATUS_COMMITTED(package private) static intSTATUS_COMMITTING(package private) static intSTATUS_MARKED_ROLLBACK(package private) static intSTATUS_NO_TRANSACTION(package private) static intSTATUS_PREPARED(package private) static intSTATUS_PREPARING(package private) static intSTATUS_ROLLEDBACK(package private) static intSTATUS_ROLLING_BACK(package private) static intSTATUS_UNKNOWNprivate java.util.Map<javax.transaction.xa.XAResource,javax.transaction.xa.Xid>suspendedResourcessuspended branchesprivate java.util.List<javax.transaction.Synchronization>synchronizationSynchonizationprivate javax.transaction.xa.Xidxidtransaction id
-
Constructor Summary
Constructors Constructor Description ResourcedTransaction()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcommit()booleandelistResource(javax.transaction.xa.XAResource xaRes, int flag)booleanenlistResource(javax.transaction.xa.XAResource xaRes)intgetStatus()static java.lang.StringgetXAErrorCode(java.lang.Throwable xae)private static java.lang.StringgetXAFlag(int flag)booleanisEnlisted(javax.transaction.xa.XAResource xaRes)voidregisterSynchronization(javax.transaction.Synchronization sync)voidrollback()voidsetRollbackOnly()java.lang.StringtoString()
-
-
-
Field Detail
-
random
public static final java.util.Random random
Random number generator, for use when needing unique names.
-
STATUS_ACTIVE
static final int STATUS_ACTIVE
- See Also:
- Constant Field Values
-
STATUS_MARKED_ROLLBACK
static final int STATUS_MARKED_ROLLBACK
- See Also:
- Constant Field Values
-
STATUS_PREPARED
static final int STATUS_PREPARED
- See Also:
- Constant Field Values
-
STATUS_COMMITTED
static final int STATUS_COMMITTED
- See Also:
- Constant Field Values
-
STATUS_ROLLEDBACK
static final int STATUS_ROLLEDBACK
- See Also:
- Constant Field Values
-
STATUS_UNKNOWN
static final int STATUS_UNKNOWN
- See Also:
- Constant Field Values
-
STATUS_NO_TRANSACTION
static final int STATUS_NO_TRANSACTION
- See Also:
- Constant Field Values
-
STATUS_PREPARING
static final int STATUS_PREPARING
- See Also:
- Constant Field Values
-
STATUS_COMMITTING
static final int STATUS_COMMITTING
- See Also:
- Constant Field Values
-
STATUS_ROLLING_BACK
static final int STATUS_ROLLING_BACK
- See Also:
- Constant Field Values
-
NODE_ID
private static final int NODE_ID
id of this instance
-
NEXT_GLOBAL_TRANSACTION_ID
private static int NEXT_GLOBAL_TRANSACTION_ID
sequence number for global transactions
-
nextBranchId
private int nextBranchId
number for next branch
-
xid
private final javax.transaction.xa.Xid xid
transaction id
-
status
private int status
transaction status
-
completing
private boolean completing
has completing started ?
-
synchronization
private java.util.List<javax.transaction.Synchronization> synchronization
Synchonization
-
enlistedResources
private java.util.List<javax.transaction.xa.XAResource> enlistedResources
enlisted XAResource resources
-
branches
private java.util.Map<javax.transaction.xa.Xid,javax.transaction.xa.XAResource> branches
branches - each resource is a new branch
-
activeBranches
private java.util.Map<javax.transaction.xa.XAResource,javax.transaction.xa.Xid> activeBranches
active branches are resources that have not ended and are not suspended
-
suspendedResources
private java.util.Map<javax.transaction.xa.XAResource,javax.transaction.xa.Xid> suspendedResources
suspended branches
-
idString
private final java.lang.String idString
-
-
Method Detail
-
getStatus
public int getStatus()
-
isEnlisted
public boolean isEnlisted(javax.transaction.xa.XAResource xaRes)
-
enlistResource
public boolean enlistResource(javax.transaction.xa.XAResource xaRes)
-
delistResource
public boolean delistResource(javax.transaction.xa.XAResource xaRes, int flag)
-
registerSynchronization
public void registerSynchronization(javax.transaction.Synchronization sync)
-
commit
public void commit()
-
rollback
public void rollback()
-
setRollbackOnly
public void setRollbackOnly()
-
getXAErrorCode
public static java.lang.String getXAErrorCode(java.lang.Throwable xae)
-
getXAFlag
private static java.lang.String getXAFlag(int flag)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-