[jboss-jira] [JBoss JIRA] (WFLY-3801) Wrong Transaction behaviour for EJBs if JTS is enabled

Tom Jenkinson (JIRA) issues at jboss.org
Wed Oct 22 06:24:36 EDT 2014


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

Tom Jenkinson commented on WFLY-3801:
-------------------------------------

{quote}
Looks like we could get rid of this warning with suspending the TX in at org.jboss.as.jpa.transaction.TransactionUtil$SessionSynchronization.afterCompletion(TransactionUtil.java:154)
before calling entity manager.close()
{quote}

My tests show that if you call suspend in afterCompletion with JTS mode you will get a SystemException as allowed within the spec. This is because it is an "undefined transaction context". Suspend goes through the same code path with respect to getStatus in order to access the possibly remote transaction control. Unlike with getStatus where only a WARN is issued if this undefined transaction context scenario (inactive coordinator) is detected, a SystemException is also thrown here to indicate the error condition.

> Wrong Transaction behaviour for EJBs if JTS is enabled
> ------------------------------------------------------
>
>                 Key: WFLY-3801
>                 URL: https://issues.jboss.org/browse/WFLY-3801
>             Project: WildFly
>          Issue Type: Bug
>          Components: EJB, Transactions
>    Affects Versions: 8.1.0.Final
>         Environment: standalone-full profile with JTS enabled
>            Reporter: Wolf-Dieter Fink
>            Assignee: David Lloyd
>         Attachments: 456a624-withDestroy.log, 8d49872-error.log, enableJTS.cli, reproducer.zip, server.log
>
>
> If JTS is enabled the invocation of EJB's might show a arjuna warning for each method invocation:
>    WARN  [com.arjuna.ats.jts] (RequestProcessor-5) ARJUNA022261: ServerTopLevelAction detected that the transaction was inactive
> This is only the case if other resources are involved, i.e. a DB via JPA.
> If a simple bean is used (like ejb-remote quickstart) this warning is not shown.
> It looks like the transaction is local commited but in case of a SFSB @Remove method the result is a " WFLYEE0006: Failed to destroy component instance  Instance of SFTestBean" and the lifecycle method @PreDestroy is not invoked.



--
This message was sent by Atlassian JIRA
(v6.3.1#6329)


More information about the jboss-jira mailing list