com.sun.jini.mahalo
Class GroupTransientMahalo
java.lang.Object
com.sun.jini.mahalo.GroupTransientMahalo
- All Implemented Interfaces:
- java.io.Serializable, java.rmi.Remote, jgroup.core.ExternalGMIListener, jgroup.core.InternalGMIListener, jgroup.core.MembershipListener, InternalGroupTransactionManager, net.jini.core.transaction.server.TransactionConstants, net.jini.core.transaction.server.TransactionManager
public class GroupTransientMahalo
- extends java.lang.Object
- implements net.jini.core.transaction.server.TransactionManager, jgroup.core.MembershipListener, jgroup.core.ExternalGMIListener, InternalGroupTransactionManager
Transient, non-persistent Transaction Manager with replication support.
Uses GMI Leadercast semantics to create transaction and transfer state
to the replicas. GMI with total ordering is used in the transaction
join and voting process.
To start the Transaction Manager, it is preferred to use the
com.sun.jini.start.ServiceStarter framework, which is included
in the Jini distribution.
- Author:
- Rohnny Moland
- See Also:
- Serialized Form
| Nested classes/interfaces inherited from interface net.jini.core.transaction.server.TransactionManager |
net.jini.core.transaction.server.TransactionManager.Created |
| Nested classes/interfaces inherited from interface jgroup.core.MembershipListener |
jgroup.core.MembershipListener.AllowDuplicateViews |
| Fields inherited from interface net.jini.core.transaction.server.TransactionConstants |
ABORTED, ACTIVE, COMMITTED, NOTCHANGED, PREPARED, VOTING |
|
Constructor Summary |
GroupTransientMahalo(java.lang.String[] configArgs,
com.sun.jini.start.LifeCycle lifeCycle)
Construct a new instance of TxnManagerImpl and
initialize Jgroup services and fields. |
|
Method Summary |
void |
abort(long id)
|
void |
abort(long id,
long waitFor)
|
void |
commit(long id)
|
void |
commit(long id,
long waitFor)
|
net.jini.core.transaction.server.TransactionManager.Created |
create(long lease)
|
java.lang.Object |
getState()
|
int |
getState(long id)
|
int |
hashCode()
|
void |
hasLeft()
|
void |
internalCommit(long id)
|
void |
internalCreate(java.lang.Object txnMgr,
long id)
Transfers the non-deterministic state of the txn create
to other members of the group. |
void |
join(long id,
net.jini.core.transaction.server.TransactionParticipant part,
long crashCount)
|
void |
prepareChange()
|
void |
putState(java.lang.Object state)
|
java.lang.String |
toString()
|
void |
viewChange(jgroup.core.View view)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait |
GroupTransientMahalo
public GroupTransientMahalo(java.lang.String[] configArgs,
com.sun.jini.start.LifeCycle lifeCycle)
throws java.lang.Exception
- Construct a new instance of
TxnManagerImpl and
initialize Jgroup services and fields.
- Parameters:
configArgs - String array whose elements are
the arguments to use when creating the server.lifeCycle - instance of LifeCycle that, if
non-null, will cause this object's
unregister method to be invoked during
shutdown to notify the service starter framework that
the reference to this service's implementation can be
'released' for garbage collection. A value of
null for this argument is allowed.
- Throws:
java.lang.Exception - If there was a problem initializing the service.
viewChange
public void viewChange(jgroup.core.View view)
- Specified by:
viewChange in interface jgroup.core.MembershipListener
prepareChange
public void prepareChange()
- Specified by:
prepareChange in interface jgroup.core.MembershipListener
hasLeft
public void hasLeft()
- Specified by:
hasLeft in interface jgroup.core.MembershipListener
create
@Anycast
public net.jini.core.transaction.server.TransactionManager.Created create(long lease)
throws net.jini.core.lease.LeaseDeniedException,
java.rmi.RemoteException
- Specified by:
create in interface net.jini.core.transaction.server.TransactionManager
- Throws:
net.jini.core.lease.LeaseDeniedException
java.rmi.RemoteException
join
@Atomic
public void join(long id,
net.jini.core.transaction.server.TransactionParticipant part,
long crashCount)
throws net.jini.core.transaction.UnknownTransactionException,
net.jini.core.transaction.CannotJoinException,
net.jini.core.transaction.server.CrashCountException,
java.rmi.RemoteException
- Specified by:
join in interface net.jini.core.transaction.server.TransactionManager
- Throws:
net.jini.core.transaction.UnknownTransactionException
net.jini.core.transaction.CannotJoinException
net.jini.core.transaction.server.CrashCountException
java.rmi.RemoteException
getState
@Anycast
public int getState(long id)
throws net.jini.core.transaction.UnknownTransactionException
- Specified by:
getState in interface net.jini.core.transaction.server.TransactionManager
- Throws:
net.jini.core.transaction.UnknownTransactionException
commit
@Atomic
public void commit(long id)
throws net.jini.core.transaction.UnknownTransactionException,
net.jini.core.transaction.CannotCommitException,
java.rmi.RemoteException
- Specified by:
commit in interface net.jini.core.transaction.server.TransactionManager
- Throws:
net.jini.core.transaction.UnknownTransactionException
net.jini.core.transaction.CannotCommitException
java.rmi.RemoteException
commit
@Atomic
public void commit(long id,
long waitFor)
throws net.jini.core.transaction.UnknownTransactionException,
net.jini.core.transaction.CannotCommitException,
net.jini.core.transaction.TimeoutExpiredException,
java.rmi.RemoteException
- Specified by:
commit in interface net.jini.core.transaction.server.TransactionManager
- Throws:
net.jini.core.transaction.UnknownTransactionException
net.jini.core.transaction.CannotCommitException
net.jini.core.transaction.TimeoutExpiredException
java.rmi.RemoteException
abort
@Atomic
public void abort(long id)
throws net.jini.core.transaction.UnknownTransactionException,
net.jini.core.transaction.CannotAbortException
- Specified by:
abort in interface net.jini.core.transaction.server.TransactionManager
- Throws:
net.jini.core.transaction.UnknownTransactionException
net.jini.core.transaction.CannotAbortException
abort
@Atomic
public void abort(long id,
long waitFor)
throws net.jini.core.transaction.UnknownTransactionException,
net.jini.core.transaction.CannotAbortException,
net.jini.core.transaction.TimeoutExpiredException
- Specified by:
abort in interface net.jini.core.transaction.server.TransactionManager
- Throws:
net.jini.core.transaction.UnknownTransactionException
net.jini.core.transaction.CannotAbortException
net.jini.core.transaction.TimeoutExpiredException
getState
public java.lang.Object getState()
putState
public void putState(java.lang.Object state)
internalCreate
public void internalCreate(java.lang.Object txnMgr,
long id)
throws java.rmi.RemoteException
- Description copied from interface:
InternalGroupTransactionManager
- Transfers the non-deterministic state of the txn create
to other members of the group.
- Specified by:
internalCreate in interface InternalGroupTransactionManager
- Parameters:
txnMgr - The TxnManagerTransaction objectid - Transaction id of current transaction
- Throws:
java.rmi.RemoteException
internalCommit
public void internalCommit(long id)
throws net.jini.core.transaction.UnknownTransactionException,
net.jini.core.transaction.CannotCommitException,
java.rmi.RemoteException
- Specified by:
internalCommit in interface InternalGroupTransactionManager
- Throws:
net.jini.core.transaction.UnknownTransactionException
net.jini.core.transaction.CannotCommitException
java.rmi.RemoteException
toString
public java.lang.String toString()
- Overrides:
toString in class java.lang.Object
hashCode
public int hashCode()
- Overrides:
hashCode in class java.lang.Object
Copyright © 1998-2006 The Jgroup/ARM development team. All Rights Reserved.