Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-3205

For xa-datasource testConnection should account for deployment classloader

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 8.1.0.Final
    • 8.1.0.CR1
    • JCA
    • None

    Description

      • The fix mentioned in https://issues.jboss.org/browse/WFLY-2047 is resolves the issue for plain Non-XA dataSources. However if an XA-DataSource is configured with the "ldap" based database connection URL then it fails with the following Error:
      13:49:41,399 ERROR [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodic Recovery) IJ000906: Error during crash recovery: java:/OracleXA_DS (Could not create connection): javax.resource.ResourceException: Could not create connection
      	at org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory.getXAManagedConnection(XAManagedConnectionFactory.java:461)
      	at org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory.createManagedConnection(XAManagedConnectionFactory.java:398)
      	at org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl.open(XAResourceRecoveryImpl.java:343)
      	at org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl.getXAResources(XAResourceRecoveryImpl.java:170)
      	at com.arjuna.ats.internal.jbossatx.jta.XAResourceRecoveryHelperWrapper.getXAResources(XAResourceRecoveryHelperWrapper.java:51) [narayana-jts-integration-5.0.0.Final.jar:5.0.0.Final (revision: 9aa71)]
      	at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.resourceInitiatedRecoveryForRecoveryHelpers(XARecoveryModule.java:516) [narayana-jts-jacorb-5.0.0.Final.jar:5.0.0.Final (revision: 9aa71)]
      	at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:182) [narayana-jts-jacorb-5.0.0.Final.jar:5.0.0.Final (revision: 9aa71)]
      	at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:743) [narayana-jts-jacorb-5.0.0.Final.jar:5.0.0.Final (revision: 9aa71)]
      	at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371) [narayana-jts-jacorb-5.0.0.Final.jar:5.0.0.Final (revision: 9aa71)]
      Caused by: java.sql.SQLRecoverableException: Io exception: JNDI Package failurejavax.naming.NamingException: JBAS011843: Failed instantiate InitialContextFactory com.sun.jndi.ldap.LdapCtxFactory from classloader ModuleClassLoader for Module "org.jboss.jts:main" from local module loader @3b70c (finder: local module finder @1e6a820 (roots: /home/userone/XA_DS/wildfly-8.0.1.Final-SNAPSHOT/modules,/home/userone/XA_DS/wildfly-8.0.1.Final-SNAPSHOT/modules/system/layers/base)) [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.ldap.LdapCtxFactory from [Module "org.jboss.jts:main" from local module loader @3b70c (finder: local module finder @1e6a820 (roots: /home/userone/XA_DS/wildfly-8.0.1.Final-SNAPSHOT/modules,/home/userone/XA_DS/wildfly-8.0.1.Final-SNAPSHOT/modules/system/layers/base))]]
      	at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:101)
      	at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
      	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
      	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:229)
      	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:458)
      	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411)
      	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:490)
      	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:202)
      	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
      	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:474)
      	at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:275)
      	at oracle.jdbc.xa.client.OracleXADataSource.getPooledConnection(OracleXADataSource.java:454)
      	at oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:159)
      	at oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:130)
      	at org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory.getXAManagedConnection(XAManagedConnectionFactory.java:444)
      	... 8 morec
      
      • The XA dataSource configuration looks like following:
              <subsystem xmlns="urn:jboss:domain:datasources:2.0">
                  <datasources>
                      <xa-datasource jndi-name="java:/OracleXA_DS" pool-name="OracleXA_DS" enabled="true">
                          <xa-datasource-property name="ServerName">
                              example.com
                          </xa-datasource-property>
                          <xa-datasource-property name="DatabaseName">
                              TestDB
                          </xa-datasource-property>
                          <xa-datasource-property name="URL">
                              jdbc:oracle:thin:@ldap://example.com:3060/test,cn=OracleA,dc=worldA
                          </xa-datasource-property>
                          <xa-datasource-class&gt;oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class&gt;
                          <driver>oracle</driver>
                          <security>
                              <user-name>jboss</user-name>
                              <password>jboss</password>
                          </security>
                      </xa-datasource>
                      <drivers>
                          <driver name="oracle" module="com.oracle.jdbc6"/>
                      </drivers>
                  </datasources>
              </subsystem>
      
      • When the above datasource is tested via CLI like following then aht above mentioned error is noticed:
      /subsystem=datasources/xa-data-source=OracleXA_DS:test-connection-in-pool
      

      Attachments

        Activity

          People

            jaysensharma Jay SenSharma (Inactive)
            jaysensharma Jay SenSharma (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: