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.datasource.xa
Class XAResourceTransaction

    java.lang.Object
      com.atomikos.datasource.xa.XAResourceTransaction

All Implemented Interfaces:
  ResourceTransaction, Participant, Externalizable, Serializable

    public class XAResourceTransaction

extends Object
implements ResourceTransaction, Externalizable, Participant

An implementation of ResourceTransaction for XA transactions.

See Also:
  Serialized Form

Field Summary

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

Constructor Summary
`XAResourceTransaction()`

Method Summary
`void` | `addCompensationContext(Dictionary context)`
`void` | `addHeuristicMessage(HeuristicMessage mesg)` Adds heuristic resolution information.
`HeuristicMessage[]` | `commit(boolean onePhase)` Commits the participant's work.
`boolean` | `equals(Object o)` Absolutely necessary for coordinator to work correctly
`protected void` | `forceRefreshXAConnection()`
`void` | `forget()` Indicates that a heuristic participant can forget about its work.
`Dictionary` | `getCompensationContext()`
`HeuristicMessage[]` | `getHeuristicMessages()`
`Object` | `getState()`
`String` | `getTid()`
`String` | `getURI()`
`Xid` | `getXid()` Get the Xid.
`int` | `hashCode()` Absolutely necessary for coordinator to work correctly
`protected static String` | `interpretErrorCode(String resourceName, String opCode, Xid xid, int errorCode)`
`boolean` | `isActive()` Test if the restx is active (in use).
`boolean` | `isXaSuspended()` Test if the resource has been ended with TMSUSPEND.
`int` | `prepare()` Prepares the participant.
`void` | `readExternal(ObjectInput in)`
`boolean` | `recover()` Called by the transaction manager (TM) at recovery time, and this should reconstruct the internal state.
`void` | `resume()` Resumes a previously suspended tx.
`HeuristicMessage[]` | `rollback()` Rollback of 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.
`protected void` | `setRecoveredXAResource(XAResource xaresource)`
`void` | `setXAResource(XAResource xaresource)` Set the XAResource attribute.
`void` | `suspend()` Suspends the work, so that underlying resources can be used for a next (sibling) invocation.
`protected void` | `testOrRefreshXAResourceFor2PC()`
`String` | `toString()`
`void` | `writeExternal(ObjectOutput out)`
`void` | `xaResume()` Perform an xa resume
`void` | `xaSuspend()` Perform an XA suspend.

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

Constructor Detail

### XAResourceTransaction

    public XAResourceTransaction()

Method Detail

### interpretErrorCode

    protected static String interpretErrorCode(String resourceName,
                                               String opCode,
                                               Xid xid,
                                               int errorCode)

### testOrRefreshXAResourceFor2PC

    protected void testOrRefreshXAResourceFor2PC()
                                          throws XAException

  Throws:
    `XAException`

### forceRefreshXAConnection

    protected void forceRefreshXAConnection()
                                     throws XAException

  Throws:
    `XAException`

### writeExternal

    public void writeExternal(ObjectOutput out)
                       throws IOException

  Specified by:
    `writeExternal` in interface `Externalizable`
  Throws:
    `IOException`

### readExternal

    public void readExternal(ObjectInput in)
                      throws IOException,
                             ClassNotFoundException

  Specified by:
    `readExternal` in interface `Externalizable`
  Throws:
    `IOException`
    `ClassNotFoundException`

### getTid

    public String getTid()

  Specified by:
    `getTid` in interface `ResourceTransaction`
  Returns:
    String A unique identifier, as determined by resource.
  See Also:
    `ResourceTransaction.`

### addCompensationContext

    public void addCompensationContext(Dictionary context)
                                throws IllegalStateException

  Throws:
    `IllegalStateException`
  See Also:
    `ResourceTransaction.`

### addHeuristicMessage

    public void addHeuristicMessage(HeuristicMessage mesg)
                             throws IllegalStateException

  Description copied from interface: `ResourceTransaction`
  Adds heuristic resolution information.

  Specified by:
    `addHeuristicMessage` in interface `ResourceTransaction`
  Parameters:
    `mesg` - The heuristic message.
  Throws:
    `IllegalStateException` - If no longer active.
  See Also:
    `ResourceTransaction.`

### getHeuristicMessages

    public HeuristicMessage[] getHeuristicMessages()

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

### getCompensationContext

    public Dictionary getCompensationContext()

  See Also:
    `ResourceTransaction.`

### suspend

    public void suspend()
                 throws ResourceException

  Description copied from interface: `ResourceTransaction`
  Suspends the work, so that underlying resources can be used for a next (sibling) invocation.

  Specified by:
    `suspend` in interface `ResourceTransaction`
  Throws:
    `ResourceException`
  See Also:
    `ResourceTransaction.`

### resume

    public void resume()
                throws ResourceException

  Description copied from interface: `ResourceTransaction`
  Resumes a previously suspended tx.

  Specified by:
    `resume` in interface `ResourceTransaction`
  Throws:
    `ResourceException`
  See Also:
    `ResourceTransaction.`

### 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.
  Throws:
    `SysException`
  See Also:
    `Participant`

### getState

    public Object getState()

### recover

    public boolean recover()
                    throws SysException

  Description copied from interface: `Participant`
  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 if the instance could not be recovered. It is up to the transaction manager to determine the severity of this case.
  Throws:
    `SysException`
  See Also:
    `Participant`

### 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.
  See Also:
    `Participant`

### forget

    public void forget()

  Description copied from interface: `Participant`
  Indicates 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`
  See Also:
    `Participant`

### prepare

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

  Description copied from interface: `Participant`
  Prepares 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 READ_ONLY if 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`
  See Also:
    `Participant`

### rollback

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

  Description copied from interface: `Participant`
  Rollback of 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 the work was rolled back.
    `HeurHazardException` - If the participant's final state is unsure.
    `SysException`
  See Also:
    `Participant.`

### commit

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

  Description copied from interface: `Participant`
  Commits 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 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`
    `HeurRollbackException`
    `HeurMixedException`
  See Also:
    `Participant`

### equals

    public boolean equals(Object o)

  Absolutely necessary for coordinator to work correctly

  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Absolutely necessary for coordinator to work correctly

  Overrides:
    `hashCode` in class `Object`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### getXid

    public Xid getXid()

  Get the Xid. Needed by jta mappings.

  Returns:
    Xid The Xid of this restx.

### setRecoveredXAResource

    protected void setRecoveredXAResource(XAResource xaresource)

### setXAResource

    public void setXAResource(XAResource xaresource)

  Set the XAResource attribute.

  Parameters:
    `xaresource` - The new XAResource to use. This new XAResource represents the new connection to the XA database. Necessary because on reuse, the old xaresource may be in use by another thread, for another transaction.

### xaSuspend

    public void xaSuspend()
                   throws XAException

  Perform an XA suspend.

  Throws:
    `XAException`

### xaResume

    public void xaResume()
                  throws XAException

  Perform an xa resume

  Throws:
    `XAException`

### isXaSuspended

    public boolean isXaSuspended()

  Test if the resource has been ended with TMSUSPEND.

  Returns:
    boolean True if so.

### isActive

    public boolean isActive()

  Test if the restx is active (in use).

  Returns:
    boolean True if so.

### getURI

    public String getURI()

  Specified by:
    `getURI` in interface `Participant`
  Returns:
    String The unique URI for this remote participant, or null for local instances.
  See Also:
    `Participant.getURI()`

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.