10.80 Central does not successfully start up and the UI fails to open due to an exception at net.sourceforge.jtds.jdbc.JtdsConnection.isValid

  • KM03062069
  • 25-Dec-2017
  • 21-May-2021

Summary

10.80 Central fails to start up if db.validateQuery is empty.

Error

Even though OO 10.80 Central started and a java process of the Central existed, the Central UI failed to open and wrapper.log of the Central contained the following exception:

INFO   | jvm 1    | 2017/12/DD 17:25:11 | SEVERE: Exception sending context initialized event to listener instance of class liquibase.integration.servlet.LiquibaseServletListener
INFO   | jvm 1    | 2017/12/DD 17:25:11 | java.lang.AbstractMethodError
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at net.sourceforge.jtds.jdbc.JtdsConnection.isValid(JtdsConnection.java:2812)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:916)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.tomcat.dbcp.dbcp2.PoolableConnection.validate(PoolableConnection.java:282)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:357)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2307)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2290)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2038)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1532)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at java.lang.reflect.Method.invoke(Method.java:498)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at net.bull.javamelody.JdbcWrapper$3.invoke(JdbcWrapper.java:765)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at net.bull.javamelody.JdbcWrapper$DelegatingInvocationHandler.invoke(JdbcWrapper.java:285)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at com.sun.proxy.$Proxy5.getConnection(Unknown Source)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at liquibase.integration.servlet.LiquibaseServletListener.executeUpdate(LiquibaseServletListener.java:214)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at liquibase.integration.servlet.LiquibaseServletListener.contextInitialized(LiquibaseServletListener.java:118)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4853)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1816)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
INFO   | jvm 1    | 2017/12/DD 17:25:11 |  at java.lang.Thread.run(Thread.java:748)

Cause

The exception was thrown due to an unexpected behavior of jtds(a jdbc driver used for SQL Server 2008R2 or 2012) and dbcp(a database connection pooling implementation) when the 'db.validateQuery' setting was missing or its value was empty.

Fix

Check whether the db.validateQuery setting in database.properties is missing or its value is empty. If so, set 'SELECT 1' to the setting for SQL Server and restart Central.