Hi.
I have a question about supporting derby database in dbcp2. I’m using JMeter to
test derby dB and in case of auroCommit=false there is exception occurs on
connection validation step.
Using rollbackOnReturn and setEnableAutoCommitOnReturn booleans actually breaks
all logic. ( because in first case we lose all data on rollback in second case
we set autoCommit to true always for connection)
I doesn’t have much experience working with connections, but it looks like that
there is no correct way to use dbcp2 pools with derby databases.
Here is full stack trace:
java.sql.SQLException: Cannot create PoolableConnectionFactory (Cannot close a
connection while a transaction is still active.)
at
org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2385)
at
org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2110)
at
org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563)
at
org.apache.jmeter.protocol.jdbc.config.DataSourceElement$DataSourceComponentImpl.getConnection(DataSourceElement.java:361)
at
org.apache.jmeter.protocol.jdbc.config.DataSourceElement.getConnection(DataSourceElement.java:197)
at
org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler.sample(JDBCSampler.java:79)
at
org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:627)
at
org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:551)
at
org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:490)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLException: Cannot close a connection while a transaction
is still active.
at
org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown
Source)
at org.apache.derby.client.am.ClientConnection.closeResourcesX(Unknown
Source)
at org.apache.derby.client.am.ClientConnection.closeX(Unknown Source)
at org.apache.derby.client.am.ClientConnection.close(Unknown Source)
at org.apache.derby.client.net.NetConnection.close(Unknown Source)
at
org.apache.commons.dbcp2.DelegatingConnection.closeInternal(DelegatingConnection.java:239)
at
org.apache.commons.dbcp2.PoolableConnection.reallyClose(PoolableConnection.java:232)
at
org.apache.commons.dbcp2.PoolableConnectionFactory.destroyObject(PoolableConnectionFactory.java:367)
at
org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2402)
at
org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2381)
... 10 more
Caused by: ERROR 25001: Cannot close a connection while a transaction is still
active.
at
org.apache.derby.client.am.ClientConnection.checkForTransactionInProgress(Unknown
Source)
... 19 more
Отправлено с iPhone
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]