|
GigaSpaces XAP 9.7.2 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface TransactionParticipant
The interface used for participants of the two-phase commit protocol.
The methods on this interface are called by the transaction manager.
Any class that wants to have operations wrapped in a transaction
needs to support this interface. In conjunction with the
TransactionManager
interface, this interface allows a
two-phase commit protocol to be used between objects in a distributed
system.
TransactionManager
,
NestableTransactionManager
,
ServerTransaction
Field Summary |
---|
Fields inherited from interface net.jini.core.transaction.server.TransactionConstants |
---|
ABORTED, ACTIVE, COMMITTED, NOTCHANGED, PREPARED, VOTING |
Method Summary | |
---|---|
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 |
Method Detail |
---|
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 ID
int
representing this participant's state
UnknownTransactionException
- 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 ID
UnknownTransactionException
- 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 participant
UnknownTransactionException
- 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 ID
UnknownTransactionException
- 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 ID
int
representing its state
UnknownTransactionException
- 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
mgr
- id
- time
-
LeaseDeniedException
UnknownLeaseException
RemoteException
|
GigaSpaces XAP 9.7.2 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |