[jbossts-issues] [JBoss JIRA] (JBTM-2701) Allow in-flowed XAR to be scanned for Xid more than once between scans of the recovery system

Tom Jenkinson (JIRA) issues at jboss.org
Tue Aug 30 06:50:00 EDT 2016


    [ https://issues.jboss.org/browse/JBTM-2701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13266116#comment-13266116 ] 

Tom Jenkinson edited comment on JBTM-2701 at 8/30/16 6:49 AM:
--------------------------------------------------------------

Problem is observed in following scenario:

{code}
0. crash
1. Periodic recovery periodicFirstPass (before XAR1 registered with recovery system) - move from IDLE to BETWEEN_PASSES
2. XATerminator::recover() - loads SAA from external to PeriodicRecovery system
3. commit SAA1
4. commit XAResourceRecord1
5. XARecoveryModule::getNewXAResource
6. periodicFirstPass not called as not IDLE so no scan XAR1 so XAR unavailable
{code}

We need to recall periodicFirstPass unless it is in the middle of secondpass, in which case we wait till that finishes then call it again. To allow multiple calls of first pass we need to detect the situation and ENDRSCAN outstanding ones as that is normally done in secondpass.


was (Author: tomjenkinson):
Problem is observed in following scenario:

{code}
0. prepare SAA1
1. prepare XAR1
2. getNewXAResource
3. periodicFirstPass (scans XAR1) - move from IDLE to BETWEEN_PASSES
4. commit XAR1
5. prepare XAR2
6. commit XAR2
7. getNewXAResource
8. periodicFirstPass not called as not IDLE so no scan XAR2
{code}

We need to recall periodicFirstPass unless it is in the middle of secondpass, in which case we wait till that finishes then call it again. To allow multiple calls of first pass we need to detect the situation and ENDRSCAN outstanding ones as that is normally done in secondpass.

> Allow in-flowed XAR to be scanned for Xid more than once between scans of the recovery system
> ---------------------------------------------------------------------------------------------
>
>                 Key: JBTM-2701
>                 URL: https://issues.jboss.org/browse/JBTM-2701
>             Project: JBoss Transaction Manager
>          Issue Type: Enhancement
>          Components: Transaction Core
>    Affects Versions: 4.17.33
>         Environment: JBoss EA P6.4.8
>            Reporter: Tom Ross
>            Assignee: Michael Musgrove
>            Priority: Minor
>             Fix For: 5.next
>
>
> The JCA getNewXAResource() call can only bring forward the scanning of XAResources once per recovery pass (i.e. once every two minutes per default).
> The following signature can be observed in the log file:
> {noformat}
> 2016-06-28 12:18:33,068 TRACE [com.arjuna.ats.jta] (EJB default - 98) XAResourceRecord.topLevelCommit for XAResourceRecord < resource:null, txid:< formatId=131077, gtrid_length=40, bqual_length=48, tx_uid=0:ffff0af7f615:19718dac:576e895c:d7da9, node_name=svc_1_cmserv, branch_uid=0:ffff0af7f663:ba85fe7:57714e42:7058f2, subordinatenodename=svc_2_mscmce, eis_name=java:/eis/custom-ra >, heuristic: TwoPhaseOutcome.FINISH_OK, product: com/ecim/1.0, jndiName: java:/eis/custom-ra com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord at 64fa6d0e >, record id=0:ffff0af7f663:ba85fe7:57714e42:7058f3
> 2016-06-28 12:18:33,068 WARN  [com.arjuna.ats.jta] (EJB default - 98) ARJUNA016038: No XAResource to recover < formatId=131077, gtrid_length=40, bqual_length=48, tx_uid=0:ffff0af7f615:19718dac:576e895c:d7da9, node_name=svc_1_cmserv, branch_uid=0:ffff0af7f663:ba85fe7:57714e42:7058f2, subordinatenodename=svc_2_mscmce, eis_name=java:/eis/custom-ra >
> 2016-06-28 12:18:33,069 TRACE [com.arjuna.ats.arjuna] (EJB default - 98) BasicAction.doCommit for 0:ffff0af7f663:ba85fe7:57714e42:705303 received TwoPhaseOutcome.FINISH_ERROR from class com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord
> 2016-06-28 12:18:33,069 TRACE [com.arjuna.ats.arjuna] (EJB default - 98) RecordList::insert(RecordList: empty) : appending /StateManager/AbstractRecord/XAResourceRecord for 0:ffff0af7f663:ba85fe7:57714e42:7058f3
> {noformat}
> It would be useful to allow the getNewXAResource() call to re-scan XAR in case it is called in between recovery scans multiple times.



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jbossts-issues mailing list