|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.xml.ws.tx.coordinator.Coordinator
com.sun.xml.ws.tx.at.ATCoordinator
public class ATCoordinator
Atomic Transaction Coordinator
Coordinator States: NONE, ACTIVE, Volatile2PCPrepare, Durable2PCPrepare, Committing, Aborting Relationship between ATCoordinator and Java Transaction Manager. ATCoordinator is registered as an XAResource with Java Transaction Manager. This enables Java Transaction Manager to be root transaction manager that for ATCoordinator durable 2pc participants. ATCoordinator registers for Transaction Synchronization if it has volatile participants. This enables volatile participants to be prepared BEFORE durable 2pc participants are prepared. Coordination Context expires specifies the period, measured from the point in time at which the context was first created or received, after which a transaction MAY be terminated solely due to its length of operation. From that point forward, the coordinator MAY elect to unilaterally roll back the transaction, so long as it has not made a commit decision.
Field Summary | |
---|---|
static java.net.URI |
localCoordinationProtocolServiceURI
|
static javax.xml.ws.EndpointReference |
localCoordinatorProtocolService
|
protected static TransactionManagerImpl |
tm
|
protected javax.transaction.Transaction |
transaction
|
Fields inherited from interface javax.transaction.xa.XAResource |
---|
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY |
Constructor Summary | |
---|---|
ATCoordinator(CoordinationContextInterface context)
Construct a new Coordinator object from the specified context. |
|
ATCoordinator(CoordinationContextInterface context,
CreateCoordinationContextType request)
Construct a new Coordinator object from the specified context and soap request. |
Method Summary | |
---|---|
void |
aborted(java.lang.String participantId)
|
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()
Register this with TransactionSynchronizationRegistery. |
void |
commit(javax.transaction.xa.Xid xid,
boolean onePhase)
|
void |
committed(java.lang.String participantId)
|
void |
end(javax.transaction.xa.Xid xid,
int flags)
|
boolean |
expirationGuard()
Return false if it is okay to rollback the transaction. |
void |
expire()
Release resources held by this coordinator. |
void |
forget()
Release all resources associated with this coordinator |
void |
forget(ATParticipant part)
|
void |
forget(java.lang.String partId)
|
void |
forget(javax.transaction.xa.Xid xid)
forget everything about this transaction. |
ATCompletion |
getCompletionRegistrant()
Get the completion registrant. |
protected java.lang.String |
getCoordIdPartId(Registrant registrant)
|
protected java.lang.String |
getCoordIdPartId(java.lang.String participantId)
|
javax.xml.ws.EndpointReference |
getCoordinatorProtocolServiceForRegistrant(Registrant r)
Return the Coordinator Protocol Service EPR for registrant r. |
java.util.Collection<ATParticipant> |
getDurableParticipants()
Return a Collection of durable 2pc participants. |
java.util.Collection<ATParticipant> |
getDurableParticipantsSnapshot()
|
javax.xml.ws.EndpointReference |
getParentCoordinatorRegistrationEPR()
|
Registrant |
getRegistrant(java.lang.String id)
Get the registrant with the specified id or null if it does not exist. |
java.util.List<Registrant> |
getRegistrants()
Get the list of Registrant s for this coordinated activity. |
javax.transaction.Transaction |
getTransaction()
|
int |
getTransactionTimeout()
|
java.util.Collection<ATParticipant> |
getVolatileParticipants()
Return a Collection of volatile 2pc participants. |
java.util.Collection<ATParticipant> |
getVolatileParticipantsSnapshot()
|
static WSATCoordinator |
getWSATCoordinatorService()
|
boolean |
hasOutstandingParticipants()
|
void |
initiateCommit()
|
void |
initiateDurableCommit()
|
void |
initiateDurablePrepare()
TODO: Each PREPARED/READONLY Volatile ATParticipant should check if it is time to start the durable 2PC phase by calling this method. |
void |
initiateDurableRollback()
|
void |
initiateRollback()
|
void |
initiateVolatileCommit()
|
void |
initiateVolatilePrepare()
Send 2PC prepare to all volatile participants Volatile 2PC prepare constraint from 2004 WS-AT, section 3.3.1 the root coordinator begins the prepare phase of all participants registered for the Volatile 2PC protocol. |
void |
initiateVolatileRollback()
|
boolean |
isSameRM(javax.transaction.xa.XAResource xAResource)
|
boolean |
isSubordinateCoordinator()
|
int |
prepare(javax.transaction.xa.Xid xid)
Synchronous prepare request invoked by JTS coordinator as part of its 2PC protocol. |
void |
prepared(java.lang.String participantId)
|
void |
prepared(java.lang.String participantId,
javax.xml.ws.EndpointReference unknownParticipantReplyEPR)
|
void |
readonly(java.lang.String participantId)
|
javax.transaction.xa.Xid[] |
recover(int i)
|
protected boolean |
registerWithDurableParent()
Enlist with parent of ATCoordinator which is JTA transaction manager. |
protected void |
registerWithVolatileParent()
|
void |
removeRegistrant(java.lang.String id)
Remove the registrant with the specified id |
void |
replay(java.lang.String participantId)
Implement inbound event replay for Atomic Transaction 2PC Protocol(Coordinator View). |
void |
resumeTransaction()
|
void |
rollback(javax.transaction.xa.Xid xid)
|
void |
setTransaction(javax.transaction.Transaction txn)
Set once field. |
boolean |
setTransactionTimeout(int i)
|
void |
start(javax.transaction.xa.Xid xid,
int flags)
|
javax.transaction.Transaction |
suspendTransaction()
|
protected void |
waitForCommitOrRollbackResponse(Protocol protocol)
|
protected void |
waitForDurablePrepareResponse()
Wait for all Durable participants to respond to prepare. |
protected void |
waitForVolatilePrepareResponse()
Wait for all volatile participants to respond to prepare. |
Methods inherited from class com.sun.xml.ws.tx.coordinator.Coordinator |
---|
getContext, getExpires, getId, getIdValue, getRequest, isExpired, isSubordinate, registerWithRootRegistrationService, setExpired, setExpires |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.net.URI localCoordinationProtocolServiceURI
protected static final TransactionManagerImpl tm
protected javax.transaction.Transaction transaction
public static final javax.xml.ws.EndpointReference localCoordinatorProtocolService
Constructor Detail |
---|
public ATCoordinator(CoordinationContextInterface context, CreateCoordinationContextType request)
context
- The coordination contextrequest
- The soap requestpublic ATCoordinator(CoordinationContextInterface context)
context
- The coordination contextMethod Detail |
---|
public void setTransaction(javax.transaction.Transaction txn)
public javax.transaction.Transaction getTransaction()
public java.util.List<Registrant> getRegistrants()
Registrant
s for this coordinated activity.
The returned list is unmodifiable (read-only). Add new Registrants
with the addRegistrant(com.sun.xml.ws.tx.coordinator.Registrant, javax.xml.ws.WebServiceContext)
api instead.
getRegistrants
in class Coordinator
protected void registerWithVolatileParent()
protected boolean registerWithDurableParent() throws javax.transaction.RollbackException, javax.transaction.SystemException
javax.transaction.RollbackException
javax.transaction.SystemException
public void addRegistrant(Registrant registrant, javax.xml.ws.WebServiceContext wsContext)
addRegistrant
in class Coordinator
registrant
- The Registrant
wsContext
- the web service context of the incoming message or null if it isn't availablepublic Registrant getRegistrant(java.lang.String id)
getRegistrant
in class Coordinator
id
- the registrant id
public void removeRegistrant(java.lang.String id)
Coordinator
removeRegistrant
in class Coordinator
id
- the registrant idpublic java.util.Collection<ATParticipant> getVolatileParticipants()
public java.util.Collection<ATParticipant> getVolatileParticipantsSnapshot()
public java.util.Collection<ATParticipant> getDurableParticipants()
public java.util.Collection<ATParticipant> getDurableParticipantsSnapshot()
public ATCompletion getCompletionRegistrant()
public void initiateVolatilePrepare()
protected void waitForVolatilePrepareResponse()
public void initiateDurablePrepare()
protected void waitForDurablePrepareResponse()
public void initiateCommit()
public void initiateDurableCommit()
public void initiateVolatileCommit()
public void initiateRollback()
public void initiateDurableRollback()
public void initiateVolatileRollback()
public void beforeCompletion()
beforeCompletion
in interface javax.transaction.Synchronization
public void afterCompletion(int i)
afterCompletion
in interface javax.transaction.Synchronization
protected void waitForCommitOrRollbackResponse(Protocol protocol)
public int prepare(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
Prepare this coordinator and return result of preparation.
prepare
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public void commit(javax.transaction.xa.Xid xid, boolean onePhase) throws javax.transaction.xa.XAException
commit
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public void rollback(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
rollback
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public javax.transaction.xa.Xid[] recover(int i) throws javax.transaction.xa.XAException
recover
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public boolean setTransactionTimeout(int i) throws javax.transaction.xa.XAException
setTransactionTimeout
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public void start(javax.transaction.xa.Xid xid, int flags) throws javax.transaction.xa.XAException
start
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public void end(javax.transaction.xa.Xid xid, int flags) throws javax.transaction.xa.XAException
end
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public void forget(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException
forget
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public int getTransactionTimeout() throws javax.transaction.xa.XAException
getTransactionTimeout
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public boolean isSameRM(javax.transaction.xa.XAResource xAResource) throws javax.transaction.xa.XAException
isSameRM
in interface javax.transaction.xa.XAResource
javax.transaction.xa.XAException
public void prepared(java.lang.String participantId)
public void prepared(java.lang.String participantId, javax.xml.ws.EndpointReference unknownParticipantReplyEPR)
public void committed(java.lang.String participantId)
public void readonly(java.lang.String participantId)
public void aborted(java.lang.String participantId)
public void replay(java.lang.String participantId)
public boolean isSubordinateCoordinator()
public javax.xml.ws.EndpointReference getParentCoordinatorRegistrationEPR()
public static WSATCoordinator getWSATCoordinatorService()
protected java.lang.String getCoordIdPartId(Registrant registrant)
protected java.lang.String getCoordIdPartId(java.lang.String participantId)
public void forget(ATParticipant part)
public void forget(java.lang.String partId)
public javax.xml.ws.EndpointReference getCoordinatorProtocolServiceForRegistrant(Registrant r)
Coordinator
getCoordinatorProtocolServiceForRegistrant
in class Coordinator
r
- registrant
public boolean expirationGuard()
expirationGuard
in class Coordinator
public void expire()
Coordinator
expire
in class Coordinator
public void forget()
Coordinator
forget
in class Coordinator
public void resumeTransaction() throws javax.xml.ws.WebServiceException
javax.xml.ws.WebServiceException
public javax.transaction.Transaction suspendTransaction()
public boolean hasOutstandingParticipants()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |