bitronix.tm.internal
Class XAResourceManager

java.lang.Object
  extended by bitronix.tm.internal.XAResourceManager

public class XAResourceManager
extends Object

Every BitronixTransaction contains an instance of this class that is used to register and keep track of resources enlisted in a transaction.

Author:
lorban

Constructor Summary
XAResourceManager(Uid gtrid)
          Create a resource manager for the specified GTRID.
 
Method Summary
 void clearXAResourceHolderStates()
          Remove this transaction's XAResourceHolderState from all enlisted XAResourceHolders.
 Set<String> collectUniqueNames()
          Get a Set of unique names of all the enlisted XAResourceHolderStates.
 boolean delist(XAResourceHolderState xaResourceHolderState, int flag)
          Delist the specified XAResourceHolderState.
 void enlist(XAResourceHolderState xaResourceHolderState)
          Enlist the specified XAResourceHolderState.
 XAResourceHolderState findXAResourceHolderState(XAResource xaResource)
          Look if an XAResource has already been enlisted.
 List<XAResourceHolderState> getAllResources()
           
 Uid getGtrid()
          Get the GTRID of the transaction the XAResourceManager instance is attached to.
 SortedSet<Integer> getNaturalOrderPositions()
           
 List<XAResourceHolderState> getNaturalOrderResourcesForPosition(Integer position)
           
 SortedSet<Integer> getReverseOrderPositions()
           
 List<XAResourceHolderState> getReverseOrderResourcesForPosition(Integer position)
           
 void resume()
          Resume all enlisted resources in the current transaction context.
 int size()
          Get the enlisted resources count.
 void suspend()
          Suspend all enlisted resources from the current transaction context.
 String toString()
          Return a human-readable representation of this object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

XAResourceManager

public XAResourceManager(Uid gtrid)
Create a resource manager for the specified GTRID.

Parameters:
gtrid - the transaction's GTRID this XAResourceManager will be assigned to.
Method Detail

enlist

public void enlist(XAResourceHolderState xaResourceHolderState)
            throws XAException,
                   BitronixSystemException
Enlist the specified XAResourceHolderState. A XID is generated and the resource is started with XAResource.TMNOFLAGS or XAResource.TMJOIN if it could be joined with another previously enlisted one.
There are 3 different cases that can happen when a XAResourceHolderState is enlisted:

Parameters:
xaResourceHolderState - the XAResourceHolderState to be enlisted.
Throws:
XAException - if a resource error occured.
BitronixSystemException - if an internal error occured.

delist

public boolean delist(XAResourceHolderState xaResourceHolderState,
                      int flag)
               throws XAException,
                      BitronixSystemException
Delist the specified XAResourceHolderState. A reference to the resource is kept anyway.

Parameters:
xaResourceHolderState - the XAResourceHolderState to be delisted.
flag - the delistment flag.
Returns:
true if the resource could be delisted, false otherwise.
Throws:
XAException - if the resource threw an exception during delistment.
BitronixSystemException - if an internal error occured.

suspend

public void suspend()
             throws XAException
Suspend all enlisted resources from the current transaction context.

Throws:
XAException - if the resource threw an exception during suspend.

resume

public void resume()
            throws XAException
Resume all enlisted resources in the current transaction context.

Throws:
XAException - if the resource threw an exception during resume.

findXAResourceHolderState

public XAResourceHolderState findXAResourceHolderState(XAResource xaResource)
                                                throws BitronixSystemException
Look if an XAResource has already been enlisted.

Parameters:
xaResource - the XAResource to look for.
Returns:
the XAResourceHolderState of the enlisted resource or null if the XAResource has not been enlisted in this XAResourceManager.
Throws:
BitronixSystemException - if an internal error happens.

clearXAResourceHolderStates

public void clearXAResourceHolderStates()
Remove this transaction's XAResourceHolderState from all enlisted XAResourceHolders.


collectUniqueNames

public Set<String> collectUniqueNames()
Get a Set of unique names of all the enlisted XAResourceHolderStates.

Returns:
a Set of unique names of all the enlisted XAResourceHolderStates.

getNaturalOrderPositions

public SortedSet<Integer> getNaturalOrderPositions()

getReverseOrderPositions

public SortedSet<Integer> getReverseOrderPositions()

getNaturalOrderResourcesForPosition

public List<XAResourceHolderState> getNaturalOrderResourcesForPosition(Integer position)

getReverseOrderResourcesForPosition

public List<XAResourceHolderState> getReverseOrderResourcesForPosition(Integer position)

getAllResources

public List<XAResourceHolderState> getAllResources()

size

public int size()
Get the enlisted resources count.

Returns:
the enlisted resources count.

getGtrid

public Uid getGtrid()
Get the GTRID of the transaction the XAResourceManager instance is attached to.

Returns:
the GTRID of the transaction the XAResourceManager instance is attached to.

toString

public String toString()
Return a human-readable representation of this object.

Overrides:
toString in class Object
Returns:
a human-readable representation of this object.


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