public class JBossContextXATerminator extends Object implements org.jboss.tm.JBossXATerminator
| Constructor and Description |
|---|
JBossContextXATerminator(org.wildfly.transaction.client.LocalTransactionContext transactionContext,
org.jboss.tm.JBossXATerminator jbossXATerminator) |
| Modifier and Type | Method and Description |
|---|---|
void |
cancelWork(javax.resource.spi.work.Work work,
Xid xid)
Calling
JBossXATerminator to cancel the work for us. |
void |
commit(Xid xid,
boolean onePhase) |
void |
endWork(javax.resource.spi.work.Work work,
Xid xid)
Suspending transaction and canceling the work.
|
void |
forget(Xid xid) |
int |
prepare(Xid xid) |
Xid[] |
recover(int flag) |
void |
registerWork(javax.resource.spi.work.Work work,
Xid xid,
long timeout)
Interception of register work call to get transaction being imported to wildfly transacton client.
|
void |
rollback(Xid xid) |
void |
startWork(javax.resource.spi.work.Work work,
Xid xid)
Start work gets imported transaction and assign it to current thread.
|
public JBossContextXATerminator(org.wildfly.transaction.client.LocalTransactionContext transactionContext,
org.jboss.tm.JBossXATerminator jbossXATerminator)
public void commit(Xid xid, boolean onePhase) throws XAException
commit in interface javax.resource.spi.XATerminatorXAExceptionpublic void forget(Xid xid) throws XAException
forget in interface javax.resource.spi.XATerminatorXAExceptionpublic int prepare(Xid xid) throws XAException
prepare in interface javax.resource.spi.XATerminatorXAExceptionpublic Xid[] recover(int flag) throws XAException
recover in interface javax.resource.spi.XATerminatorXAExceptionpublic void rollback(Xid xid) throws XAException
rollback in interface javax.resource.spi.XATerminatorXAExceptionpublic void registerWork(javax.resource.spi.work.Work work,
Xid xid,
long timeout)
throws javax.resource.spi.work.WorkCompletedException
Interception of register work call to get transaction being imported to wildfly transacton client.
For importing a transaction Wildfly transaction client eventually calls SubordinationManager
as Narayana XATerminators do. This wrapping then let wildfly transacton client to register the transaction
for itself, wildfly transacton client then import transaction to Narayana too and finally this method
uses Narayana's XATerminator to register all Works binding.
Narayana's XATerminator tries to import transaction too but as transaction is already
imported it just gets instance of transaction already imported via call of wildfly transacton client.
registerWork in interface org.jboss.tm.JBossXATerminatorjavax.resource.spi.work.WorkCompletedExceptionpublic void startWork(javax.resource.spi.work.Work work,
Xid xid)
throws javax.resource.spi.work.WorkCompletedException
Start work gets imported transaction and assign it to current thread.
This method mimics behavior of Narayana's JBossXATerminator.
startWork in interface org.jboss.tm.JBossXATerminatorjavax.resource.spi.work.WorkCompletedExceptionpublic void endWork(javax.resource.spi.work.Work work,
Xid xid)
Suspending transaction and canceling the work.
Suspend transaction has to be called on the wildfly transaction manager
and the we delegate work cancellation to JBossXATerminator.
First we have to cancel the work for jboss terminator would not work with
suspended transaction.
endWork in interface org.jboss.tm.JBossXATerminatorpublic void cancelWork(javax.resource.spi.work.Work work,
Xid xid)
Calling JBossXATerminator to cancel the work for us.
There should not be need any action to be processed by wildfly transaction client.
cancelWork in interface org.jboss.tm.JBossXATerminatorCopyright © 2022 JBoss by Red Hat. All rights reserved.