Bugs item #664547, was opened at 2003-01-08 10:51
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=664547&group_id=22866
Category: JBossServer
Group: v2.4 (stable)
Status: Open
Resolution: None
Priority: 5
Submitted By: Kyle VanderBeek (kylev)
Assigned to: Nobody/Anonymous (nobody)
Summary: JDBC pooling completely broken
Initial Comment:
Crate a simple JDBC data source in jboss.jcml (we're
currently on 2.4.8):
<mbean code="org.jboss.jdbc.JdbcProvider"
name="DefaultDomain:service=JdbcProvider">
<attribute
name="Drivers">com.sybase.jdbc2.jdbc.SybDriver,com.mysql.jdbc.Driver</attribute>
</mbean>
<mbean code="org.jboss.jdbc.JDBCDataSourceLoader"
name="DefaultDomain:service=JDBCDataSource,name=CartDS">
<attribute name="PoolName">CartDS</attribute>
<attribute
name="URL">jdbc:mysql://db2.server.dom/cart?autoReconnect=true</attribute>
<attribute name="JDBCUser">user</attribute>
<attribute name="Password">pass</attribute>
<attribute name="MaxSize">16</attribute>
</mbean>
This pool is completely un-usable and will be quickly
exhausted with any simple code:
for (int i = 0; i < someNum; i++) {
Connection con = ds.getConnection();
con.close();
}
If you turn on tracing for "org.jboss.pool", you'll see
that the end of ObjectPool.releaseObject() is *never*
reached.
----------------------------------------------------------------------
>Comment By: Kyle VanderBeek (kylev)
Date: 2003-01-10 15:46
Message:
Logged In: YES
user_id=51762
I'm trying to use the XA method, but now I get a ton of these:
[15:41:13,994,XAConnectionFactory] XAConnectionImpl:
org.jboss.pool.jdbc.xa.wrapper.XAConnectionImpl@c0f2e5 has
no current tx!
----------------------------------------------------------------------
Comment By: Bill Burke (patriot1burke)
Date: 2003-01-10 14:30
Message:
Logged In: YES
user_id=176497
This is simulated XA dude.....You can use ANY jdbc driver. The
XADataSourceLoader wraps a plain old JDBC driver and
simulates an XA resource.
AGAIN. YOU MUST USE XADataSourceLoader if you want
transaction support with your Entity Beans!!!! Just use it. IT
WILL WORK!!!!!
----------------------------------------------------------------------
Comment By: Kyle VanderBeek (kylev)
Date: 2003-01-10 14:28
Message:
Logged In: YES
user_id=51762
In my case "Use XA" isn't viable. From Sybase, buying XA
capability means paying many, many dollars.
----------------------------------------------------------------------
Comment By: Kyle VanderBeek (kylev)
Date: 2003-01-10 14:23
Message:
Logged In: YES
user_id=51762
Submit the simplest testcase possible that demonstrates the
problem
----------------------------------------------------------------------
Comment By: Kyle VanderBeek (kylev)
Date: 2003-01-10 14:23
Message:
Logged In: YES
user_id=51762
Test suite:
http://www.kylev.com/tmp/screwpool.zip
----------------------------------------------------------------------
Comment By: Bill Burke (patriot1burke)
Date: 2003-01-08 15:14
Message:
Logged In: YES
user_id=176497
Use XADataSourceLoader. Its being used in many many
production sites around the world. In fact, if you want
transactions with your ejbs, you can't use a plain JDBC loader.
Don't count on this getting fixed anytime soon. 2.4.x series
development is basically retired except for paying support
customers.
----------------------------------------------------------------------
Comment By: Kyle VanderBeek (kylev)
Date: 2003-01-08 14:38
Message:
Logged In: YES
user_id=51762
(Forgot to actually attach patch)
----------------------------------------------------------------------
Comment By: Kyle VanderBeek (kylev)
Date: 2003-01-08 14:38
Message:
Logged In: YES
user_id=51762
Proposed patch (by my co-worker Blaise).
This alone is almost worth rolling a new release (IMHO). An
EJB server that can't reliably use a DataSource isn't worth
much.
----------------------------------------------------------------------
Comment By: Kyle VanderBeek (kylev)
Date: 2003-01-08 10:59
Message:
Logged In: YES
user_id=51762
A quick glance by my co-worker found that the calls in
ObjectPool.releaseObject() may be the problem:
factory.returnObject(object);//do this first
pooled = factory.translateObject(object);
Looking at the JDBCConnectionFactory, pooled will ALWAYS be
null after these calls, because
JDBCConnectionFactory.returnObject() calls
ConnectionInPool.reset() which sets the underlying
connection to null.
Something here is incorrect, though I'm not sure yet what
the expected semmantics are.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=664547&group_id=22866
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development