[jbossts-issues] [JBoss JIRA] (JBTM-2701) XAR should be scanned more frequently for prepared transactions

Tom Jenkinson (JIRA) issues at jboss.org
Fri Jul 15 05:24: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 commented on JBTM-2701:
-------------------------------------

Problem is observed in following scenario:

{code}
1. prepare XAR1
2. commit XAR1
4. getNewXAResource
5. periodicFirstPass (scans XAR1) - move from IDLE to BETWEEN_PASSES
6. prepare XAR2
7. commit XAR2
8. getNewXAResource
9. 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.

> XAR should be scanned more frequently for prepared transactions
> ---------------------------------------------------------------
>
>                 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: Amos Feng
>             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