EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
<== Date ==> <== Thread ==>

Subject: Re: Installation of EPICS archiver on a single Centos7 machine
From: Jörn Dreyer via Tech-talk <tech-talk at aps.anl.gov>
To: tech-talk at aps.anl.gov
Date: Fri, 07 Feb 2025 14:58:58 +0100
Hi Andrea,

yes this error is well known. I stumbled across that some years ago when I did my first archiver installation.
You forgot to download and install the mysql-connector jar file relevant for your mysql version.
It needs to be placed in the tomcat folder. Check the documentation of the archiver for the exact location.
 
Hope this helps,

Jörn

Am Freitag, 7. Februar 2025, 14:50:57 Mitteleuropäische Normalzeit schrieb Andrea Celentano via Tech-talk:
> Dear colleagues,
> 
> I am currently developing the slow-controls system for a small-scale 
> experiment (~ 100 PVs), and I'd like to use the EPICS archiver to 
> properly track them.
> 
> I am using the following setup:
> 
> * Centos7 machine (I cannot change this at the moment)
> 
> * Java JDK version 16.0.2
> 
> * Archiver release 2.0.5 
> (https://urldefense.us/v3/__https://github.com/archiver-appliance/epicsarchiverap/releases/tag/2.0.5__;!!G_uCfscf7eWS!dfP3pgsViV5i5uqOcqz-MWHrFko78Ypy28FydNixfzs_o8UBmRRyBJPjpqZGCwptaFyl7HX0PwxiW6n-WE7VLlepoB0sdgprJNw$ )
> 
> * Tomcat version apache-tomcat-9.0.20
> 
> * mysql connector version 5.1.21
> 
> Following the guide 
> (https://urldefense.us/v3/__https://epicsarchiver.readthedocs.io/en/latest/sysadmin/installguide.html__;!!G_uCfscf7eWS!dfP3pgsViV5i5uqOcqz-MWHrFko78Ypy28FydNixfzs_o8UBmRRyBJPjpqZGCwptaFyl7HX0PwxiW6n-WE7VLlepoB0seOqUtEE$ ), 
> I am using the script "single_machine_install.sh". Everything goes well, 
> I obtain the script "sampleStartup.sh" in the folder where Tomcat 
> Instances are located.
> 
> If I execute it, and then I open the file "mgmt/logs/catalina.err", I 
> see the following error. and the archiver does not start.
> 
> ...
> 
> java.sql.SQLException: Unable to load class: com.mysql.jdbc.Driver from 
> ClassLoader:java.net.URLClassLoader@4617c264;ClassLoader:ParallelWebappClassLoader
>    context: mgmt
>    delegate: false
> ----------> Parent Classloader:
> java.net.URLClassLoader@4617c264
> 
>      at 
> org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:292)
>      at 
> org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:212)
>      at 
> org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:744)
>      at 
> org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:676)
>      at 
> org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:483)
>      at 
> org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:154)
>      at 
> org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118)
>      at 
> org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:107)
>      at 
> org.apache.tomcat.jdbc.pool.DataSourceFactory.createDataSource(DataSourceFactory.java:560)
>      at 
> org.apache.tomcat.jdbc.pool.DataSourceFactory.getObjectInstance(DataSourceFactory.java:244)
>      at 
> org.apache.naming.factory.FactoryBase.getObjectInstance(FactoryBase.java:94)
>      at 
> java.naming/javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:341)
>      at org.apache.naming.NamingContext.lookup(NamingContext.java:840)
>      at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
>      at org.apache.naming.NamingContext.lookup(NamingContext.java:827)
>      at org.apache.naming.NamingContext.lookup(NamingContext.java:173)
>      at 
> org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1017)
>      at 
> org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:557)
>      at 
> org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:253)
>      at 
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
>      at 
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5048)
>      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>      at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713)
>      at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
>      at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
>      at 
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
>      at 
> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1849)
>      at 
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
>      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>      at 
> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>      at 
> java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
>      at 
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773)
>      at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
>      at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
>      at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
>      at 
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
>      at 
> org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
>      at 
> org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
>      at 
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:929)
>      at 
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
>      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>      at 
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377)
>      at 
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1367)
>      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>      at 
> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>      at 
> java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
>      at 
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902)
>      at 
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
>      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>      at 
> org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
>      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>      at 
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:932)
>      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>      at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
>      at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method)
>      at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
>      at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>      at java.base/java.lang.reflect.Method.invoke(Method.java:567)
>      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:344)
>      at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method)
>      at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
>      at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>      at java.base/java.lang.reflect.Method.invoke(Method.java:567)
>      at 
> org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:241)
> Caused by: java.lang.ClassNotFoundException: Unable to load class: 
> com.mysql.jdbc.Driver from 
> ClassLoader:java.net.URLClassLoader@4617c264;ClassLoader:ParallelWebappClassLoader
> ...
> 
> Has anyone ever seen this?
> 
> Thanks,
> 
> Andrea
> 
> 
> 
> 
> 



Replies:
Re: Installation of EPICS archiver on a single Centos7 machine Andrea Celentano via Tech-talk
References:
Installation of EPICS archiver on a single Centos7 machine Andrea Celentano via Tech-talk

Navigate by Date:
Prev: Installation of EPICS archiver on a single Centos7 machine Andrea Celentano via Tech-talk
Next: Re: Installation of EPICS archiver on a single Centos7 machine Wang, Lin via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
Navigate by Thread:
Prev: Installation of EPICS archiver on a single Centos7 machine Andrea Celentano via Tech-talk
Next: Re: Installation of EPICS archiver on a single Centos7 machine Andrea Celentano via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
ANJ, 07 Feb 2025 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions ·
· Download · Search · IRMIS · Talk · Documents · Links · Licensing ·