Package org.infinispan.commons.tx
Class TransactionImpl
- java.lang.Object
-
- org.infinispan.commons.tx.TransactionImpl
-
- All Implemented Interfaces:
javax.transaction.Transaction
public class TransactionImpl extends Object implements javax.transaction.Transaction
A basicTransaction
implementation.- Since:
- 9.1
- Author:
- Bela Ban, Pedro Ruivo
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
TransactionImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
commit()
Attempt to commit this transaction.CompletionStage<Void>
commitAsync(TransactionResourceConverter converter)
boolean
delistResource(XAResource xaRes, int flag)
De-list an XA resource from this transaction.boolean
enlistResource(XAResource resource)
Enlist an XA resource with this transaction.boolean
equals(Object obj)
Collection<XAResource>
getEnlistedResources()
Collection<javax.transaction.Synchronization>
getEnlistedSynchronization()
int
getStatus()
Get the status of the transaction.XidImpl
getXid()
int
hashCode()
Must be defined for increased performancevoid
registerSynchronization(javax.transaction.Synchronization sync)
Register aSynchronization
callback with this transaction.void
rollback()
Rolls back this transaction.CompletionStage<Void>
rollbackAsync(TransactionResourceConverter converter)
void
runCommit(boolean forceRollback)
Runs the second phase of two-phase-commit protocol.CompletionStage<Void>
runCommitAsync(boolean forceRollback, TransactionResourceConverter resourceConverter)
boolean
runPrepare()
CompletionStage<Boolean>
runPrepareAsync(TransactionResourceConverter resourceConverter)
void
setRollbackOnly()
Mark the transaction so that the only possible outcome is a rollback.void
setXid(XidImpl xid)
String
toString()
-
-
-
Method Detail
-
commit
public void commit() throws javax.transaction.RollbackException, javax.transaction.HeuristicMixedException, javax.transaction.HeuristicRollbackException, SecurityException
Attempt to commit this transaction.- Specified by:
commit
in interfacejavax.transaction.Transaction
- Throws:
javax.transaction.RollbackException
- If the transaction was marked for rollback only, the transaction is rolled back and this exception is thrown.javax.transaction.HeuristicMixedException
- If a heuristic decision was made and some some parts of the transaction have been committed while other parts have been rolled back.javax.transaction.HeuristicRollbackException
- If a heuristic decision to roll back the transaction was made.SecurityException
- If the caller is not allowed to commit this transaction.
-
commitAsync
public CompletionStage<Void> commitAsync(TransactionResourceConverter converter)
-
rollback
public void rollback() throws IllegalStateException, javax.transaction.SystemException
Rolls back this transaction.- Specified by:
rollback
in interfacejavax.transaction.Transaction
- Throws:
IllegalStateException
- If the transaction is in a state where it cannot be rolled back. This could be because the transaction is no longer active, or because it is in theprepared state
.javax.transaction.SystemException
- If the transaction service fails in an unexpected way.
-
rollbackAsync
public CompletionStage<Void> rollbackAsync(TransactionResourceConverter converter)
-
setRollbackOnly
public void setRollbackOnly() throws IllegalStateException
Mark the transaction so that the only possible outcome is a rollback.- Specified by:
setRollbackOnly
in interfacejavax.transaction.Transaction
- Throws:
IllegalStateException
- If the transaction is not in an active state.
-
getStatus
public int getStatus()
Get the status of the transaction.- Specified by:
getStatus
in interfacejavax.transaction.Transaction
- Returns:
- The status of the transaction. This is one of the
Status
constants.
-
enlistResource
public boolean enlistResource(XAResource resource) throws javax.transaction.RollbackException, IllegalStateException, javax.transaction.SystemException
Enlist an XA resource with this transaction.- Specified by:
enlistResource
in interfacejavax.transaction.Transaction
- Returns:
true
if the resource could be enlisted with this transaction, otherwisefalse
.- Throws:
javax.transaction.RollbackException
- If the transaction is marked for rollback only.IllegalStateException
- If the transaction is in a state where resources cannot be enlisted. This could be because the transaction is no longer active, or because it is in theprepared state
.javax.transaction.SystemException
- If the transaction service fails in an unexpected way.
-
delistResource
public boolean delistResource(XAResource xaRes, int flag) throws IllegalStateException, javax.transaction.SystemException
De-list an XA resource from this transaction.- Specified by:
delistResource
in interfacejavax.transaction.Transaction
- Returns:
true
if the resource could be de-listed from this transaction, otherwisefalse
.- Throws:
IllegalStateException
- If the transaction is in a state where resources cannot be de-listed. This could be because the transaction is no longer active.javax.transaction.SystemException
- If the transaction service fails in an unexpected way.
-
registerSynchronization
public void registerSynchronization(javax.transaction.Synchronization sync) throws javax.transaction.RollbackException, IllegalStateException
Register aSynchronization
callback with this transaction.- Specified by:
registerSynchronization
in interfacejavax.transaction.Transaction
- Throws:
javax.transaction.RollbackException
- If the transaction is marked for rollback only.IllegalStateException
- If the transaction is in a state whereSynchronization
callbacks cannot be registered. This could be because the transaction is no longer active, or because it is in theprepared state
.
-
getEnlistedResources
public Collection<XAResource> getEnlistedResources()
-
runPrepare
public boolean runPrepare()
-
runPrepareAsync
public CompletionStage<Boolean> runPrepareAsync(TransactionResourceConverter resourceConverter)
-
runCommit
public void runCommit(boolean forceRollback) throws javax.transaction.HeuristicMixedException, javax.transaction.HeuristicRollbackException, javax.transaction.RollbackException
Runs the second phase of two-phase-commit protocol.If
forceRollback
istrue
, then aRollbackException
is thrown with the messageFORCE_ROLLBACK_MESSAGE
.- Parameters:
forceRollback
- force the transaction to rollback.- Throws:
javax.transaction.HeuristicMixedException
javax.transaction.HeuristicRollbackException
javax.transaction.RollbackException
-
runCommitAsync
public CompletionStage<Void> runCommitAsync(boolean forceRollback, TransactionResourceConverter resourceConverter)
-
getXid
public XidImpl getXid()
-
setXid
public void setXid(XidImpl xid)
-
getEnlistedSynchronization
public Collection<javax.transaction.Synchronization> getEnlistedSynchronization()
-
hashCode
public final int hashCode()
Must be defined for increased performance
-
-