3 Replies Latest reply on Nov 19, 2015 3:22 PM by Steven Hawkins

    TEIID20018 and Class not found sun.util.calendar.ZoneInfo when installing teiid jdbc driver in wildfly 9

    gadeyne.bram Master

      Hi,

       

      I'm trying to install a jdbc datasource in wildfly 9 But I get some strange errors that do not make sence to me.

       

      I've create a module in /wildflyinstall/modules/system/layers/base/org/jboss/teiid/client/main

       

      It contains the jdbc driver teiid-8.11.3-jdbc.jar and module.xml

       

      The content of this module.xml file is:

      <?xml version="1.0" ?>

      <module xmlns="urn:jboss:module:1.1" name="org.jboss.teiid.client">

          <resources>

              <resource-root path="teiid-8.11.3-jdbc.jar"/>

          </resources>

       

          <dependencies>

              <module name="javax.api"/>

              <module name="javax.transaction.api"/>

          </dependencies>

      </module>

       

      In my standalone.xml file I have this configuration:

       

      <datasource jndi-name="java:/teiidds" pool-name="teiidds">

                              <connection-url>jdbc:teiid:vdb3@mm://vwodan:31000</connection-url>

                              <driver>teiid</driver>

                              <pool>

                                  <prefill>false</prefill>

                                  <use-strict-min>false</use-strict-min>

                                  <flush-strategy>FailingConnectionOnly</flush-strategy>

                              </pool>

                              <security>

                                  <user-name>xxx</user-name>

                                  <password>xxx</password>

                              </security>

      </datasource>

       

      I've also tried this configuration but it results in the same error:

       

      <xa-datasource jndi-name="java:/teiidds" pool-name="teiidds" enabled="true" use-ccm="true">

                          <xa-datasource-property name="ServerName">

                              vwodan

                          </xa-datasource-property>

                          <xa-datasource-property name="DatabaseName">

                              vdb3

                          </xa-datasource-property>

                          <xa-datasource-property name="PortNumber">

                              31000

                          </xa-datasource-property>

                          <driver>teiid</driver>

                          <xa-pool>

                              <min-pool-size>2</min-pool-size>

                              <max-pool-size>10</max-pool-size>

                              <prefill>false</prefill>

                              <use-strict-min>false</use-strict-min>

                              <flush-strategy>FailingConnectionOnly</flush-strategy>

                              <is-same-rm-override>true</is-same-rm-override>

                              <no-tx-separate-pools>true</no-tx-separate-pools>

                          </xa-pool>

                          <security>

                              <user-name>xxx</user-name>

                              <password>xxx</password>

                          </security>

      </xa-datasource>

       

      Under the drivers tag I have this:

       

      <driver name="teiid" module="org.jboss.teiid.client">

                              <driver-class>org.teiid.jdbc.TeiidDriver</driver-class>

                              <xa-datasource-class>org.teiid.jdbc.TeiidDataSource</xa-datasource-class>

      </driver>

       

      My Application runs a Runnable that is periodically executed in a ManagedScheduledExecutorService

       

      @Resource(lookup="java:/teiidds")

      private DataSource teiidds;

       

      Each time the method teiidds.getConnection() is called, it gives the following stacktrace.

       

      SEVERE [org.teiid.jdbc] (EE-ManagedScheduledExecutorService-izalertingScheduledExecutorService-Thread-1) Could not create connection: org.teiid.jdbc.TeiidSQLException: TEIID20018 Unable to find a component used authenticate on to Teiid

              at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)

              at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71)

              at org.teiid.jdbc.SocketProfile.connect(SocketProfile.java:66)

              at org.teiid.jdbc.TeiidDriver.connect(TeiidDriver.java:107)

              at org.teiid.jdbc.TeiidDriver.connect(TeiidDriver.java:55)

              at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:312)

              at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:343)

              at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:278)

              at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.createConnectionEventListener(SemaphoreArrayListManagedConnectionPool.java:1289)

              at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:492)

              at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:627)

              at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:599)

              at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:579)

              at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:430)

              at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:737)

              at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:138)

              at org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:67)

              at be.uzgent.iz.alerting.queryexecutor.AlertQueryExecutor.executeTeiidQuery(AlertQueryExecutor.java:162)

              at be.uzgent.iz.alerting.queryexecutor.AlertQueryExecutor.run(AlertQueryExecutor.java:58)

              at be.uzgent.iz.alerting.queryexecutor.AlertQueryExecutor$Proxy$_$$_WeldClientProxy.run(Unknown Source)

              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

              at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)

              at org.glassfish.enterprise.concurrent.internal.ManagedScheduledThreadPoolExecutor$ManagedScheduledFutureTask.access$201(ManagedScheduledThreadPoolExecutor.java:383)

              at org.glassfish.enterprise.concurrent.internal.ManagedScheduledThreadPoolExecutor$ManagedScheduledFutureTask.run(ManagedScheduledThreadPoolExecutor.java:534)

              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

              at java.lang.Thread.run(Thread.java:745)

              at org.glassfish.enterprise.concurrent.ManagedThreadFactoryImpl$ManagedThread.run(ManagedThreadFactoryImpl.java:250)

      Caused by: org.teiid.net.CommunicationException: TEIID20018 Unable to find a component used authenticate on to Teiid

              at org.teiid.net.socket.SocketServerConnection.selectServerInstance(SocketServerConnection.java:147)

              at org.teiid.net.socket.SocketServerConnection.<init>(SocketServerConnection.java:95)

              at org.teiid.net.socket.SocketServerConnectionFactory.getConnection(SocketServerConnectionFactory.java:316)

              at org.teiid.jdbc.SocketProfile.connect(SocketProfile.java:64)

              ... 25 more

      Caused by: org.teiid.core.TeiidComponentException: TEIID10006 Decryption failed: java.lang.ClassNotFoundException   sun.util.calendar.ZoneInfo from [Module "org.jboss.teiid.client:main" from local module loader @707f7052 (finder: local module finder @11028347 (roots: /usr/lib/wildfly-9.0.2.Final/modules,/usr/lib/wildfly-9.0.2.Final/modules/system/layers/base))]

              at org.teiid.client.util.ExceptionUtil.convertException(ExceptionUtil.java:65)

              at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler.invoke(SocketServerInstanceImpl.java:424)

              at com.sun.proxy.$Proxy71.logon(Unknown Source)

              at org.teiid.net.socket.SocketServerConnection.logon(SocketServerConnection.java:180)

              at org.teiid.net.socket.SocketServerConnection.selectServerInstance(SocketServerConnection.java:128)

              ... 28 more

      Caused by: org.teiid.core.crypto.CryptoException: TEIID10006 Decryption failed: java.lang.ClassNotFoundException   sun.util.calendar.ZoneInfo from [Module "org.jboss.teiid.client:main" from local module loader @707f7052 (finder: local module finder @11028347 (roots: /usr/lib/wildfly-9.0.2.Final/modules,/usr/lib/wildfly-9.0.2.Final/modules/system/layers/base))]

              at org.teiid.core.crypto.BasicCryptor.unsealObject(BasicCryptor.java:181)

              at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.convertResult(SocketServerInstanceImpl.java:376)

              at org.teiid.client.util.ResultsFuture.get(ResultsFuture.java:120)

              at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:407)

              at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler.invoke(SocketServerInstanceImpl.java:416)

              ... 31 more

       

       

      I'm using an oracle jdk so I would suppose that the sun.util.calendar.ZoneInfo class is available. But still it does not make sence that is complains about TEIID20018

       

      With kind regard

      Bram