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

## com.atomikos.icatch.imp
Class ReadOnlyParticipant

    java.lang.Object
      com.atomikos.icatch.imp.ReadOnlyParticipant

All Implemented Interfaces:
  Participant, Serializable

    public class ReadOnlyParticipant

extends Object
implements Participant

See Also:
  Serialized Form

Field Summary

Fields inherited from interface com.atomikos.icatch.Participant
`READ_ONLY`

Constructor Summary
`ReadOnlyParticipant(CoordinatorImp coordinator)`

Method Summary
`HeuristicMessage[]` | `commit(boolean onePhase)` Commit the participant's work.
`boolean` | `equals(Object o)`
`void` | `forget()` Indicate that a heuristic participant can forget about its work.
`HeuristicMessage[]` | `getHeuristicMessages()` Get any heuristic messages so far.
`String` | `getURI()` Gets a unique URI for this participant.
`int` | `hashCode()`
`int` | `prepare()` Prepare the participant.
`boolean` | `recover()` Recover this instance.
`HeuristicMessage[]` | `rollback()` Rollback the participant's work.
`void` | `setCascadeList(Dictionary allParticipants)` For cascading 2PC, this method sets the information needed to cascade.
`void` | `setGlobalSiblingCount(int count)` Set by the root coordinator: the total no of siblings detected.

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

Constructor Detail

### ReadOnlyParticipant

    public ReadOnlyParticipant(CoordinatorImp coordinator)

Method Detail

### recover

    public boolean recover()
                    throws SysException

  Description copied from interface: `Participant`
  Recover this instance. Called by the transaction manager (TM) at recovery time, and this should reconstruct the internal state.

  Specified by:
    `recover` in interface `Participant`
  Returns:
    boolean False iff the instance could not be recovered. It is up to the TM to determine the severity of this case.
  Throws:
    `SysException` - On failure.

### getURI

    public String getURI()

  Description copied from interface: `Participant`
  Gets a unique URI for this participant. Local participants should merely return null.

  Specified by:
    `getURI` in interface `Participant`
  Returns:
    String The URI for this participant, or null if not applicable.

### setCascadeList

    public void setCascadeList(Dictionary allParticipants)
                        throws SysException

  Description copied from interface: `Participant`
  For cascading 2PC, this method sets the information needed to cascade. This method is relevant only for transaction monitors; leave empty otherwise!

  Specified by:
    `setCascadeList` in interface `Participant`
  Parameters:
    `allParticipants` - The information needed by the transaction monitor for
  Throws:
    `SysException` - For unexpected failures.

### setGlobalSiblingCount

    public void setGlobalSiblingCount(int count)

  Description copied from interface: `Participant`
  Set by the root coordinator: the total no of siblings detected. This method is relevant only for transaction monitors; leave empty otherwise!

  Specified by:
    `setGlobalSiblingCount` in interface `Participant`
  Parameters:
    `count` - The global count.

### prepare

    public int prepare()
                throws RollbackException,
                       HeurHazardException,
                       HeurMixedException,
                       SysException

  Description copied from interface: `Participant`
  Prepare the participant. Any locks for this participant's work should be recoverable (either saved to an external file OR be part of the instance's non-transient state so that they can be flushed into the transaction manager's log).

  Specified by:
    `prepare` in interface `Participant`
  Returns:
    int If this is READ_ONLY, then no second round is needed. Participants that return this value on prepare will not be called by commit or rollback afterwards.
  Throws:
    `RollbackException` - For a NO vote. This indicates that the participant has already rolled back (or marked for rollback) the work on behalf of this participant.
    `HeurHazardException` - On possible conflicts. This happens for remote participants instances, in case of communication failures.
    `HeurMixedException` - If some subordinate participants voted YES, timed out and committed heuristically whereas afterwards some NO votes where received.
    `SysException` - Unexpected errors.

### commit

    public HeuristicMessage[] commit(boolean onePhase)
                              throws HeurRollbackException,
                                     HeurHazardException,
                                     HeurMixedException,
                                     RollbackException,
                                     SysException

  Description copied from interface: `Participant`
  Commit the participant's work. NOTE: custom participant implementations should preferably be made for the server's local VM (e.g., it is better not to do this over RMI). Also, they should rely on the icatch transaction manager for heuristic timeout (and NOT decide to terminate heuristically themselves). In that case, implementations never need to throw any of the heuristic exceptions of this method.

  Specified by:
    `commit` in interface `Participant`
  Parameters:
    `onePhase` - If true, one-phase commit is being started. If the participant has received a prepare call earlier, then it should throw a SysException here.
  Returns:
    HeuristicMessage[] An array of messages, null if none.
  Throws:
    `HeurHazardException` - On possible conflicts.
    `RollbackException` - In case of one-phase commit, and the transaction has been rolled back at the time commit is called.
    `SysException` - Unexpected failure.
    `HeurRollbackException`
    `HeurMixedException`

### rollback

    public HeuristicMessage[] rollback()
                                throws HeurCommitException,
                                       HeurMixedException,
                                       HeurHazardException,
                                       SysException

  Description copied from interface: `Participant`
  Rollback the participant's work. NOTE: custom participant implementations should preferably be made for the server's local VM (e.g., it is better not to do this over RMI). Also, they should rely on the icatch transaction manager for heuristic timeout (and NOT decide to terminate heuristically themselves). In that case, implementations never need to throw any of the heuristic exceptions of this method.

  Specified by:
    `rollback` in interface `Participant`
  Returns:
    HeuristicMessage[] An array of messages, null if none.
  Throws:
    `HeurCommitException` - If the participant committed.
    `HeurMixedException` - If part of it was rolled back.
    `HeurHazardException` - If the participant's final state is unsure.
    `SysException` - Unexpected failure.

### forget

    public void forget()

  Description copied from interface: `Participant`
  Indicate that a heuristic participant can forget about its work. If implementations rely on the transaction manager to decide when to do heuristics (rather then deciding in the participant implementation), then leave this method empty.

  Specified by:
    `forget` in interface `Participant`

### getHeuristicMessages

    public HeuristicMessage[] getHeuristicMessages()

  Description copied from interface: `Participant`
  Get any heuristic messages so far. The transaction manager used this method to get information after preparing this participant.

  Specified by:
    `getHeuristicMessages` in interface `Participant`
  Returns:
    HeuristicMessage[] An array of heuristic messages, or null if none.

### equals

    public boolean equals(Object o)

  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `Object`

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 © 2012. All Rights Reserved.