[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 06:44:11 EDT 2007
[ http://jira.jboss.com/jira/browse/JBAS-4481?page=comments#action_12365171 ]
Mark Little commented on JBAS-4481:
-----------------------------------
I just took a quick look at the old JBossTM code and it seems not to change the thread-to-transaction association when it times out a transaction. However, it does change it in a lot of other places that are entirely non-standard, e.g., in a call to getStatus. The spec is pretty clear on this aspect:
public int getStatus() throws SystemException
Obtain the status of the transaction associated with the current thread.
Returns:
The transaction status. If no transaction is associated with the current thread, this method returns
the Status.STATUS_NO_TRANSACTION value.
Throws:SystemException
Thrown if the transaction manager encounters an unexpected error condition.
So no change on the transaction association just because you call getStatus. I mention this because that may be something you were relying on?
> 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