AbstractPhaseEngine (Bitronix Transaction Manager :: Core 2.1.4 API)
Date: 2013-09-15

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

## bitronix.tm.twopc
Class AbstractPhaseEngine

    java.lang.Object
      bitronix.tm.twopc.AbstractPhaseEngine

Direct Known Subclasses:
  Committer, Preparer, Rollbacker

    public abstract class AbstractPhaseEngine

extends Object

Abstract phase execution engine.

Author:
  lorban

Constructor Summary
`protected` | `AbstractPhaseEngine(Executor executor)`

Method Summary
`protected static List<XAResourceHolderState>` | `collectNotInterestedResources(List<XAResourceHolderState> allResources, List<XAResourceHolderState> interestedResources)`
`protected static Set<String>` | `collectResourcesUniqueNames(List<XAResourceHolderState> resources)`
`protected abstract Job` | `createJob(XAResourceHolderState xaResourceHolderState)` Create a `Job` that is going to execute the phase command on the given resource.
`protected void` | `executePhase(XAResourceManager resourceManager, boolean reverse)` Execute the phase.
`protected abstract boolean` | `isParticipating(XAResourceHolderState xaResourceHolderState)` Determine if a resource is participating in the phase or not.
`protected void` | `logFailedResources(PhaseException ex)` Log exceptions that happened during a phase failure.

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

Constructor Detail

### AbstractPhaseEngine

    protected AbstractPhaseEngine(Executor executor)

Method Detail

### executePhase

    protected void executePhase(XAResourceManager resourceManager,
                                boolean reverse)
                         throws PhaseException

  Execute the phase. Resources receive the phase command in position order (reversed or not). If there is more than once resource in a position, command is sent in enlistment order (again reversed or not). If `Configuration.isAsynchronous2Pc()` is true, all commands in a given position are sent in parallel by using the detected `Executor` implementation.

  Parameters:
    `resourceManager` - the `XAResourceManager` containing the enlisted resources to execute the phase on.
    `reverse` - true if jobs should be executed in reverse position / enlistment order, false for natural position / enlistment order.
  Throws:
    `PhaseException` - if one or more resource threw an exception during phase execution.
  See Also:
    `SyncExecutor`, `AsyncExecutor`

### isParticipating

    protected abstract boolean isParticipating(XAResourceHolderState xaResourceHolderState)

  Determine if a resource is participating in the phase or not. A participating resource gets a job created to execute the phase's command on it.

  Parameters:
    `xaResourceHolderState` - the resource to check for its participation.
  Returns:
    true if the resource must participate in the phase.

### createJob

    protected abstract Job createJob(XAResourceHolderState xaResourceHolderState)

  Create a `Job` that is going to execute the phase command on the given resource.

  Parameters:
    `xaResourceHolderState` - the resource that is going to receive a command.
  Returns:
    the `Job` that is going to execute the command.

### logFailedResources

    protected void logFailedResources(PhaseException ex)

  Log exceptions that happened during a phase failure.

  Parameters:
    `ex` - the phase exception.

### collectResourcesUniqueNames

    protected static Set<String> collectResourcesUniqueNames(List<XAResourceHolderState> resources)

### collectNotInterestedResources

    protected static List<XAResourceHolderState> collectNotInterestedResources(List<XAResourceHolderState> allResources,
                                                                               List<XAResourceHolderState> interestedResources)

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 © 2006-2013 Bitronix Software. All Rights Reserved.