Hallo,

ich habe seit vielen Jahren einen Tomcat-Server (Version 7.0) mit Standard ConnectionPooling (DBCP) laufen. Das ConnectionPooling hat mit dem neuesten jt400-Treiber (jtopen Version 9.1) auch problemlos funktioniert.
Jetzt wollte ich auf einen Tomcat Version 8.5.3 umstellen. Ansonsten ist die Konfiguration gleich geblieben. Dabei habe ich festgestellt, dass hier nun DBCP2 verwendet wird, was angeblich nur mit einem JDBC Version 4 Treiber funktioniert. Laut utilities.AboutToolbox des jt400 handelt es sich beim neuesten JDBC-Treiber aber um einen Version 3 Treiber.

Auf jeden Fall erhalte ich beim Starten des Tomcat folgenden Fehler:

Code:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/DataQueue_Server]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1107)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1841)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.AbstractMethodError: com.ibm.as400.access.AS400JDBCConnection.isValid(I)Z
	at org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:925)
	at org.apache.tomcat.dbcp.dbcp2.PoolableConnection.validate(PoolableConnection.java:282)
	at org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:359)
	at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2316)
	at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2299)
	at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2043)
	at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getLogWriter(BasicDataSource.java:1598)
	at org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:596)
	at org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory.getObjectInstance(BasicDataSourceFactory.java:275)
	at org.apache.naming.factory.FactoryBase.getObjectInstance(FactoryBase.java:94)
	at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:840)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:160)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:828)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:174)
	at org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1089)
	at org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:659)
	at org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:252)
	at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1110)
	at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5076)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
	... 10 more
Ich vermute jetzt mal ganz stark, dass die Kombination DBCP2 mit jt400 nicht funktioniert.

Hat jemand von Euch auch solche Erfahrungen gemacht? Liege ich mit meiner Vermutung richtig? Wie kann ich mein Problem nun beheben?

Vielen Dank schon mal,
KM