Package net.jini.core.transaction.server
Class ServerTransaction
java.lang.Object
net.jini.core.transaction.server.ServerTransaction
- All Implemented Interfaces:
ISwapExternalizable,SmartExternalizable,Externalizable,Serializable,ManagedTransaction,Transaction
- Direct Known Subclasses:
GSServerTransaction,NestableServerTransaction
public class ServerTransaction
extends Object
implements ManagedTransaction, Serializable, SmartExternalizable, ISwapExternalizable
Class implementing the
Transaction interface, for use with transaction participants
that implement the default transaction semantics.- Since:
- 1.0
- Author:
- Sun Microsystems, Inc.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.jini.core.transaction.Transaction
Transaction.Created -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final longlongThe transaction id.The transaction manager. -
Constructor Summary
ConstructorsConstructorDescriptionDo not use, required for externalizableServerTransaction(TransactionManager mgr, long id) ServerTransaction(TransactionManager mgr, long id, long lease) Simple constructor.ServerTransaction(TransactionManager mgr, long id, TransactionParticipantDataImpl metaData) -
Method Summary
Modifier and TypeMethodDescriptionvoidabort()Abort the transaction.voidabort(long waitFor) Abort the transaction, waiting for participants to be notified of the decision.voidcommit()Commit the transaction.voidcommit(long waitFor) Commit the transaction, waiting for participants to be notified of the decision.static ServerTransactioncreate(TransactionManager mgr, long id, long lease) protected ServerTransactionCreates an instance of this class for cloning using thecreateCopy()method.booleanTwo instances are equal if they have the same transaction manager and the same transaction id.longgetLease()intgetState()Returns the current state of the transaction.inthashCode()protected voidbooleanis the xtn manager an embedded proxy-side one ?booleanbooleanisNested()Return true if the transaction has a parent, false if the transaction is top level.booleanisXid()voidjoin(TransactionParticipant part, long crashCount) Join the transaction.voidjoin(TransactionParticipant part, long crashCount, int partitionId, String clusterName) protected voidjoin(TransactionParticipant part, long crashCount, int partitionId, String clusterName, Object proxy) voidjoinIfNeededAndEmbedded(TransactionParticipant participant) Deprecated.booleanjoinIfNeededAndEmbedded(TransactionParticipant participant, int partitionId, String clusterName, Object proxy) booleanreturns true if this the txn participants need to join it in contrary to a xtn which the participants are known prior to txn propagationvoidvoidvoidsetEmbeddedMgrProxySideInstance(boolean value) voidsetLease(long lease) voidsetMetaData(TransactionParticipantDataImpl metaData) toString()voidvoidwriteToSwap(ObjectOutput out) Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.gigaspaces.serialization.SmartExternalizable
enabledSmartExternalizableWithReference
-
Field Details
-
mgr
The transaction manager. -
id
public long idThe transaction id. -
EMBEDDED_CRASH_COUNT
public static final long EMBEDDED_CRASH_COUNT- See Also:
-
-
Constructor Details
-
ServerTransaction
public ServerTransaction()Do not use, required for externalizable -
ServerTransaction
Simple constructor. Clients should not call this directly, but should instead useTransactionFactory.- Parameters:
mgr- the manager for this transactionid- the transaction idlease- the lease of the transaction.
-
ServerTransaction
-
ServerTransaction
-
-
Method Details
-
create
public static ServerTransaction create(TransactionManager mgr, long id, long lease) throws RemoteException - Throws:
RemoteException
-
initEmbedded
- Throws:
RemoteException
-
getLease
public long getLease() -
setLease
public void setLease(long lease) -
equals
Two instances are equal if they have the same transaction manager and the same transaction id. -
hashCode
public int hashCode() -
toString
-
commit
Description copied from interface:TransactionCommit the transaction. Commit asks the transaction manager to execute the voting process with the participants. Returns if the transaction successfully reaches either theNOTCHANGEDor theCOMMITTEDstate, without waiting for the transaction manager to notify all participants of the decision. If the transaction must be aborted (because one or more participants are unable to prepare),CannotCommitExceptionis thrown without waiting for the transaction manager to notify all participants of the decision.- Specified by:
commitin interfaceTransaction- Throws:
UnknownTransactionException- if the transaction is unknown to the manager. This may be because the transaction ID was incorrect, or because the transaction has proceeded to cleanup due to an earlier commit or abort, and has been forgotten.CannotCommitException- if the transaction reaches the ABORTED state, or is known to have previously reached that state due to an earlier commit or abort.RemoteException- if a communication error occurs.
-
commit
public void commit(long waitFor) throws UnknownTransactionException, CannotCommitException, TimeoutExpiredException, RemoteException Description copied from interface:TransactionCommit the transaction, waiting for participants to be notified of the decision. Commit asks the transaction manager to execute the voting process with the participants. Returns if the transaction successfully reaches either theNOTCHANGEDor theCOMMITTEDstate, and the transaction manager has notified all participants of the decision, before the specified timeout expires. If the transaction must be aborted (because one or more participants are unable to prepare),CannotCommitExceptionis thrown if the transaction manager is able to notify all participants of the decision before the specified timeout expires. If the transaction manager reaches a decision, but is unable to notify all participants of that decision before the specified timeout expires, thenTimeoutExpiredExceptionis thrown. If the specified timeout expires before the transaction manager reaches a decision,TimeoutExpiredExceptionis not thrown until the manager reaches a decision.- Specified by:
commitin interfaceTransaction- Parameters:
waitFor- timeout to wait, from the start of the call until all participants have been notified of the transaction manager's decision- Throws:
UnknownTransactionException- if the transaction is unknown to the manager. This may be because the transaction ID was incorrect, or because the transaction has proceeded to cleanup due to an earlier commit or abort, and has been forgotten.CannotCommitException- if the transaction reaches the ABORTED state, or is known to have previously reached that state due to an earlier commit or abort.TimeoutExpiredException- if the timeout expires before all participants have been notified.RemoteException- if a communication error occurs.
-
abort
Description copied from interface:TransactionAbort the transaction. This can be called at any time by any object holding a reference to the transaction. Abort asks the transaction manager to abort the transaction and to notify each participant of the decision, resulting in them rolling back any state changes made as part of the transaction. Returns as soon as the transaction manager records the abort decision, without waiting for the transaction manager to notify all participants of the decision.- Specified by:
abortin interfaceTransaction- Throws:
UnknownTransactionException- if the transaction is unknown to the manager. This may be because the transaction ID was incorrect, or because the transaction has proceeded to cleanup due to an earlier commit or abort, and has been forgotten.CannotAbortException- if the transaction is known to have previously reached the COMMITTED state due to an earlier commit.RemoteException- if a communication error occurs.
-
abort
public void abort(long waitFor) throws UnknownTransactionException, CannotAbortException, TimeoutExpiredException, RemoteException Description copied from interface:TransactionAbort the transaction, waiting for participants to be notified of the decision. This can be called at any time by any object holding a reference to the transaction. Abort asks the transaction manager to abort the transaction and to notify each participant of the decision, resulting in them rolling back any state changes made as part of the transaction. Returns if the transaction manager records the decision and is able to notify all participants of the decision before the specified timeout expires. If the transaction manager is unable to notify all participants of the decision before the specified timeout expires, thenTimeoutExpiredExceptionis thrown.- Specified by:
abortin interfaceTransaction- Parameters:
waitFor- timeout to wait, from the start of the call until all participants have been notified of the transaction manager's decision.- Throws:
UnknownTransactionException- if the transaction is unknown to the manager. This may be because the transaction ID was incorrect, or because the transaction has proceeded to cleanup due to an earlier commit or abort, and has been forgotten.CannotAbortException- if the transaction is known to have previously reached the COMMITTED state due to an earlier commit.TimeoutExpiredException- if the timeout expires before all participants have been notified.RemoteException- if a communication error occurs.
-
join
public void join(TransactionParticipant part, long crashCount) throws UnknownTransactionException, CannotJoinException, CrashCountException, RemoteException Join the transaction. ThecrashCountmarks the state of the storage used by the participant for transactions. If the participant attempts to join a transaction more than once, the crash counts must be the same. Each system crash or other event that destroys the state of the participant's unprepared transaction storage must cause the crash count to increase by at least one.- Parameters:
part- the participant joining the transactioncrashCount- the participant's current crash count- Throws:
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.CannotJoinException- if the transaction is known to the manager but is no longer active.CrashCountException- if the crash count provided for the participant differs from the crash count in a previous invocation of the same pairing of participant and transactionRemoteException- if there is a communication error
-
join
protected void join(TransactionParticipant part, long crashCount, int partitionId, String clusterName, Object proxy) throws UnknownTransactionException, CannotJoinException, CrashCountException, RemoteException -
join
public void join(TransactionParticipant part, long crashCount, int partitionId, String clusterName) throws UnknownTransactionException, CannotJoinException, CrashCountException, RemoteException -
getState
Returns the current state of the transaction. The returned state can be any of theTransactionConstantsvalues.- Returns:
- an
intrepresenting the state of the transaction - Throws:
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 error- See Also:
-
isNested
public boolean isNested()Return true if the transaction has a parent, false if the transaction is top level.- Returns:
- true if the transaction has a parent, false if the transaction is top level.
-
getMetaData
- Returns:
- the metaData
-
setMetaData
- Parameters:
metaData- the metaData to set
-
isEmbeddedMgrInProxy
public boolean isEmbeddedMgrInProxy()Description copied from interface:ManagedTransactionis the xtn manager an embedded proxy-side one ?- Specified by:
isEmbeddedMgrInProxyin interfaceManagedTransaction- Returns:
- true if the manager is an embedded mngr
-
isEmbeddedMgrProxySideInstance
public boolean isEmbeddedMgrProxySideInstance() -
setEmbeddedMgrProxySideInstance
public void setEmbeddedMgrProxySideInstance(boolean value) -
needParticipantsJoin
returns true if this the txn participants need to join it in contrary to a xtn which the participants are known prior to txn propagation- Specified by:
needParticipantsJoinin interfaceManagedTransaction- Returns:
- true if its a the xtn mgr requires the txn participants to join
- Throws:
RemoteException
-
isXid
public boolean isXid() -
createInstance
Creates an instance of this class for cloning using thecreateCopy()method. -
createCopy
-
joinIfNeededAndEmbedded
@Deprecated public void joinIfNeededAndEmbedded(TransactionParticipant participant) throws UnknownTransactionException, CannotJoinException, CrashCountException, RemoteException Deprecated. -
joinIfNeededAndEmbedded
public boolean joinIfNeededAndEmbedded(TransactionParticipant participant, int partitionId, String clusterName, Object proxy) throws UnknownTransactionException, CannotJoinException, CrashCountException, RemoteException -
writeExternal
- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
readExternal
- Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
writeToSwap
- Specified by:
writeToSwapin interfaceISwapExternalizable- Throws:
IOException
-
readFromSwap
- Specified by:
readFromSwapin interfaceISwapExternalizable- Throws:
IOExceptionClassNotFoundException
-
getTransactionManager
-