[
https://issues.jboss.org/browse/WFLY-3801?page=com.atlassian.jira.plugin....
]
Tom Jenkinson commented on WFLY-3801:
-------------------------------------
Hi guys,
The first thing to note is that this looks like it should be the case regardless of
WFLY-3801 so I don't think we should delay closing the issue on account of the WARN.
To the issue at hand. As discussed on the #jbossts forum last night, WARN messages from
getStatus provide meaningful information to a user and so disabling them does not make
sense. The reason WARNs are printed here for JTS is because getStatus is being called in
an "undefined transaction context" (afterCompletion).
I don't think we should go too much further into discussion on this Jira, but I will
complete my assessment and then if you want you could raise a forum query discussing
getStatus WARNs on the Narayana forum if you like?
Anyway:
at
org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.getStatus(JtaStatusHelper.java:76)
at
org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.isActive(JtaStatusHelper.java:118)
at
org.hibernate.engine.transaction.internal.jta.CMTTransaction.isActive(CMTTransaction.java:115)
at
org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.isTransactionInProgress(TransactionCoordinatorImpl.java:166)
at org.hibernate.internal.SessionImpl.isTransactionInProgress(SessionImpl.java:462)
at
org.hibernate.jpa.spi.AbstractEntityManagerImpl.isTransactionInProgress(AbstractEntityManagerImpl.java:1504)
at org.hibernate.jpa.internal.EntityManagerImpl.close(EntityManagerImpl.java:150)
at
org.jboss.as.jpa.transaction.TransactionUtil$SessionSynchronization.afterCompletion(TransactionUtil.java:154)
As you can see getStatus is being called in afterCompletion. We discussed this on the
jbossts forum and I can agree that it is spec compliant for JPA sync to call EM.close().
That leaves the question, why is hibernate calling getStatus() in close?
Thanks,
Tom
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)