[JBoss JIRA] (JBTM-2997) Ensure that any LRA coordinator can control any LRA
by Michael Musgrove (Jira)
[ https://issues.jboss.org/browse/JBTM-2997?page=com.atlassian.jira.plugin.... ]
Michael Musgrove commented on JBTM-2997:
----------------------------------------
Here are some notes I added about different coordinators accessing the same LRA record:
Up until the time that the state moves to Compensating/Compensated anyone should be able to update an LRA record. After that we need to assign an owner (ie the coordinator that is driving the termination phase) and there needs to be a component that monitors that owners progress (assigning a new owner if it it fails). I don't think we need to worry about things like network partitions since the participant callbacks are meant to be idempotent. In recovery scenarios I would just write a timestamp into the record on each recovery pass and monitor that. In fact the presence of that timestamp would imply that there is a current owner and other coordinators need to leave it alone and only take over if it stops being updated.
To summarise, I would just write the owner/timestamp into the record when the state change is written and periodically update it thereafter. Any other coordinator that gets a request to close/cancel the LRA (this includes period recovery) should only take control if the owner/timestamp stops being updated.
Since STM/LockRecords ought to work for all store types I think we should definitely consider their use.
> Ensure that any LRA coordinator can control any LRA
> ---------------------------------------------------
>
> Key: JBTM-2997
> URL: https://issues.jboss.org/browse/JBTM-2997
> Project: JBoss Transaction Manager
> Issue Type: Feature Request
> Components: LRA
> Affects Versions: 5.8.0.Final
> Reporter: Michael Musgrove
> Assignee: Michael Musgrove
> Priority: Major
> Fix For: 5.later
>
>
> Currently the management of an LRA is restricted to the coordinator that created it. It would be preferable to have the option of allowing any coordinator be able to manage any LRA. The motivation for this feature is to enhance the usability of LRAs in cloud based environments.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)