public class RecoveryManagerImpl extends Object implements RecoveryManager
RecoveryManagerRecoveryManager.RecoveryIterator| Constructor and Description |
|---|
RecoveryManagerImpl(ConcurrentMap<RecoveryInfoKey,RecoveryAwareRemoteTransaction> recoveryHolder,
String cacheName) |
| Modifier and Type | Method and Description |
|---|---|
CompletionStage<String> |
forceTransactionCompletion(XidImpl xid,
boolean commit)
Replays the given transaction by re-running the prepare and commit.
|
String |
forceTransactionCompletionFromCluster(XidImpl xid,
Address where,
boolean commit)
This method invokes
RecoveryManager.forceTransactionCompletion(XidImpl, boolean) on the specified node. |
Set<InDoubtTxInfo> |
getInDoubtTransactionInfo()
Same as
RecoveryManager.getInDoubtTransactionInfoFromCluster(), but only returns transactions from the local node. |
Set<InDoubtTxInfo> |
getInDoubtTransactionInfoFromCluster()
Returns a
Set containing all the in-doubt transactions from the cluster, including the local node. |
List<XidImpl> |
getInDoubtTransactions()
Local call that returns a list containing:
|
ConcurrentMap<RecoveryInfoKey,RecoveryAwareRemoteTransaction> |
getInDoubtTransactionsMap() |
RecoveryAwareRemoteTransaction |
getPreparedTransaction(XidImpl 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,
ComponentRef<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) |
CompletionStage<Void> |
removeRecoveryInformation(Collection<Address> lockOwners,
XidImpl xid,
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(XidImpl) but identifies the tx by its internal id. |
RecoveryAwareTransaction |
removeRecoveryInformation(XidImpl xid)
Remove recovery information stored on this node (doesn't involve rpc).
|
CompletionStage<Void> |
removeRecoveryInformationFromCluster(Collection<Address> where,
long internalId)
Same as
RecoveryManager.removeRecoveryInformation(Collection, XidImpl, 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, ComponentRef<TransactionTable> txTable, TransactionCoordinator txCoordinator, TransactionFactory txFactory)
public RecoveryManager.RecoveryIterator getPreparedTransactionsFromCluster()
RecoveryManagergetPreparedTransactionsFromCluster in interface RecoveryManagerpublic CompletionStage<Void> removeRecoveryInformation(Collection<Address> lockOwners, XidImpl xid, GlobalTransaction gtx, boolean fromCluster)
RecoveryManagerremoveRecoveryInformation in interface RecoveryManagerlockOwners - on which nodes should this be executed.xid - the list of xids to be removed.gtx - the global transactionfromCluster - true to remove the recovery information from all cluster.public CompletionStage<Void> removeRecoveryInformationFromCluster(Collection<Address> where, long internalId)
RecoveryManagerRecoveryManager.removeRecoveryInformation(Collection, XidImpl, GlobalTransaction, boolean)
but the transaction is identified by its internal id, and not by its xid.removeRecoveryInformationFromCluster in interface RecoveryManagerpublic RecoveryAwareTransaction removeRecoveryInformation(XidImpl xid)
RecoveryManagerremoveRecoveryInformation in interface RecoveryManagerRecoveryManager.removeRecoveryInformation(Collection, XidImpl, GlobalTransaction, boolean)public RecoveryAwareTransaction removeRecoveryInformation(Long internalId)
RecoveryManagerRecoveryManager.removeRecoveryInformation(XidImpl) but identifies the tx by its internal id.removeRecoveryInformation in interface RecoveryManagerpublic List<XidImpl> 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 RecoveryManagerRecoveryAwareRemoteTransaction.isInDoubt()public Set<InDoubtTxInfo> getInDoubtTransactionInfo()
RecoveryManagerRecoveryManager.getInDoubtTransactionInfoFromCluster(), but only returns transactions from the local node.getInDoubtTransactionInfo in interface RecoveryManagerpublic Set<InDoubtTxInfo> getInDoubtTransactionInfoFromCluster()
RecoveryManagerSet 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 RecoveryManagerInDoubtTxInfopublic void registerInDoubtTransaction(RecoveryAwareRemoteTransaction remoteTransaction)
registerInDoubtTransaction in interface RecoveryManagerpublic RecoveryAwareRemoteTransaction getPreparedTransaction(XidImpl xid)
RecoveryManagergetPreparedTransaction in interface RecoveryManagerpublic CompletionStage<String> forceTransactionCompletion(XidImpl xid, boolean commit)
RecoveryManagerforceTransactionCompletion in interface RecoveryManagerxid - tx to commit or rollbackcommit - if true tx is committed, if false it is rolled backpublic String forceTransactionCompletionFromCluster(XidImpl xid, Address where, boolean commit)
RecoveryManagerRecoveryManager.forceTransactionCompletion(XidImpl, boolean) on the specified node.forceTransactionCompletionFromCluster in interface RecoveryManagerpublic boolean isTransactionPrepared(GlobalTransaction globalTx)
RecoveryManagerisTransactionPrepared in interface RecoveryManagerpublic ConcurrentMap<RecoveryInfoKey,RecoveryAwareRemoteTransaction> getInDoubtTransactionsMap()
Copyright © 2022 JBoss by Red Hat. All rights reserved.