[
https://issues.apache.org/jira/browse/AMQ-6089?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15059449#comment-15059449
]
Chris commented on AMQ-6089:
----------------------------
My reading of the spec was that TMENDRSCAN can be used with a TMSTARTRSCAN,
hence all pending xids being returned by either call seems logical as activeMQ
does not currently maintain a cursor or state.
With no state being maintained and all pending xids are returned by both
TMSTARTRSCAN and TMSTARTRSCAN a TM that has implemented cursor support has no
way of knowing it has all received all pending xids if all three flags return
the same result.
> org.apache.activemq.TransactionContext.recover(int flag) should return null
> or an empty array when it receives the flag XAResource.TMNOFLAGS as it has
> return all transactions when called with XAResource.TMSTARTRSCAN. or
> XAResource. TMENDRSCAN.
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-6089
> URL: https://issues.apache.org/jira/browse/AMQ-6089
> Project: ActiveMQ
> Issue Type: Bug
> Components: Transport
> Affects Versions: 5.9.1
> Reporter: Chris
> Labels: newbie
> Attachments: AMQRecoveryTester.java, XAHandlerXid.java,
> activemq-5.9.patch
>
>
> org.apache.activemq.TransactionContext implements XAResource. The recover
> method currently ignores the flag parameter, returning all transaction
> regardless of flags passed to it. This behaviour cause our transaction
> manager (IIB) to go into an indefinite loop. It is expecting to get an empty
> array or null when XAResource.TMNOFLAGS is passed as all transactions where
> returned by the prior XAResource.TMSTARTRSCAN call.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)