public interface NestableTransactionManager extends TransactionManager
NestableServerTransaction
,
TransactionParticipant
TransactionManager.Created
ABORTED, ACTIVE, COMMITTED, NOTCHANGED, PREPARED, VOTING
Modifier and Type | Method and Description |
---|---|
TransactionManager.Created |
create(NestableTransactionManager parentMgr,
long parentID,
long lease)
Begin a nested transaction, with the specified transaction as parent.
|
void |
promote(long id,
TransactionParticipant[] parts,
long[] crashCounts,
TransactionParticipant drop)
Promote the listed participants into the specified transaction.
|
TransactionManager.Created create(NestableTransactionManager parentMgr, long parentID, long lease) throws UnknownTransactionException, CannotJoinException, LeaseDeniedException, RemoteException
parentMgr
- the manager of the parent transactionparentID
- the id of the parent transactionlease
- the requested lease time for the transactionUnknownTransactionException
- if the transaction
is unknown to the transaction manager, either
because the transaction ID is incorrect or because the
transaction is complete and its state has been
discarded by the manager.CannotJoinException
- if the transaction is known
to the manager but is no longer active.LeaseDeniedException
- if this manager is unwilling to
grant the requested lease timeRemoteException
- if there is a communication errorvoid promote(long id, TransactionParticipant[] parts, long[] crashCounts, TransactionParticipant drop) throws UnknownTransactionException, CannotJoinException, CrashCountException, RemoteException
crashCounts
array.id
- the id of the parent transactionparts
- the participants being promoted to the parentcrashCounts
- the crash counts of the participantsdrop
- the manager to drop out, if anyCrashCountException
- if the crash count provided
for at least one participant differs from the crash
count in a previous invocation of the same pairing
of participant and transactionUnknownTransactionException
- if a transaction
is unknown to the transaction manager, either
because the transaction ID is incorrect or because the
transaction is complete and its state has been
discarded by the manager.CannotJoinException
- if a transaction is known
to the manager but is no longer active.RemoteException
- if there is a communication errorTransactionManager.join(long, net.jini.core.transaction.server.TransactionParticipant, long)