Why do I get a "Unexpected error in pingDatabase java.lang.IllegalArgumentException: object is not an instance of declaring class" ?
Issue
-
While trying to configure our datasource (Oracle connection pool) to validate connections, It throws "IllegalArgumentException"
-
The DataSource is configured as below:
<jndi-name>eDataDS</jndi-name>
<connection-url>jdbc:oracle:thin:@server:1521:database</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>userid</user-name>
<password>XXXXXXXXX</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>20</max-pool-size>
<!-- Uses the pingDatabase method to check a connection is
still valid before handing it out from the pool
-->
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name>
<!-- Checks the Oracle error codes and messages for fatal errors -->
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<!-- sql to call when connection is created . -->
<new-connection-sql>select 1 from dual</new-connection-sql>
<!-- sql to call on an existing pooled connection
when it is obtained from pool - the OracleValidConnectionChecker is prefered -->
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>
- But the following error is observed in the logs:
WARN [org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker] (main) Unexpected error in pingDatabase
java.lang.IllegalArgumentException: object is not an instance of declaring class
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:597)
at org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker.isValidConnection(OracleValidConnectionChecker.java:70)
at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnectionFactory.isValidConnection(BaseWrapperManagedConnectionFactory.java:570)
at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.checkValid(BaseWrapperManagedConnection.java:364)
at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.matchManagedConnections(LocalManagedConnectionFactory.java:402)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:225)
at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:689)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:404)
at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:424)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:496)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941)
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89)
Environment
- Red Hat JBoss Enterprise Appliaction Platform (EAP)
- 4.3
- 5.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.