public interface TransactionParticipant extends Remote, TransactionConstants
TransactionManager
interface, this interface allows a two-phase commit protocol to
be used between objects in a distributed system.TransactionManager
,
NestableTransactionManager
,
ServerTransaction
ABORTED, ACTIVE, COMMITTED, NOTCHANGED, PREPARED, VOTING
Modifier and Type | Method and Description |
---|---|
void |
abort(TransactionManager mgr,
long id)
Requests that the participant roll back any changes for the specified transaction and unlock
any resources locked by the transaction.
|
void |
commit(TransactionManager mgr,
long id)
Requests that the participant make all of its
PREPARED changes for the specified
transaction visible outside of the transaction and unlock any resources locked by the
transaction. |
void |
commit(TransactionManager mgr,
long id,
int numOfParticipants)
Requests that the participant make all of its
PREPARED changes for the specified
transaction visible outside of the transaction and unlock any resources locked by the
transaction. |
int |
prepare(TransactionManager mgr,
long id)
Requests that the participant prepare itself to commit the transaction, and to vote on the
outcome of the transaction.
|
int |
prepareAndCommit(TransactionManager mgr,
long id)
A combination of
prepare and commit , which can be used by the
manager when there is just one participant left to prepare and all other participants (if
any) have responded with NOTCHANGED . |
void |
renewLease(TransactionManager mgr,
long id,
long time)
Notify the transaction participant about transaction lease renewal
|
int prepare(TransactionManager mgr, long id) throws UnknownTransactionException, RemoteException
PREPARED
,
indicating that it is prepared; ABORT
, indicating that it will abort, or
NOTCHANGED
, indicating that it did not have any state changed by the transaction
(i.e., it was read-only). If the response is PREPARED
, the participant must wait
until it receives a commit or abort call from the transaction manager; it may query the
transaction manager if needed as to the state of the transaction. If the response is
ABORT
, the participant should roll its state back to undo any changes that
occurred due to operations performed under the transaction; it can then discard any
information about the transaction. If the response is NOTCHANGED
, the
participant can immediately discard any knowledge of the transaction.mgr
- the manager of the transactionid
- the transaction IDint
representing this participant's stateUnknownTransactionException
- 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.RemoteException
- if there is a communication errorvoid commit(TransactionManager mgr, long id) throws UnknownTransactionException, RemoteException
PREPARED
changes for the specified
transaction visible outside of the transaction and unlock any resources locked by the
transaction. All state associated with the transaction can then be discarded by the
participant.mgr
- the manager of the transactionid
- the transaction IDUnknownTransactionException
- 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.RemoteException
- if there is a communication errorvoid commit(TransactionManager mgr, long id, int numOfParticipants) throws UnknownTransactionException, RemoteException
PREPARED
changes for the specified
transaction visible outside of the transaction and unlock any resources locked by the
transaction. All state associated with the transaction can then be discarded by the
participant.mgr
- the manager of the transactionid
- the transaction IDnumOfParticipants
- the total number of transaction participants this is needed only in
commit , since prepareAndCommit is called for single participantUnknownTransactionException
- 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.RemoteException
- if there is a communication errorvoid abort(TransactionManager mgr, long id) throws UnknownTransactionException, RemoteException
mgr
- the manager of the transactionid
- the transaction IDUnknownTransactionException
- 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.RemoteException
- if there is a communication errorint prepareAndCommit(TransactionManager mgr, long id) throws UnknownTransactionException, RemoteException
prepare
and commit
, which can be used by the
manager when there is just one participant left to prepare and all other participants (if
any) have responded with NOTCHANGED
. The participant's implementation of this
method must be equivalent to:
public int prepareAndCommit(TransactionManager mgr, long id) throws UnknownTransactionException, RemoteException { int result = prepare(mgr, id); if (result == PREPARED) { commit(mgr, id); result = COMMITTED; } return result; }
mgr
- the manager of the transactionid
- the transaction IDint
representing its stateUnknownTransactionException
- 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.RemoteException
- if there is a communication errorprepare(net.jini.core.transaction.server.TransactionManager, long)
,
commit(net.jini.core.transaction.server.TransactionManager, long)
void renewLease(TransactionManager mgr, long id, long time) throws LeaseDeniedException, UnknownLeaseException, RemoteException
Copyright © GigaSpaces.