public class RecoveryManagerImpl extends Object implements RecoveryManager
RecoveryManager
RecoveryManager.InDoubtTxInfo, RecoveryManager.RecoveryIterator
Constructor and Description |
---|
RecoveryManagerImpl(ConcurrentMap<RecoveryInfoKey,RecoveryAwareRemoteTransaction> recoveryHolder,
String cacheName) |
Modifier and Type | Method and Description |
---|---|
String |
forceTransactionCompletion(Xid xid,
boolean commit)
Replays the given transaction by re-running the prepare and commit.
|
String |
forceTransactionCompletionFromCluster(Xid xid,
Address where,
boolean commit)
This method invokes
RecoveryManager.forceTransactionCompletion(javax.transaction.xa.Xid, boolean) on the specified node. |
Set<RecoveryManager.InDoubtTxInfo> |
getInDoubtTransactionInfo()
Same as
RecoveryManager.getInDoubtTransactionInfoFromCluster() , but only returns transactions from the local node. |
Set<RecoveryManager.InDoubtTxInfo> |
getInDoubtTransactionInfoFromCluster()
Returns a
Set containing all the in-doubt transactions from the cluster, including the local node. |
List<Xid> |
getInDoubtTransactions()
Local call that returns a list containing:
|
ConcurrentMap<RecoveryInfoKey,RecoveryAwareRemoteTransaction> |
getInDoubtTransactionsMap() |
RecoveryAwareRemoteTransaction |
getPreparedTransaction(Xid xid)
Local call returning the remote transaction identified by the supplied xid or null.
|
RecoveryManager.RecoveryIterator |
getPreparedTransactionsFromCluster()
Returns the list of transactions in prepared state from both local and remote cluster nodes.
|
void |
init(RpcManager rpcManager,
CommandsFactory commandsFactory,
TransactionTable txTable,
TransactionCoordinator txCoordinator,
TransactionFactory txFactory) |
boolean |
isTransactionPrepared(GlobalTransaction globalTx)
Checks both internal state and transaction table's state for the given tx.
|
void |
registerInDoubtTransaction(RecoveryAwareRemoteTransaction remoteTransaction) |
void |
removeRecoveryInformation(Collection<Address> lockOwners,
Xid xid,
boolean sync,
GlobalTransaction gtx,
boolean fromCluster)
Removes from the specified nodes (or all nodes if the value of 'where' is null) the recovery information
associated with these Xids.
|
RecoveryAwareTransaction |
removeRecoveryInformation(Long internalId)
Same as
RecoveryManager.removeRecoveryInformation(javax.transaction.xa.Xid) but identifies the tx by its internal id. |
RecoveryAwareTransaction |
removeRecoveryInformation(Xid xid)
Remove recovery information stored on this node (doesn't involve rpc).
|
void |
removeRecoveryInformationFromCluster(Collection<Address> where,
long internalId,
boolean sync)
Same as
RecoveryManager.removeRecoveryInformation(java.util.Collection, javax.transaction.xa.Xid, boolean,
org.infinispan.transaction.xa.GlobalTransaction, boolean) but the transaction is identified by its internal id,
and not by its xid. |
public RecoveryManagerImpl(ConcurrentMap<RecoveryInfoKey,RecoveryAwareRemoteTransaction> recoveryHolder, String cacheName)
public void init(RpcManager rpcManager, CommandsFactory commandsFactory, TransactionTable txTable, TransactionCoordinator txCoordinator, TransactionFactory txFactory)
public RecoveryManager.RecoveryIterator getPreparedTransactionsFromCluster()
RecoveryManager
getPreparedTransactionsFromCluster
in interface RecoveryManager
public void removeRecoveryInformation(Collection<Address> lockOwners, Xid xid, boolean sync, GlobalTransaction gtx, boolean fromCluster)
RecoveryManager
removeRecoveryInformation
in interface RecoveryManager
lockOwners
- on which nodes should this be executed.xid
- the list of xids to be removed.sync
- execute sync or async (false)gtx
- the global transactionpublic void removeRecoveryInformationFromCluster(Collection<Address> where, long internalId, boolean sync)
RecoveryManager
RecoveryManager.removeRecoveryInformation(java.util.Collection, javax.transaction.xa.Xid, boolean,
org.infinispan.transaction.xa.GlobalTransaction, boolean)
but the transaction is identified by its internal id,
and not by its xid.removeRecoveryInformationFromCluster
in interface RecoveryManager
public RecoveryAwareTransaction removeRecoveryInformation(Xid xid)
RecoveryManager
removeRecoveryInformation
in interface RecoveryManager
public RecoveryAwareTransaction removeRecoveryInformation(Long internalId)
RecoveryManager
RecoveryManager.removeRecoveryInformation(javax.transaction.xa.Xid)
but identifies the tx by its internal id.removeRecoveryInformation
in interface RecoveryManager
public List<Xid> getInDoubtTransactions()
RecoveryManager
- all the remote transactions prepared on this node for which the originator(i.e. the node where the tx stared) is no longer part of the cluster. AND - all the locally originated transactions which are prepared and for which the commit failed
getInDoubtTransactions
in interface RecoveryManager
RecoveryAwareRemoteTransaction.isInDoubt()
public Set<RecoveryManager.InDoubtTxInfo> getInDoubtTransactionInfo()
RecoveryManager
RecoveryManager.getInDoubtTransactionInfoFromCluster()
, but only returns transactions from the local node.getInDoubtTransactionInfo
in interface RecoveryManager
public Set<RecoveryManager.InDoubtTxInfo> getInDoubtTransactionInfoFromCluster()
RecoveryManager
Set
containing all the in-doubt transactions from the cluster, including the local node. This
does not include transactions that are prepared successfully and for which the originator is still in the
cluster.getInDoubtTransactionInfoFromCluster
in interface RecoveryManager
RecoveryManager.InDoubtTxInfo
public void registerInDoubtTransaction(RecoveryAwareRemoteTransaction remoteTransaction)
public RecoveryAwareRemoteTransaction getPreparedTransaction(Xid xid)
RecoveryManager
getPreparedTransaction
in interface RecoveryManager
public String forceTransactionCompletion(Xid xid, boolean commit)
RecoveryManager
forceTransactionCompletion
in interface RecoveryManager
xid
- tx to commit or rollbackcommit
- if true tx is committed, if false it is rolled backpublic String forceTransactionCompletionFromCluster(Xid xid, Address where, boolean commit)
RecoveryManager
RecoveryManager.forceTransactionCompletion(javax.transaction.xa.Xid, boolean)
on the specified node.forceTransactionCompletionFromCluster
in interface RecoveryManager
public boolean isTransactionPrepared(GlobalTransaction globalTx)
RecoveryManager
isTransactionPrepared
in interface RecoveryManager
public ConcurrentMap<RecoveryInfoKey,RecoveryAwareRemoteTransaction> getInDoubtTransactionsMap()
Copyright © 2024 JBoss, a division of Red Hat. All rights reserved.