[jboss-jira] [JBoss JIRA] Commented: (JBAS-4481) Transaction timeouts leave garbage Status.ROLLEDBACK UserTransaction object bound to the thread
Mark Little (JIRA)
jira-events at lists.jboss.org
Wed Jun 13 10:15:11 EDT 2007
[ http://jira.jboss.com/jira/browse/JBAS-4481?page=comments#action_12365231 ]
Mark Little commented on JBAS-4481:
-----------------------------------
We're talking at cross purposes a bit, but what JTA allows and what JEE allows are sometimes different. For example, JTA supports nested transactions, but JEE doesn't.
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.
"AFAICT, this is not true. resume() does not support resuming by multiple threads."
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.
"Regardless, the app is not allowed to call TransactionManager anyway. The only thing its got is UserTransaction. "
You're right, but see my previous comment.
"Whynot? What spec says that? And yes, you can, and you must. Otherwise thread goes back in Tomcat's pool with a garbage transaction object associated with it."
Not the timeout thread. But *something* obviously needs to. I think we can agree on that.
> 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
More information about the jboss-jira
mailing list