Very strange... Cayenne works with the DataSource, so whatever
connection DataSource gives it, it will use it. So could you elaborate
what you mean by "only one of these connections is used"? Does that
mean that for a single slow operations, other threads can't get
connections from the pool?
Andrus
On Apr 23, 2009, at 12:09 PM, Detlef Burt wrote:
Hi List,
Before I start, here's what we currently use:
Cayenne 2.0.4
MSSQL Server 2005 with jTDS Driver
In our application we define the following connection pool:
cayenne.dbcp.driverClassName=net.sourceforge.jtds.jdbc.Driver
cayenne.dbcp.url=jdbc:jtds:sqlserver://darkside:1433/mdb
cayenne.dbcp.username=dbuser
cayenne.dbcp.password=dbpassword
cayenne.dbcp.maxActive=10
cayenne.dbcp.minIdle=3
cayenne.dbcp.maxIdle=10
cayenne.dbcp.maxWait=10000
When starting the application everything works fine, we can see 3
connections to the MSSQL Server.
The Problem is, only one of these connections is used. Because we
used external transactions, we disabled them to let cayenne do the
committing, but that didn't help either. The only result was, that
data wasn't written to the database.
We also tried recreating the DataContext every time we access the
database, nothing helped.
Neither the DBCPDataSourceFactor nor the Cayenne
DriverDataSourceFactory return an unused connection.
So now my question is:
How does Cayenne handle the connection pool? Is there a way to
always get an unused connection? Or at least determine why cayenne
is always using the same connection?
Thanks,
Detlef