Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.jini.core.transaction.server
Class ServerTransaction

    java.lang.Object
      net.jini.core.transaction.server.ServerTransaction

All Implemented Interfaces:
  Serializable, Transaction

Direct Known Subclasses:
  NestableServerTransaction

public class ServerTransaction
extends Object
implements Transaction, Serializable

Class implementing the `Transaction` interface, for use with transaction participants that implement the default transaction semantics.

Since:
  1.0
See Also:
  `Transaction`, `NestableServerTransaction`, `TransactionManager`, `TransactionFactory`, Serialized Form

Nested Class Summary

Nested classes inherited from class net.jini.core.transaction.Transaction
`Transaction.Created`

Field Summary
`long` | `id` The transaction id.
`TransactionManager` | `mgr` The transaction manager.

Constructor Summary
`ServerTransaction(TransactionManager mgr, long id)` Simple constructor.

Method Summary
`void` | `abort()` Abort the transaction.
`void` | `abort(long waitFor)` Abort the transaction, waiting for participants to be notified of the decision.
`void` | `commit()` Commit the transaction.
`void` | `commit(long waitFor)` Commit the transaction, waiting for participants to be notified of the decision.
`boolean` | `equals(Object other)` Two instances are equal if they have the same transaction manager and the same transaction id.
`int` | `getState()` Returns the current state of the transaction.
`int` | `hashCode()`
`boolean` | `isNested()` Return true if the transaction has a parent, false if the transaction is top level.
`void` | `join(TransactionParticipant part, long crashCount)` Join the transaction.
`String` | `toString()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### mgr

    public final TransactionManager mgr

  The transaction manager.

### id

    public final long id

  The transaction id.

Constructor Detail

### ServerTransaction

    public ServerTransaction(TransactionManager mgr,
                             long id)

  Simple constructor. Clients should not call this directly, but should instead use `TransactionFactory`.

Parameters:
  `mgr` - the manager for this transaction
  `id` - the transaction id

Method Detail

### hashCode

    public int hashCode()

### equals

    public boolean equals(Object other)

  Two instances are equal if they have the same transaction manager and the same transaction id.

### commit

    public void commit()
                throws UnknownTransactionException,
                       CannotCommitException,
                       RemoteException

  Description copied from interface: `Transaction`
  Commit the transaction. Commit asks the transaction manager to execute the voting process with the participants. Returns if the transaction successfully reaches either the `NOTCHANGED` or the `COMMITTED` state, 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), `CannotCommitException` is thrown without waiting for the transaction manager to notify all participants of the decision.

  Specified by:
    `commit` in interface `Transaction`
  Throws:
    `RemoteException` - if a communication error occurs.
    `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.

### commit

    public void commit(long waitFor)
                throws UnknownTransactionException,
                       CannotCommitException,
                       TimeoutExpiredException,
                       RemoteException

  Description copied from interface: `Transaction`
  Commit 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 the `NOTCHANGED` or the `COMMITTED` state, 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), `CannotCommitException` is 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, then `TimeoutExpiredException` is thrown. If the specified timeout expires before the transaction manager reaches a decision, `TimeoutExpiredException` is not thrown until the manager reaches a decision.

  Specified by:
    `commit` in interface `Transaction`
  Parameters:
    `waitFor` - timeout to wait, from the start of the call until all participants have been notified of the transaction manager's decision
  Throws:
    `TimeoutExpiredException` - if the timeout expires before all participants have been notified.
    `CannotCommitException` - if the transaction reaches the ABORTED state, or is known to have previously reached that state due to an earlier commit or abort.
    `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.
    `RemoteException` - if a communication error occurs.

### abort

    public void abort()
               throws UnknownTransactionException,
                      CannotAbortException,
                      RemoteException

  Description copied from interface: `Transaction`
  Abort 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:
    `abort` in interface `Transaction`
  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.
    `RemoteException` - if a communication error occurs.
    `CannotAbortException` - if the transaction is known to have previously reached the COMMITTED state due to an earlier commit.

### abort

    public void abort(long waitFor)
               throws UnknownTransactionException,
                      CannotAbortException,
                      TimeoutExpiredException,
                      RemoteException

  Description copied from interface: `Transaction`
  Abort 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, then `TimeoutExpiredException` is thrown.

  Specified by:
    `abort` in interface `Transaction`
  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.
    `RemoteException` - if a communication error occurs.
    `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.

### join

    public void join(TransactionParticipant part,
                     long crashCount)
              throws UnknownTransactionException,
                     CannotJoinException,
                     CrashCountException,
                     RemoteException

  Join the transaction. The `crashCount` marks 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 transaction
    `crashCount` - 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 transaction
    `RemoteException` - if there is a communication error

### getState

    public int getState()
                 throws UnknownTransactionException,
                        RemoteException

  Returns the current state of the transaction. The returned state can be any of the `TransactionConstants` values.

  Returns:
    an `int` representing 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:
    `TransactionConstants`

### 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.

### toString

    public String toString()

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004 Sun Microsystems, Inc. All rights reserved