[
https://jira.jboss.org/jira/browse/JBTM-510?page=com.atlassian.jira.plugi...
]
Andrew Dinn closed JBTM-510.
----------------------------
Resolution: Done
This has been fixed but, possibly, sub-optimally. Ideally, the subordinate transaction
should be created by the Activation Coordinator service identified by the Coordinator URL
specified in the web service JVM/AS. The returned context can then be associated with the
parent context and the context handler can detect this and reinstate the parent when it
sees another web service request. The problem is how to delete this association if the
coordinator URL does not identify the (JVM/AS-)local coordinator service. If the
coordinator is in another JVM then any commit or rollback operation performed by the
subordinate coordinator cannot modify the association maintained in the web service JVM.
The handler could register a synchronization to clean up the association when it first
creates the subordinate transaction, either with the parent transaction or with the
subordinate (note that the association need not survive a crash since web service requests
should not occur after prepare).
The current fix has the handler bypass the normal route to the Activation Coordinator and
instead go direct to the local context factory i.e. it ignores any Coordinator URL setting
and invokes the local coordinator back end. It registers a callback with the local
subordinate coordinator implementation to be run at commit or rollback. This callback
removes the parent to subordinate association. It's a little hacky but it works.
WS-AT Subordinat Context Handler needs to reinstate existing
subordinate if there is one
----------------------------------------------------------------------------------------
Key: JBTM-510
URL:
https://jira.jboss.org/jira/browse/JBTM-510
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: WS-T Implementation
Affects Versions: 4.5
Reporter: Andrew Dinn
Assignee: Andrew Dinn
Fix For: 4.6
The WS-AT subordinate transaction context handler creates a subordinate transaction for
an incoming WS-AT transaction and then resumes it, thus ensuring that the web service
performs its operations in the subordinate transaction. The problem is that it needs to
ensure that on subsequent invocations of the web service in the same top-level transaction
it resumes the same subordinate transaction (it currently always creates a subordinate).
The hard bit is also ensuring that the parent to subordinate association is garbage
collected when either the parent or subordinate commits or rolls back.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira