Interface RecoverableXAResource
@ConsumerType
public interface RecoverableXAResource
A
RecoverableXAResource
service may be provided by a
ResourceProvider
if they are able to support XA recovery
operations.
There are two main sorts of recovery:
- Recovery after a remote failure, where the local transaction manager runs throughout
- Recovery after a local failure, where the transaction manager replays in-doubt transactions from its log
getId()
provides a persistent name
that can be used to correlate usage of the resource both before and after
failure. This identifier must also be passed to
TransactionContext.registerXAResource(XAResource, String)
each time
the recoverable resource is used.-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
This service property key is used byTransactionControl
services andResourceProvider
factories to indicate that they can support transaction recovery. -
Method Summary
Modifier and TypeMethodDescriptiongetId()
Get the id of this resource.Get a new, valid XAResource that can be used in recovery This XAResource will be returned later using thereleaseXAResource(XAResource)
methodvoid
releaseXAResource
(XAResource xaRes) Release the XAResource that has been used for recovery
-
Field Details
-
OSGI_RECOVERY_ENABLED
This service property key is used byTransactionControl
services andResourceProvider
factories to indicate that they can support transaction recovery.- See Also:
-
-
Method Details
-
getId
String getId()Get the id of this resource. This should be unique, and persist between restarts- Returns:
- an identifier, never
null
-
getXAResource
Get a new, valid XAResource that can be used in recovery This XAResource will be returned later using thereleaseXAResource(XAResource)
method- Returns:
- a valid, connected, XAResource
- Throws:
Exception
- If it is not possible to acquire a valid XAResource at the current time, for example if the database is temporarily unavailable.
-
releaseXAResource
Release the XAResource that has been used for recovery- Parameters:
xaRes
- AnXAResource
previously returned bygetXAResource()
-