Bugs item #620262, was opened at 2002-10-08 16:44
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=620262&group_id=22866

Category: JBossCX
Group: v3.0 Rabbit Hole
Status: Open
Resolution: None
Priority: 5
Submitted By: Marko Strukelj (mstruk)
Assigned to: Nobody/Anonymous (nobody)
Summary: Trying to change Tx in enlist exception

Initial Comment:
When doing very intensive remote calls via statefull 
session, using the database with user managed 
transactions I often get this error:


2002-10-03 15:51:16,000 WARN  
[org.jboss.resource.connectionmanager.LocalTxConnecti
onManager$LocalConnectionEventListener] in Enlisting 
tx, trying to change tx. illegal state: old: 
TransactionImpl:XidImpl [FormatId=257, 
GlobalId=brutus//233, BranchQual=], new: 
TransactionImpl:XidImpl [FormatId=257, 
GlobalId=brutus//234, BranchQual=], cel: 
org.jboss.resource.connectionmanager.LocalTxConnecti
onManager$LocalConnectionEventListener@1f8d0a4
2002-10-03 15:51:16,000 ERROR [STDERR] 
java.lang.IllegalStateException: Trying to change Tx in 
enlist! 
2002-10-03 15:51:16,000 ERROR [STDERR]  at 
org.jboss.resource.connectionmanager.LocalTxConnecti
onManager$LocalConnectionEventListener.enlist
(LocalTxConnectionManager.java:309)
2002-10-03 15:51:16,000 ERROR [STDERR]  at 
org.jboss.resource.connectionmanager.LocalTxConnecti
onManager.managedConnectionReconnected
(LocalTxConnectionManager.java:255)
2002-10-03 15:51:16,000 ERROR [STDERR]  at 
org.jboss.resource.connectionmanager.BaseConnection
Manager2.allocateConnection
(BaseConnectionManager2.java:534)
2002-10-03 15:51:16,000 ERROR [STDERR]  at 
org.jboss.resource.connectionmanager.BaseConnection
Manager2$ConnectionManagerProxy.allocateConnection
(BaseConnectionManager2.java:812)
2002-10-03 15:51:16,000 ERROR [STDERR]  at 
org.jboss.resource.adapter.jdbc.local.LocalDataSource.g
etConnection(LocalDataSource.java:102)


It only happens when there is severe concurent use of 
the database. But it does happen a lot. 


What seems to happen is this:

Thread 1: 

        userTransaction.begin(); 
        Connection c=ds.getConnection();        // lets 
call this Connection1 

// ... use connection 

        c.close(); // close connection 

// now don't commit transaction yet 



        Thread 2: 
                userTransaction.begin(); 
                Connection c=ds.getConnection(); // 
KABOOOM! Exception happens here. 



Exception happened because Connection1 was trying to 
be returned - the same connection that was used by 
another thread.

In the time between returning a connection to the pool 
and calling commit on UserTransaction the same 
connection is checked out to another thread.



I am trying to make an example to reproduce the bug. 
So far the only way I can reproduce it is on my 
production system with full application deployed.


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=620262&group_id=22866


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to