Why do I get a "Unexpected error in pingDatabase java.lang.IllegalArgumentException: object is not an instance of declaring class" ?

Solution Unverified - Updated -

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.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content