bitronix.tm.twopc
Class Rollbacker

java.lang.Object
  extended by bitronix.tm.twopc.AbstractPhaseEngine
      extended by bitronix.tm.twopc.Rollbacker

public class Rollbacker
extends AbstractPhaseEngine

Phase 1 & 2 Rollback logic engine.

Author:
lorban

Constructor Summary
Rollbacker(Executor executor)
           
 
Method Summary
protected  Job createJob(XAResourceHolderState resourceHolder)
          Create a Job that is going to execute the phase command on the given resource.
protected  boolean isParticipating(XAResourceHolderState xaResourceHolderState)
          Determine if a resource is participating in the phase or not.
 void rollback(BitronixTransaction transaction, List interestedResources)
          Rollback the current XA transaction.
 
Methods inherited from class bitronix.tm.twopc.AbstractPhaseEngine
collectNotInterestedResources, collectResourcesUniqueNames, executePhase, logFailedResources
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Rollbacker

public Rollbacker(Executor executor)
Method Detail

rollback

public void rollback(BitronixTransaction transaction,
                     List interestedResources)
              throws HeuristicMixedException,
                     HeuristicCommitException,
                     BitronixSystemException
Rollback the current XA transaction. TransactionTimeoutException won't be thrown while changing status but rather by some extra logic that will manually throw the exception after doing as much cleanup as possible.

Parameters:
transaction - the transaction to rollback.
interestedResources - resources that should be rolled back.
Throws:
HeuristicCommitException - when all resources committed instead.
HeuristicMixedException - when some resources committed and some rolled back.
BitronixSystemException - when an internal error occured.

createJob

protected Job createJob(XAResourceHolderState resourceHolder)
Description copied from class: AbstractPhaseEngine
Create a Job that is going to execute the phase command on the given resource.

Specified by:
createJob in class AbstractPhaseEngine
Parameters:
resourceHolder - the resource that is going to receive a command.
Returns:
the Job that is going to execute the command.

isParticipating

protected boolean isParticipating(XAResourceHolderState xaResourceHolderState)
Description copied from class: AbstractPhaseEngine
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.

Specified by:
isParticipating in class AbstractPhaseEngine
Parameters:
xaResourceHolderState - the resource to check for its participation.
Returns:
true if the resource must participate in the phase.


Copyright © 2006-2011 Bitronix Software. All Rights Reserved.