The Oracle driver is notorious about dealing with open resources. If
you forget to close one resultset, statement, etc. then not only will
the connection not close, but you'll get an exception regarding too many
cursors or something like that. Make sure you are closing all those
resources inside a finally block, because one exception will throw
things off otherwise.
That's my best guess after not being in the code for years.
Simon Payne wrote:
Hello,
I am using JMeter to load test an Oracle database. I have been having
trouble with JDBC connect strings and TNSNAMES entries. The code within
JMeter that handles connect strings (i.e. db urls) is Excalibur Pool v. 1.2,
hence I am addressing this forum.
The problem appears on closure of the connection - opening connections works
fine. How does Excalibur Pool work in this respect?
Why would I be getting an error like the one below? Has anyone else seen and
resolved it?
Here is my environment:-
Excalibur Pool v. 1.2
JMeter v. 2.3
Database: Oracle 10g3 (10.2.0.3.0)
JDBC driver: Oracle ojdbc14.jar v. 10.2.0.3.0
Client JVM: J2RE, Standard Edition (build 1.5.0_06-b05) Java HotSpot(TM)
Client VM (build 1.5.0_06-b05, mixed mode).
Platform: Client: Windows XP Pro 2002 SP2; Server: Suse Enterprise Linux v.
10.
The exception I am getting is:
2008/02/22 14:59:31 WARN - jmeter.protocol.jdbc.config.DataSourceElement:
Could not close connection java.sql.SQLException: Protocol violation
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)
at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:149)
at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:464)
at
oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:1202)
at
org.apache.avalon.excalibur.datasource.AbstractJdbcConnection.dispose(Abstra
ctJdbcConnection.java:317)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.avalon.excalibur.datasource.AbstractJdbcConnection.invoke(Abstrac
tJdbcConnection.java:357)
at $Proxy0.dispose(Unknown Source)
at
org.apache.avalon.excalibur.datasource.JdbcConnectionFactory.decommission(Jd
bcConnectionFactory.java:248)
at
org.apache.avalon.excalibur.pool.ResourceLimitingPool.removePoolable(Resourc
eLimitingPool.java:697)
at
org.apache.avalon.excalibur.pool.ResourceLimitingPool.permanentlyRemovePoola
ble(ResourceLimitingPool.java:639)
at
org.apache.avalon.excalibur.pool.ResourceLimitingPool.dispose(ResourceLimiti
ngPool.java:518)
at
org.apache.avalon.excalibur.datasource.ResourceLimitingJdbcDataSource.dispos
e(ResourceLimitingJdbcDataSource.java:442)
at
org.apache.jmeter.protocol.jdbc.config.DataSourceElement.testEnded(DataSourc
eElement.java:75)
at
org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfEnd(Stand
ardJMeterEngine.java:246)
at
org.apache.jmeter.engine.StandardJMeterEngine$StopTest.run(StandardJMeterEng
ine.java:321)
at java.lang.Thread.run(Thread.java:595)
Here is how we've discussed it so far, on the JMeter user forum:-
http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-user/200802.mbox/aja
x/[EMAIL PROTECTED]
(cut and paste link into a browser).
Thanks in anticipation of your help.
Regards,
Simon Payne
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]