My gateway (Ignition 8.1.10) has two database connections: the Sample_SQLite_Database and Test_Tag_DB. The databases have worked very well for a while, but have recently faulted with the following message:
java.lang.ClassNotFoundException: org.apache.commons.dbcp2.BasicDataSourceFactory at java.base/java.net.URLClassLoader.findClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) at com.inductiveautomation.ignition.gateway.IgnitionGateway.createDataSource(IgnitionGateway.java:2772) at com.inductiveautomation.ignition.gateway.datasource.DatasourceImpl.<init>(DatasourceImpl.java:198) at com.inductiveautomation.ignition.gateway.datasource.DatasourceManagerImpl.installDatasource(DatasourceManagerImpl.java:464) at com.inductiveautomation.ignition.gateway.datasource.DatasourceManagerImpl.addAll(DatasourceManagerImpl.java:442) at com.inductiveautomation.ignition.gateway.datasource.DatasourceManagerImpl.startup(DatasourceManagerImpl.java:370) at com.inductiveautomation.ignition.gateway.IgnitionGateway.startupInternal(IgnitionGateway.java:1204) at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.startup(RedundancyManagerImpl.java:290) at com.inductiveautomation.ignition.gateway.IgnitionGateway.initRedundancy(IgnitionGateway.java:732) at com.inductiveautomation.ignition.gateway.IgnitionGateway.lambda$initInternal$0(IgnitionGateway.java:666) at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:539) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source)
My best guess as to what happened here is that you or somebody else deleted the commons-* JAR files from the $IGNITION/user-lib/jdbc folder. Can you confirm this?
Well, looks like there's only ~12 hours of logging there, and it doesn't include the last gateway startup, which is when that error occurred. If you can restart and get the logs that might help.
Otherwise call support and they'll probably be able to get more information and verify the install checks out and hopefully help you.
14:46:32 | java.io.IOException: Unable to delete file: temp/jdbc/commons-dbcp2-2.5.02033489711022934966.jar
14:46:32 | at com.inductiveautomation.ignition.gateway.bootstrap.BootstrapFileUtils.forceDelete(BootstrapFileUtils.java:158)
14:46:32 | at com.inductiveautomation.ignition.gateway.bootstrap.BootstrapFileUtils.cleanDirectory(BootstrapFileUtils.java:123)
14:46:32 | at com.inductiveautomation.ignition.gateway.bootstrap.BootstrapFileUtils.deleteDirectory(BootstrapFileUtils.java:174)
14:46:32 | at com.inductiveautomation.ignition.gateway.bootstrap.BootstrapFileUtils.forceDelete(BootstrapFileUtils.java:150)
14:46:32 | at com.inductiveautomation.ignition.gateway.bootstrap.BootstrapFileUtils.cleanDirectory(BootstrapFileUtils.java:123)
14:46:32 | at com.inductiveautomation.ignition.gateway.bootstrap.GatewayFilter.init(GatewayFilter.java:49)
14:46:32 | at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
14:46:32 | at org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:140)
14:46:32 | at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$0(ServletHandler.java:731)
14:46:32 | at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)
14:46:32 | at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Unknown Source)
14:46:32 | at java.base/java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)
14:46:32 | at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:755)
14:46:32 | at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:379)
14:46:32 | at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1449)
14:46:32 | at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1414)
14:46:32 | at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:910)
14:46:32 | at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288)
14:46:32 | at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
14:46:32 | at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
14:46:32 | at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
14:46:32 | at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
14:46:32 | at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
14:46:32 | at com.inductiveautomation.catapult.handlers.RemoteHostNameLookupHandler.doStart(RemoteHostNameLookupHandler.java:55)
14:46:32 | at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
14:46:32 | at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
14:46:32 | at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
14:46:32 | at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
14:46:32 | at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
14:46:32 | at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
14:46:32 | at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
14:46:32 | at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
14:46:32 | at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
14:46:32 | at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
14:46:32 | at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
14:46:32 | at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
14:46:32 | at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
14:46:32 | at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
14:46:32 | at org.eclipse.jetty.server.Server.start(Server.java:423)
14:46:32 | at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
14:46:32 | at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
14:46:32 | at org.eclipse.jetty.server.Server.doStart(Server.java:387)
14:46:32 | at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
14:46:32 | at com.inductiveautomation.catapult.IgnitionServer.start(IgnitionServer.java:1177)
14:46:32 | at com.inductiveautomation.ignition.gateway.web.WebResourceManagerImpl.start(WebResourceManagerImpl.java:325)
14:46:32 | at com.inductiveautomation.ignition.gateway.IgnitionGateway.start(IgnitionGateway.java:560)
14:46:32 | at com.inductiveautomation.ignition.gateway.IgnitionGateway.main(IgnitionGateway.java:294)
14:46:32 | at com.inductiveautomation.catapult.Catapult.main(Catapult.java:8)
14:46:32 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
14:46:32 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
14:46:32 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
14:46:32 | at java.base/java.lang.reflect.Method.invoke(Unknown Source)
14:46:32 | at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:349)
14:46:32 | at java.base/java.lang.Thread.run(Unknown Source)
or maybe it's /usr/local/temp? not sure if that path is relative...