Class XARecoveryResourceImple
java.lang.Object
com.arjuna.ats.arjuna.StateManager
com.arjuna.ats.arjuna.coordinator.AbstractRecord
com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord
com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryResourceImple
- All Implemented Interfaces:
ExceptionDeferrer
,XARecoveryResource
-
Field Summary
Fields inherited from class com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord
_theXAResource, XACONNECTION
Fields inherited from class com.arjuna.ats.arjuna.StateManager
modifyingActions, objectModel, objectUid, synchronizationLock, usingActions
Fields inherited from interface com.arjuna.ats.jta.recovery.XARecoveryResource
FAILED_TO_RECOVER, INCOMPLETE_STATE, INFLIGHT_TRANSACTION, RECOVERED_OK, RECOVERY_REQUIRED, TRANSACTION_NOT_PREPARED, WAITING_FOR_RECOVERY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal XAResource
Deprecated.Only used by a testprotected boolean
notAProblem
(XAException ex, boolean commit) Is the XAException a non-error when received in reply to commit or rollback ? In recovery, the commit/rollback may have been sent before (possibly only just before, in another thread) - in which case the RM will not recognise the XID but id doesn't matterint
recover()
Independant recovery cannot occur.int
If we don't have an XAResource then we cannot recover at this stage.Methods inherited from class com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord
alter, clearHeuristicDecision, doSave, forgetHeuristic, getDeferredThrowables, getHeuristic, getJndiName, getProductName, getProductVersion, getXid, isForgotten, merge, nestedAbort, nestedCommit, nestedOnePhaseCommit, nestedPrepare, order, propagateOnCommit, restore_state, save_state, setJndiName, setProductName, setProductVersion, setValue, shouldAdd, shouldAlter, shouldMerge, shouldReplace, topLevelAbort, topLevelCommit, topLevelOnePhaseCommit, topLevelPrepare, toString, type, typeIs, typeName, value
Methods inherited from class com.arjuna.ats.arjuna.coordinator.AbstractRecord
create, equals, getNext, getPrevious, getTypeOfObject, greaterThan, isPermittedTopLevelOnePhaseCommit, lessThan, nestedCleanup, print, propagateOnAbort, replace, setNext, setPrevious, topLevelCleanup
Methods inherited from class com.arjuna.ats.arjuna.StateManager
activate, activate, cleanup, createLists, deactivate, deactivate, deactivate, destroy, disable, forgetAction, get_uid, getCreationTimeMillis, getMutex, getObjectModel, getStore, getStoreRoot, loadObjectState, lockMutex, modified, objectType, packHeader, persist, rememberAction, setStatus, setupStore, setupStore, setupStore, status, terminate, tryLockMutex, unlockMutex, unpackHeader
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.arjuna.ats.jta.recovery.XARecoveryResource
get_uid, getXid, type
-
Constructor Details
-
XARecoveryResourceImple
-
XARecoveryResourceImple
-
-
Method Details
-
getXAResource
Deprecated.Only used by a test -
recoverable
public int recoverable()Description copied from interface:XARecoveryResource
If we don't have an XAResource then we cannot recover at this stage. The XAResource will have to be provided for us and then we can retry. Because recovery happens periodically, it is possible that it takes a snapshot of a transaction that is still running and will vanish from the log anyway. If that happens, then we don't need to (and can't) run recovery on it.- Specified by:
recoverable
in interfaceXARecoveryResource
-
recover
public int recover()Description copied from class:XAResourceRecord
Independant recovery cannot occur. Must be driven by the recovery of the local transaction, i.e., top-down recovery.- Specified by:
recover
in interfaceXARecoveryResource
- Overrides:
recover
in classXAResourceRecord
-
notAProblem
Is the XAException a non-error when received in reply to commit or rollback ? In recovery, the commit/rollback may have been sent before (possibly only just before, in another thread) - in which case the RM will not recognise the XID but id doesn't matter- Overrides:
notAProblem
in classXAResourceRecord
-