[jbossts-issues] [JBoss JIRA] (JBTM-2819) Recover operation does not work for participant of JCA type transactions

Ondra Chaloupka (JIRA) issues at jboss.org
Fri Dec 16 05:02:00 EST 2016


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

Ondra Chaloupka commented on JBTM-2819:
---------------------------------------

I see. Well, this is an issue of test. Nevertheless documenting behavior would be fine :) but you can reject this one.

I have to admit that I overlooked the consequences of the participant's heuristic rollback state. Part of the reason was that the JTA implementation works differently [1] - it ends with in heuristic mixed state. May I consider this as different behavior for "jta style" transactions and correct for jta and jts? It seems to me that transaction itself is with type heuristic mixed but the participant is with heuristic rollback. But jta does not save type directly to participant but its state is delivered from transaction type. Am I at lest partly right here?

Thank you

{code}
[standalone at localhost:42042 /] /subsystem=transactions/log-store=log-store:read-resource(recursive=true, include-runtime=true)
{
    "outcome" => "success",
    "result" => {
        "expose-all-logs" => false,
        "type" => "default",
        "transactions" => {"0:ffff7f000001:9a556c9:5853b579:15" => {
            "age-in-seconds" => "29",
            "id" => "0:ffff7f000001:9a556c9:5853b579:15",
            "jmx-name" => undefined,
            "type" => "StateManager/BasicAction/TwoPhaseCoordinator/AtomicAction/SubordinateAtomicAction/JCA",
            "participants" => {"java:/TestXAResource-48" => {
                "eis-product-name" => "Crash Recovery Test",
                "eis-product-version" => "EAP Test",
                "jmx-name" => undefined,
                "jndi-name" => "java:/TestXAResource-48",
                "status" => "HEURISTIC",
                "type" => "/StateManager/AbstractRecord/XAResourceRecord"
            }}
        }}
    }
}
{code}

> Recover operation does not work for participant of JCA type transactions
> ------------------------------------------------------------------------
>
>                 Key: JBTM-2819
>                 URL: https://issues.jboss.org/browse/JBTM-2819
>             Project: JBoss Transaction Manager
>          Issue Type: Bug
>    Affects Versions: 5.4.0.Final
>            Reporter: Ondra Chaloupka
>            Assignee: Michael Musgrove
>         Attachments: heuristic-rollback-objectstore.zip
>
>
> Jboss cli {{:recover}} operation does not work when having JCA type transaction. My test shows following
> {code}
> [standalone at localhost:9990 /] /subsystem=transactions/log-store=log-store:probe
> {"outcome" => "success"}
> [standalone at localhost:9990 /] /subsystem=transactions/log-store=log-store:read-resource(recursive=true)
> {
>     "outcome" => "success",
>     "result" => {
>         "expose-all-logs" => false,
>         "type" => "default",
>         "transactions" => {
>             "0:ffff7f000001:-4cecb39b:585109e2:31" => {
>                 "age-in-seconds" => undefined,
>                 "id" => "0:ffff7f000001:-4cecb39b:585109e2:31",
>                 "jmx-name" => undefined,
>                 "type" => "CosTransactions/XAResourceRecord",
>                 "participants" => undefined
>             },
>             "0:ffff7f000001:-4cecb39b:585109e2:28" => {
>                 "age-in-seconds" => "1481798762",
>                 "id" => "0:ffff7f000001:-4cecb39b:585109e2:28",
>                 "jmx-name" => undefined,
>                 "type" => "StateManager/BasicAction/TwoPhaseCoordinator/ArjunaTransactionImple/ServerTransaction/JCA",
>                 "participants" => {"0:ffff7f000001:-4cecb39b:585109e2:31" => {
>                     "eis-product-name" => "unavailable",
>                     "eis-product-version" => "unavailable",
>                     "jmx-name" => undefined,
>                     "jndi-name" => "0:ffff7f000001:-4cecb39b:585109e2:31",
>                     "status" => "HEURISTIC_ROLLBACK",
>                     "type" => "/StateManager/AbstractRecord/ExtendedResourceRecord"
>                 }}
>             }
>         }
>     }
> }
> [standalone at localhost:9990 /] /subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-4cecb39b\:585109e2\:28/participants=0\:ffff7f000001\:-4cecb39b\:585109e2\:31:recover
> {"outcome" => "success"}
> [standalone at localhost:9990 /] /subsystem=transactions/log-store=log-store/transactions=0\:ffff7f000001\:-4cecb39b\:585109e2\:28/participants=0\:ffff7f000001\:-4cecb39b\:585109e2\:31:read-resource
> {
>     "outcome" => "success",
>     "result" => {
>         "eis-product-name" => "unavailable",
>         "eis-product-version" => "unavailable",
>         "jmx-name" => undefined,
>         "jndi-name" => "0:ffff7f000001:-4cecb39b:585109e2:31",
>         "status" => "HEURISTIC_ROLLBACK",
>         "type" => "/StateManager/AbstractRecord/ExtendedResourceRecord"
>     }
> }
> {code}
> I expect that {{:recover}} put the participant to {{PREPARED}} state and at that point RAR {{XATerminator.commit}} could commit such participant.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jbossts-issues mailing list