public interface SRAClientAPI
| Modifier and Type | Method and Description |
|---|---|
String |
cancelSRA(URL sraId)
Attempt to cancel an SRA
Trigger the compensation of the SRA.
|
String |
commitSRA(URL sraId)
Attempt to close an SRA
Trigger the successful completion of the SRA.
|
List<SRAInfo> |
getActiveSRAs()
Lookup active SRAs
|
List<SRAInfo> |
getAllSRAs()
Returns all SRAs
Gets both active and recovering SRAs
|
URL |
getCurrent()
checks whether there is an SRA associated with the calling thread
|
List<SRAInfo> |
getRecoveringSRAs()
List recovering Long Running Actions
Returns SRAs that are recovering (ie some compensators still need to be ran)
|
List<String> |
getResponseData(URL sraId) |
Boolean |
isActiveSRA(URL sraId)
Indicates whether an SRA is active
|
Boolean |
isCompensatedSRA(URL sraId)
Indicates whether an SRA was compensated
|
Boolean |
isCompletedSRA(URL sraId)
Indicates whether an SRA is complete
|
void |
joinSRA(URL sraId,
Long timelimit,
String body)
A SRAParticipant can join with the SRA at any time prior to the completion of an activity
|
String |
joinSRA(URL sraId,
Long timelimit,
String compensateUrl,
String completeUrl,
String leaveUrl,
String statusUrl)
Similar to
joinSRA(URL, Long, String) but the various compensator urls
are passed in explicitly |
URL |
startSRA(URL parentSRA,
String clientID,
Long timeout,
TimeUnit unit) |
URL startSRA(URL parentSRA, String clientID, Long timeout, TimeUnit unit) throws GenericSRAException
parentSRA - the parent SRA if this new SRA is nestedclientID - Each client is expected to have a unique identity (which can be a URL). (optional)timeout - Specifies the maximum time in seconds that the SRA will exist for. If the SRA is
terminated because of a timeout, the SRA URL is deleted. All further invocations
on the URL will return 404. The invoker can assume this was equivalent to a compensate
operation. (optional, default to 0)unit - GenericSRAExceptionString cancelSRA(URL sraId) throws GenericSRAException
sraId - The unique identifier of the SRA (required)GenericSRAException - Comms errorString commitSRA(URL sraId) throws GenericSRAException
sraId - The unique identifier of the SRA (required)GenericSRAException - Comms errorList<SRAInfo> getActiveSRAs() throws GenericSRAException
GenericSRAException - Comms errorList<SRAInfo> getAllSRAs() throws GenericSRAException
GenericSRAException - Comms errorList<SRAInfo> getRecoveringSRAs() throws GenericSRAException
GenericSRAException - Comms errorBoolean isActiveSRA(URL sraId) throws GenericSRAException
sraId - The unique identifier of the SRA (required)GenericSRAException - Comms errorBoolean isCompensatedSRA(URL sraId) throws GenericSRAException
sraId - The unique identifier of the SRA (required)GenericSRAException - Comms errorBoolean isCompletedSRA(URL sraId) throws GenericSRAException
sraId - The unique identifier of the SRA (required)GenericSRAException - Comms errorvoid joinSRA(URL sraId, Long timelimit, String body) throws GenericSRAException
sraId - The unique identifier of the SRA (required)timelimit - The time limit (in seconds) that the SRAParticipant can guarantee that it
can compensate the work performed by the io.narayana.sra.demo.service. After this time period has elapsed,
it may no longer be possible to undo the work within the scope of this (or any enclosing)
SRA. It may therefore be necessary for the application or io.narayana.sra.demo.service to start other
activities to explicitly try to compensate this work. The application or coordinator may
use this information to control the lifecycle of a SRA. (required)body - The resource path that the SRA coordinator will use to drive the compensator.
Performing a GET on the compensator URL will return the current status of the compensator,
or 404 if the compensator is no longer present. The following types must be returned by
Compensators to indicate their current status:
- Compensating: the SRAParticipant is currently compensating for the SRA;
- Compensated: the SRAParticipant has successfully compensated for
the SRA.
- FailedToCompensate: the SRAParticipant was not able to compensate for the SRA.
It must maintain information about the work it was to compensate until the
coordinator sends it a forget message.
- Completing: the SRAParticipant is tidying up after being told to complete.
- Completed: the coordinator/io.narayana.sra has confirmed.
- FailedToComplete: the SRAParticipant was unable to tidy-up.
Performing a POST on URL/compensate will cause the compensator to compensate
the work that was done within the scope of the SRA.
Performing a POST on URL/complete will cause the compensator to tidy up and
it can forget this SRA. (optional)GenericSRAException - Comms errorString joinSRA(URL sraId, Long timelimit, String compensateUrl, String completeUrl, String leaveUrl, String statusUrl) throws GenericSRAException
joinSRA(URL, Long, String) but the various compensator urls
are passed in explicitlysraId - The unique identifier of the SRA (required)timelimit - The time limit (in seconds) that the SRAParticipant can guarantee that it
can compensate the work performed by the io.narayana.sra.demo.servicecompensateUrl - Performing a POST onthis URL will cause the io.narayana.sra to compensate the work that
was done within the scope of the SRA.completeUrl - Performing a POST on this URL will cause the io.narayana.sra to tidy up and it can forget this transaction.leaveUrl - Performing a PUT on this URL with cause the compensator to leave the SRAstatusUrl - Performing a GET on this URL will return the status of the compensator joinSRAGenericSRAExceptionURL getCurrent()
Copyright © 2021 JBoss by Red Hat. All rights reserved.