TEIID20018 and Class not found sun.util.calendar.ZoneInfo when installing teiid jdbc driver in wildfly 9
gadeyne.bram Nov 19, 2015 5:20 AMHi,
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