[
http://jira.jboss.com/jira/browse/JBAS-4481?page=comments#action_12365234 ]
Gavin King commented on JBAS-4481:
----------------------------------
"what JTA allows and what JEE allows are sometimes different"
Which is why I filed this bug against JBoss AS, not against the TM.
"I've been telling you what we do and why we do it in general terms. You're
obviously not interested in that, so I'll stop. "
I'm definitely not interested in that. I'm interested in fixing the bug in JBoss
4.2
"Well you're wrong. You can't resume if there's already a transaction
active on the thread, but you can resume the same transaction into multiple threads.
"
Ooops, you're right, and this is an optional feature supported but not required by
JTA. My bad. Nevertheless, its entirely academic, since the app is not allowed to get a TM
in the first case.
"Not the timeout thread. But *something* obviously needs to."
Right, so can we quit the discussion and just fix the bug now?
Transaction timeouts leave garbage Status.ROLLEDBACK UserTransaction
object bound to the thread
-----------------------------------------------------------------------------------------------
Key: JBAS-4481
URL:
http://jira.jboss.com/jira/browse/JBAS-4481
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Transaction Manager
Affects Versions: JBossAS-4.2.0.GA
Reporter: Gavin King
Assigned To: Jonathan Halliday
Priority: Blocker
Fix For: JBossAS-4.2.1.CR1
If a transaction timeout occurs, the UserTransaction object does not get cleaned up from
the thread, even after the request ends and the thread returns to the pool. Future
requests will not be able to begin() a transaction, since the STATUS_ROLLEDBACK
UserTransaction throws this exception:
Caused by: javax.transaction.NotSupportedException
at
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.begin(BaseTransaction.java:79)
at
com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.begin(BaseTransactionManagerDelegate.java:77)
at
org.jboss.tm.usertx.client.ServerVMClientUserTransaction.begin(ServerVMClientUserTransaction.java:124)
at org.jboss.seam.transaction.UTTransaction.begin(UTTransaction.java:29)
This means that any transaction timeout that occurs will leave the application server in
a permanently broken state and require a server restart. Hence 4.2.0.GA is currently
unusable in production!
This needs to be fixed in an immediate patch release.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira