com.sun.xml.ws.tx.at
Class ATSubCoordinator

java.lang.Object
  extended by com.sun.xml.ws.tx.coordinator.Coordinator
      extended by com.sun.xml.ws.tx.at.ATCoordinator
          extended by com.sun.xml.ws.tx.at.ATSubCoordinator
All Implemented Interfaces:
javax.transaction.Synchronization, javax.transaction.xa.XAResource

public class ATSubCoordinator
extends ATCoordinator


Nested Class Summary
 class ATSubCoordinator.DurableParticipant
           
 class ATSubCoordinator.VolatileParticipant
           
 
Field Summary
 
Fields inherited from class com.sun.xml.ws.tx.at.ATCoordinator
localCoordinationProtocolServiceURI, localCoordinatorProtocolService, tm, transaction
 
Fields inherited from interface javax.transaction.xa.XAResource
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
 
Constructor Summary
ATSubCoordinator(CoordinationContextInterface context)
           
ATSubCoordinator(CoordinationContextInterface context, CreateCoordinationContextType request)
          Creates a new instance of ATSubCoordinator
 
Method Summary
 void addRegistrant(Registrant registrant, javax.xml.ws.WebServiceContext wsContext)
          Add the specified Registrant to the list of registrants for this coordinated activity.
 void afterCompletion(int i)
           
 void beforeCompletion()
          Subordinate Coordinator does not use this mechanism.
 void beginImportTransaction()
          Import a transactional context from an external transaction manager via WS-AT Coordination Context that was propagated in a SOAP request message.
 void commit(javax.transaction.xa.Xid xid, boolean onePhase)
           
 void endImportTransaction()
          Ends the importing of an external transaction.
 boolean expirationGuard()
          Return false if it is okay to rollback the transaction.
 void forget()
          Release all resources associated with this coordinator
 void forget(java.lang.String partId)
           
 javax.transaction.xa.Xid getCoordinationXid()
           
 Registrant getRegistrant(java.lang.String id)
          Get the registrant with the specified id or null if it does not exist.
 boolean hasOutstandingParticipants()
           
 boolean isSubordinateCoordinator()
           
 int prepare(javax.transaction.xa.Xid xid)
          Synchronous prepare request from subordinate coordinator.
protected  boolean registerWithDurableParent()
          Enlist with parent of ATCoordinator which is JTA transaction manager.
 boolean registerWithRootRegistrationService(Registrant participant)
          Represent all volatile and durable participants for this subordinate coordinator through two special participants of SubordinateCoordinator.
protected  void registerWithVolatileParent()
           
 void removeRegistrant(java.lang.String id)
          Remove the registrant with the specified id
 void rollback(javax.transaction.xa.Xid xid)
           
 void setTransaction(javax.transaction.Transaction txn)
          Set once field.
 
Methods inherited from class com.sun.xml.ws.tx.at.ATCoordinator
aborted, committed, end, expire, forget, forget, getCompletionRegistrant, getCoordIdPartId, getCoordIdPartId, getCoordinatorProtocolServiceForRegistrant, getDurableParticipants, getDurableParticipantsSnapshot, getParentCoordinatorRegistrationEPR, getRegistrants, getTransaction, getTransactionTimeout, getVolatileParticipants, getVolatileParticipantsSnapshot, getWSATCoordinatorService, initiateCommit, initiateDurableCommit, initiateDurablePrepare, initiateDurableRollback, initiateRollback, initiateVolatileCommit, initiateVolatilePrepare, initiateVolatileRollback, isSameRM, prepared, prepared, readonly, recover, replay, resumeTransaction, setTransactionTimeout, start, suspendTransaction, waitForCommitOrRollbackResponse, waitForDurablePrepareResponse, waitForVolatilePrepareResponse
 
Methods inherited from class com.sun.xml.ws.tx.coordinator.Coordinator
getContext, getExpires, getId, getIdValue, getRequest, isExpired, isSubordinate, setExpired, setExpires
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ATSubCoordinator

public ATSubCoordinator(CoordinationContextInterface context,
                        CreateCoordinationContextType request)
Creates a new instance of ATSubCoordinator


ATSubCoordinator

public ATSubCoordinator(CoordinationContextInterface context)
Method Detail

setTransaction

public void setTransaction(javax.transaction.Transaction txn)
Description copied from class: ATCoordinator
Set once field.

Overrides:
setTransaction in class ATCoordinator

registerWithVolatileParent

protected void registerWithVolatileParent()
Overrides:
registerWithVolatileParent in class ATCoordinator

registerWithDurableParent

protected boolean registerWithDurableParent()
Description copied from class: ATCoordinator
Enlist with parent of ATCoordinator which is JTA transaction manager.

Overrides:
registerWithDurableParent in class ATCoordinator

isSubordinateCoordinator

public boolean isSubordinateCoordinator()
Overrides:
isSubordinateCoordinator in class ATCoordinator

getCoordinationXid

public javax.transaction.xa.Xid getCoordinationXid()

beforeCompletion

public void beforeCompletion()
Subordinate Coordinator does not use this mechanism. Ensure it is not called.

Specified by:
beforeCompletion in interface javax.transaction.Synchronization
Overrides:
beforeCompletion in class ATCoordinator

afterCompletion

public void afterCompletion(int i)
Specified by:
afterCompletion in interface javax.transaction.Synchronization
Overrides:
afterCompletion in class ATCoordinator

prepare

public int prepare(javax.transaction.xa.Xid xid)
            throws javax.transaction.xa.XAException
Synchronous prepare request from subordinate coordinator.

Prepare this coordinator and return result of preparation.

Specified by:
prepare in interface javax.transaction.xa.XAResource
Overrides:
prepare in class ATCoordinator
Throws:
javax.transaction.xa.XAException

commit

public void commit(javax.transaction.xa.Xid xid,
                   boolean onePhase)
            throws javax.transaction.xa.XAException
Specified by:
commit in interface javax.transaction.xa.XAResource
Overrides:
commit in class ATCoordinator
Throws:
javax.transaction.xa.XAException

rollback

public void rollback(javax.transaction.xa.Xid xid)
              throws javax.transaction.xa.XAException
Specified by:
rollback in interface javax.transaction.xa.XAResource
Overrides:
rollback in class ATCoordinator
Throws:
javax.transaction.xa.XAException

addRegistrant

public void addRegistrant(Registrant registrant,
                          javax.xml.ws.WebServiceContext wsContext)
Description copied from class: ATCoordinator
Add the specified Registrant to the list of registrants for this coordinated activity.

Overrides:
addRegistrant in class ATCoordinator
Parameters:
registrant - The Registrant
wsContext - the web service context of the incoming message or null if it isn't available

getRegistrant

public Registrant getRegistrant(java.lang.String id)
Get the registrant with the specified id or null if it does not exist.

Overrides:
getRegistrant in class ATCoordinator
Parameters:
id - the registrant id
Returns:
the Registrant object or null if the id does not exist

removeRegistrant

public void removeRegistrant(java.lang.String id)
Description copied from class: Coordinator
Remove the registrant with the specified id

Overrides:
removeRegistrant in class ATCoordinator
Parameters:
id - the registrant id

registerWithRootRegistrationService

public boolean registerWithRootRegistrationService(Registrant participant)
Represent all volatile and durable participants for this subordinate coordinator through two special participants of SubordinateCoordinator. They are the only participants that parent coordinator is aware of.

Overrides:
registerWithRootRegistrationService in class Coordinator
Parameters:
participant - restistrant
Returns:
Return true iff registrant should register with its root registration service

hasOutstandingParticipants

public boolean hasOutstandingParticipants()
Overrides:
hasOutstandingParticipants in class ATCoordinator

forget

public void forget(java.lang.String partId)
Overrides:
forget in class ATCoordinator

expirationGuard

public boolean expirationGuard()
Description copied from class: ATCoordinator
Return false if it is okay to rollback the transaction. Do not allow transaction expiration after Phase 2 begins.

Overrides:
expirationGuard in class ATCoordinator
Returns:
true if the coordinator should NOT expire, false otherwise.

forget

public void forget()
Description copied from class: Coordinator
Release all resources associated with this coordinator

Overrides:
forget in class ATCoordinator

beginImportTransaction

public void beginImportTransaction()
Import a transactional context from an external transaction manager via WS-AT Coordination Context that was propagated in a SOAP request message.

See Also:
endImportTransaction()

endImportTransaction

public void endImportTransaction()
Ends the importing of an external transaction.

Post-condition: terminates beginImportTransaction.

See Also:
beginImportTransaction()