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 of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
