[jbossts-issues] [JBoss JIRA] (JBTM-2124) Add orphan detection for JTS interposition mode
Ondra Chaloupka (JIRA)
issues at jboss.org
Tue Dec 20 11:39:00 EST 2016
[ https://issues.jboss.org/browse/JBTM-2124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13340878#comment-13340878 ]
Ondra Chaloupka commented on JBTM-2124:
I hit a case connected with this issue.
The trouble described at JBTM-2124 belongs to situation where prepare operation is crashed somewhere in the middle. XAResource has in doubt (saves its state in remote transaction store) but TM does not save any info to its object store.
The case I want to mention is a little bit different. The JVM is crashed at time when XAResource saves its state in remote transaction store and in TM to its object store too.
The recovery manager starts with processing of recovery. If XA_RETRY is not thrown then the rollback would be called. But XA_RETRY causes that log record is just removed from TM object store. After that the case really gets back to the JBTM-2124.
But I think if XA_RETRY/RMFAIL does not cause removal of the TM object store record - it would be just left as it is, next round of recovery would be able to rollback the resource and remove the record (of course if broker starts being available at that time).
Agreed with Tom that before this issue (JBTM-2124) is fixed the trouble of handling XA_RETRY on recovery rollback is not relevant to be handled differently.
> Add orphan detection for JTS interposition mode
> Key: JBTM-2124
> URL: https://issues.jboss.org/browse/JBTM-2124
> Project: JBoss Transaction Manager
> Issue Type: Feature Request
> Components: Recovery
> Affects Versions: 4.17.17
> Reporter: Ondra Chaloupka
> Assignee: Gytis Trikleris
> Fix For: 5.later
> Currently orphan detection is supported for JTA, not for JTS. Please, add the suport for JTS as well.
> The following scenario for JTS causes that the orphan is left in the transaction log store and the prepared resource could held the lock till the time that it's timeouted on the side of the database/jms.
> The program flow is following (test run on EAP 6)
> enlisting jms xaresource to transaction
> sending msg to queue
> enlisting xa test resource
> preparing jms xaresource
> preparing xa test resource
> crash JVM at the end of the test XAResource.prepare()
> restart app server and recovery is run
> During recovery the jms resource is processed correctly because TM found some info in its jts logs. But such info was not saved for test xa resource. The test xa is not rollback.
> More info and discussion could be found at: https://bugzilla.redhat.com/show_bug.cgi?id=1064170
This message was sent by Atlassian JIRA
More information about the jbossts-issues