{"id":41223,"date":"2025-10-26T11:06:00","date_gmt":"2025-10-26T10:06:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=41223"},"modified":"2025-10-25T12:17:58","modified_gmt":"2025-10-25T10:17:58","slug":"alfresco-when-a-jdbc-driver-breaks-after-years-of-stability","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/","title":{"rendered":"Alfresco \u2013 When a JDBC driver breaks after years of stability"},"content":{"rendered":"\n<p>A customer recently contacted us regarding an issue with an old Alfresco Enterprise 4.2.2 environment. The system had been running stably for years, with a nightly restart of the Tomcat\/Alfresco service to help recycle the memory and fix long-standing issues in this version. Earlier this week, one of these nightly restarts suddenly failed and since then, Alfresco would completely refuse to start. Unfortunately, that was on Production, so it was rather important! Yes, it is a very old version of Alfresco (on an old OS as well, obviously), but the customer doesn&#8217;t want to upgrade or patch it, so it was left as is since its installation by another company that isn&#8217;t around anymore.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-error\">The error<\/h2>\n\n\n\n<p>When reviewing the Tomcat logs, the startup sequence looked normal until Alfresco attempted to initialize Hibernate and connect to its MySQL database. Here is the relevant part of the log with the error:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; highlight: [21,22,61,66,84,87,91]; title: ; notranslate\" title=\"\">\noct. 22, 2025 5:45:37 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent\nINFOS: Loaded APR based Apache Tomcat Native library 1.1.33 using APR version 1.4.6.\noct. 22, 2025 5:45:37 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent\nINFOS: APR capabilities: IPv6 &#x5B;true], sendfile &#x5B;true], accept filters &#x5B;false], random &#x5B;true].\noct. 22, 2025 5:45:37 AM org.apache.catalina.core.AprLifecycleListener initializeSSL\nINFOS: OpenSSL successfully initialized (OpenSSL 0.9.8y 5 Feb 2013)\noct. 22, 2025 5:45:37 AM org.apache.coyote.AbstractProtocol init\nINFOS: Initializing ProtocolHandler &#x5B;&quot;http-apr-8080&quot;]\noct. 22, 2025 5:45:37 AM org.apache.coyote.AbstractProtocol init\nINFOS: Initializing ProtocolHandler &#x5B;&quot;ajp-apr-8009&quot;]\noct. 22, 2025 5:45:37 AM org.apache.coyote.AbstractProtocol init\nINFOS: Initializing ProtocolHandler &#x5B;&quot;http-bio-8443&quot;]\noct. 22, 2025 5:45:37 AM org.apache.catalina.startup.Catalina load\nINFOS: Initialization processed in 995 ms\n...\n2025-10-22 05:46:15,118  INFO  &#x5B;alfresco.repo.admin] &#x5B;localhost-startStop-1] Using database URL &#039;jdbc:mysql:\/\/localhost:3306\/alfresco?autoReconnect=true&#039; with user &#039;alfresco&#039;.\n2025-10-22 05:46:15,491  INFO  &#x5B;alfresco.repo.admin] &#x5B;localhost-startStop-1] Connected to database MySQL version 5.6.28-log\n2025-10-22 05:46:21,836  INFO  &#x5B;management.subsystems.ChildApplicationContextFactory] &#x5B;localhost-startStop-1] Starting &#039;sysAdmin&#039; subsystem, ID: &#x5B;sysAdmin, default]\n2025-10-22 05:46:21,863  INFO  &#x5B;management.subsystems.ChildApplicationContextFactory] &#x5B;localhost-startStop-1] Startup of &#039;sysAdmin&#039; subsystem, ID: &#x5B;sysAdmin, default] complete\n2025-10-22 05:46:21,902  INFO  &#x5B;domain.schema.SchemaBootstrap] &#x5B;localhost-startStop-1] Ignoring script patch (post-Hibernate): patch.db-V4.2-metadata-query-indexes\n2025-10-22 05:46:31,210  WARN  &#x5B;hibernate.cfg.SettingsFactory] &#x5B;localhost-startStop-1] Could not obtain connection metadata\norg.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (java.lang.NullPointerException)\n        at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)\n        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)\n        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)\n        at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)\n        at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)\n        at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2079)\n        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1304)\n        at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:860)\n        at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:779)\n        at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)\n        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)\n        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)\n        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)\n        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)\n        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563)\n        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)\n        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)\n        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)\n        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)\n        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)\n        at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)\n        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5068)\n        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584)\n        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)\n        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)\n        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)\n        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)\n        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092)\n        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1984)\n        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n        at java.util.concurrent.FutureTask.run(FutureTask.java:262)\n        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n        at java.lang.Thread.run(Thread.java:745)\nCaused by: java.sql.SQLException: java.lang.NullPointerException\n        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)\n        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)\n        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)\n        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)\n        at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1023)\n        at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3451)\n        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2443)\n        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2213)\n        at com.mysql.jdbc.ConnectionImpl.&lt;init&gt;(ConnectionImpl.java:797)\n        at com.mysql.jdbc.JDBC4Connection.&lt;init&gt;(JDBC4Connection.java:47)\n        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)\n        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)\n        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)\n        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)\n        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)\n        at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)\n        at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)\n        at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)\n        at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)\n        ... 37 more\nCaused by: java.lang.NullPointerException\n        at java.util.TreeMap.put(TreeMap.java:556)\n        at com.mysql.jdbc.Util.resultSetToMap(Util.java:506)\n        at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:964)\n        ... 53 more\n2025-10-22 05:46:31,597  INFO  &#x5B;management.subsystems.ChildApplicationContextFactory] &#x5B;localhost-startStop-1] Stopping &#039;sysAdmin&#039; subsystem, ID: &#x5B;sysAdmin, default]\n2025-10-22 05:46:31,597  INFO  &#x5B;management.subsystems.ChildApplicationContextFactory] &#x5B;localhost-startStop-1] Stopped &#039;sysAdmin&#039; subsystem, ID: &#x5B;sysAdmin, default]\n2025-10-22 05:46:31,607  ERROR &#x5B;web.context.ContextLoader] &#x5B;localhost-startStop-1] Context initialization failed\norg.springframework.beans.factory.BeanCreationException: Error creating bean with name &#039;extranetDialectResourceLoader&#039; defined in class path resource &#x5B;alfresco\/extension\/context\/typo3-context.xml]: Cannot create inner bean &#039;org.springframework.beans.factory.config.PropertyPathFactoryBean#70397d85&#039; of type &#x5B;org.springframework.beans.factory.config.PropertyPathFactoryBean] while setting bean property &#039;dialectClass&#039;; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#039;org.springframework.beans.factory.config.PropertyPathFactoryBean#70397d85&#039; defined in class path resource &#x5B;alfresco\/extension\/context\/typo3-context.xml]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#039;extranetDialect&#039;: FactoryBean threw exception on object creation; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection\n        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281)\n        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:120)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)\n        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)\n        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)\n        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)\n        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)\n        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)\n        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)\n        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)\n        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)\n        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)\n        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)\n        at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)\n        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5068)\n        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584)\n        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)\n        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)\n        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)\n        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)\n        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092)\n        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1984)\n        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n        at java.util.concurrent.FutureTask.run(FutureTask.java:262)\n        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n        at java.lang.Thread.run(Thread.java:745)\nCaused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#039;org.springframework.beans.factory.config.PropertyPathFactoryBean#70397d85&#039; defined in class path resource &#x5B;alfresco\/extension\/context\/typo3-context.xml]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#039;extranetDialect&#039;: FactoryBean threw exception on object creation; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)\n        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270)\n        ... 29 more\nCaused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#039;extranetDialect&#039;: FactoryBean threw exception on object creation; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection\n        at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)\n        at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)\n        at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1429)\n        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:245)\n        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)\n        at org.springframework.beans.factory.config.PropertyPathFactoryBean.setBeanFactory(PropertyPathFactoryBean.java:186)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1439)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1408)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)\n        ... 31 more\nCaused by: org.hibernate.exception.GenericJDBCException: Cannot open connection\n        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)\n        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)\n        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)\n        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)\n        at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)\n        at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)\n        at org.hibernate.jdbc.BorrowedConnectionProxy.invoke(BorrowedConnectionProxy.java:150)\n        at com.sun.proxy.$Proxy5.setAutoCommit(Unknown Source)\n        at org.alfresco.hibernate.DialectFactoryBean.getObject(DialectFactoryBean.java:67)\n        at org.alfresco.hibernate.DialectFactoryBean.getObject(DialectFactoryBean.java:39)\n        at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)\n        ... 39 more\nCaused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (java.lang.NullPointerException)\n        at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)\n        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)\n        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)\n        at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)\n        at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)\n        ... 45 more\nCaused by: java.sql.SQLException: java.lang.NullPointerException\n        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)\n        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)\n        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)\n        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)\n        at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1023)\n        at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3451)\n        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2443)\n        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2213)\n        at com.mysql.jdbc.ConnectionImpl.&lt;init&gt;(ConnectionImpl.java:797)\n        at com.mysql.jdbc.JDBC4Connection.&lt;init&gt;(JDBC4Connection.java:47)\n        at sun.reflect.GeneratedConstructorAccessor103.newInstance(Unknown Source)\n        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)\n        at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)\n        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)\n        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)\n        at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)\n        at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)\n        at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)\n        at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)\n        ... 49 more\nCaused by: java.lang.NullPointerException\n        at java.util.TreeMap.put(TreeMap.java:556)\n        at com.mysql.jdbc.Util.resultSetToMap(Util.java:506)\n        at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:964)\n        ... 64 more\noct. 22, 2025 5:46:31 AM org.apache.catalina.core.StandardContext listenerStart\nGRAVE: Exception lors de l&#039;envoi de l&#039;\u00e9v\u00e8nement contexte initialis\u00e9 (context initialized) \u00e0 l&#039;instance de classe d&#039;\u00e9coute (listener) org.alfresco.web.app.ContextLoaderListener\norg.springframework.beans.factory.BeanCreationException: Error creating bean with name &#039;extranetDialectResourceLoader&#039; defined in class path resource &#x5B;alfresco\/extension\/context\/typo3-context.xml]: Cannot create inner bean &#039;org.springframework.beans.factory.config.PropertyPathFactoryBean#70397d85&#039; of type &#x5B;org.springframework.beans.factory.config.PropertyPathFactoryBean] while setting bean property &#039;dialectClass&#039;; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#039;org.springframework.beans.factory.config.PropertyPathFactoryBean#70397d85&#039; defined in class path resource &#x5B;alfresco\/extension\/context\/typo3-context.xml]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#039;extranetDialect&#039;: FactoryBean threw exception on object creation; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection\n        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281)\n        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:120)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)\n        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)\n        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)\n        ...\n<\/pre><\/div>\n\n\n<p>The key clue here appears to be the <strong><em>NullPointerException<\/em><\/strong> from the <strong><em>buildCollationMapping()<\/em><\/strong>, which probably indicates a problem during the JDBC driver\u2019s initialization of MySQL collation data.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-db-amp-jdbc-connector-details\">DB &amp; JDBC Connector Details<\/h2>\n\n\n\n<p>Given that the error appeared to be linked to the DB, I checked that it was properly running and responding, while also retrieving its version:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nmysql&gt; SELECT VERSION();\n+------------+\n| VERSION()  |\n+------------+\n| 5.6.28-log |\n+------------+\n\n1 row in set (0.01 sec)\n<\/pre><\/div>\n\n\n<p>Everything looked fine, and the collation list was consistent with no apparent missing data and no &#8220;null&#8221; values:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nmysql&gt; SHOW COLLATION;\n+---------------------+----------+-----+---------+----------+---------+\n| Collation           | Charset  | Id  | Default | Compiled | Sortlen |\n+---------------------+----------+-----+---------+----------+---------+\n| big5_chinese_ci     | big5     |   1 | Yes     | Yes      |       1 |\n| big5_bin            | big5     |  84 |         | Yes      |       1 |\n| dec8_swedish_ci     | dec8     |   3 | Yes     | Yes      |       1 |\n| dec8_bin            | dec8     |  69 |         | Yes      |       1 |\n...\n<\/pre><\/div>\n\n\n<p>Another important thing to check is the JDBC Connector used by Tomcat to connect to the database (as it&#8217;s not using the mysql binaries to connect, as I did above):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;alfresco@alf01 ~]$ cd $CATALINA_HOME\n&#x5B;alfresco@alf01 tomcat]$\n&#x5B;alfresco@alf01 tomcat]$ ls -l lib\/mysql-*\n-rw-r--r--. 1 alfresco alfresco  802721 Jan 21  2015 lib\/mysql-connector-java-5.1.20-bin.jar\n&#x5B;alfresco@alf01 tomcat]$\n<\/pre><\/div>\n\n\n<p>The MySQL JDBC Connector version 5.1.20 was released in May 2012. Looking into known MySQL Connector\/J bugs, it looked like there were several problems affecting it, like long-running MySQL instances, some related to the buildCollationMapping, etc\u2026 The MySQL DB of the environment was running for the past 2.5 years without any restart. Therefore, the first thing we suggested was simply to restart the DB. Unfortunately, it didn&#8217;t help.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-patching-the-jdbc-connector\">Patching the JDBC Connector<\/h2>\n\n\n\n<p>Since patching\/upgrading Alfresco and the DB was out of the question, the only easy thing we could try, as a next step, was to patch the JDBC Connector. Looking at the MySQL download website for that component (c.f. <a href=\"https:\/\/downloads.mysql.com\/archives\/c-j\/\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>), the latest minor version available is 5.1.49, released in April 2020. Therefore, I tried to download and extract it and then I stopped the (not-really) running Tomcat process:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;alfresco@alf01 tomcat]$ wget &quot;https:\/\/cdn.mysql.com\/archives\/mysql-connector-java-5.1\/mysql-connector-java-5.1.49.zip&quot;\n--2025-10-22 09:43:47--  https:\/\/cdn.mysql.com\/archives\/mysql-connector-java-5.1\/mysql-connector-java-5.1.49.zip\nResolving cdn.mysql.com... 2.19.75.100, 2001:918:ffcb:1a6::1d68, 2001:918:ffcb:181::1d68\nConnecting to cdn.mysql.com|2.19.75.100|:443... connected.\nHTTP request sent, awaiting response... 200 OK\nLength: 3722067 (3.5M) &#x5B;application\/zip]\nSaving to: \u201cmysql-connector-java-5.1.49.zip\u201d\n\n100%&#x5B;============================================================&gt;] 3,722,067   19.1M\/s   in 0.2s\n\n2025-10-22 09:43:48 (19.1 MB\/s) - \u201cmysql-connector-java-5.1.49.zip\u201d saved &#x5B;3722067\/3722067]\n\n&#x5B;alfresco@alf01 tomcat]$\n&#x5B;alfresco@alf01 tomcat]$ unzip mysql-connector-java-5.1.49.zip\nArchive:  mysql-connector-java-5.1.49.zip\n   creating: mysql-connector-java-5.1.49\/\n   creating: mysql-connector-java-5.1.49\/src\/\n   creating: mysql-connector-java-5.1.49\/src\/com\/\n   ...\n   inflating: mysql-connector-java-5.1.49\/src\/testsuite\/ssl-test-certs\/server-cert.pem\n   inflating: mysql-connector-java-5.1.49\/src\/testsuite\/ssl-test-certs\/server-key.pem\n&#x5B;alfresco@alf01 tomcat]$\n&#x5B;alfresco@alf01 tomcat]$ ..\/alfresco.sh stop tomcat\n  **\n  ** Alfresco has been stopped successfully\n  **\n&#x5B;alfresco@alf01 tomcat]$\n<\/pre><\/div>\n\n\n<p>The final step was to backup the current and new versions of the JARs. Then I replaced the file in the Tomcat lib folder before restarting the process:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;alfresco@alf01 tomcat]$ ls -l lib\/mysql-*\n-rw-r--r--. 1 alfresco alfresco  802721 Jan 21  2015 lib\/mysql-connector-java-5.1.20-bin.jar\n&#x5B;alfresco@alf01 tomcat]$\n&#x5B;alfresco@alf01 tomcat]$ mv lib\/mysql-connector-java-5.1.20-bin.jar .\/\n&#x5B;alfresco@alf01 tomcat]$ mv mysql-connector-java-5.1.49\/mysql-connector-java-5.1.49.jar .\/\n&#x5B;alfresco@alf01 tomcat]$ cp -p mysql-connector-java-5.1.49.jar lib\/\n&#x5B;alfresco@alf01 tomcat]$ rm -rf mysql-connector-java-5.1.49.zip mysql-connector-java-5.1.49\n&#x5B;alfresco@alf01 tomcat]$\n&#x5B;alfresco@alf01 tomcat]$ ls -l lib\/mysql-*\n-rw-r--r--. 1 alfresco alfresco 1006904 Apr 20  2020 lib\/mysql-connector-java-5.1.49.jar\n&#x5B;alfresco@alf01 tomcat]$\n&#x5B;alfresco@alf01 tomcat]$ ..\/alfresco.sh start tomcat\n  **\n  ** Alfresco has been started\n  **\n&#x5B;alfresco@alf01 tomcat]$\n<\/pre><\/div>\n\n\n<p>Once done, the Tomcat logs looked much better, there were no errors related to database connection anymore. Alfresco was able to finish its startup and users were able to log in to Alfresco Share again:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; highlight: [0,24,28,29,30,31,32]; title: ; notranslate\" title=\"\">\noct. 22, 2025 8:27:35 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent\nINFOS: Loaded APR based Apache Tomcat Native library 1.1.33 using APR version 1.4.6.\noct. 22, 2025 8:27:35 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent\nINFOS: APR capabilities: IPv6 &#x5B;true], sendfile &#x5B;true], accept filters &#x5B;false], random &#x5B;true].\noct. 22, 2025 8:27:35 AM org.apache.catalina.core.AprLifecycleListener initializeSSL\nINFOS: OpenSSL successfully initialized (OpenSSL 0.9.8y 5 Feb 2013)\noct. 22, 2025 8:27:35 AM org.apache.coyote.AbstractProtocol init\nINFOS: Initializing ProtocolHandler &#x5B;&quot;http-apr-8080&quot;]\noct. 22, 2025 8:27:35 AM org.apache.coyote.AbstractProtocol init\nINFOS: Initializing ProtocolHandler &#x5B;&quot;ajp-apr-8009&quot;]\noct. 22, 2025 8:27:35 AM org.apache.coyote.AbstractProtocol init\nINFOS: Initializing ProtocolHandler &#x5B;&quot;http-bio-8443&quot;]\noct. 22, 2025 8:27:35 AM org.apache.catalina.startup.Catalina load\nINFOS: Initialization processed in 989 ms\n...\n2025-10-22 08:28:16,988  INFO  &#x5B;alfresco.repo.admin] &#x5B;localhost-startStop-1] Using database URL &#039;jdbc:mysql:\/\/localhost:3306\/alfresco?autoReconnect=true&#039; with user &#039;alfresco&#039;.\n2025-10-22 08:28:17,300  INFO  &#x5B;alfresco.repo.admin] &#x5B;localhost-startStop-1] Connected to database MySQL version 5.6.28-log\n2025-10-22 08:28:23,797  INFO  &#x5B;management.subsystems.ChildApplicationContextFactory] &#x5B;localhost-startStop-1] Starting &#039;sysAdmin&#039; subsystem, ID: &#x5B;sysAdmin, default]\n2025-10-22 08:28:23,822  INFO  &#x5B;management.subsystems.ChildApplicationContextFactory] &#x5B;localhost-startStop-1] Startup of &#039;sysAdmin&#039; subsystem, ID: &#x5B;sysAdmin, default] complete\n2025-10-22 08:28:23,859  INFO  &#x5B;domain.schema.SchemaBootstrap] &#x5B;localhost-startStop-1] Ignoring script patch (post-Hibernate): patch.db-V4.2-metadata-query-indexes\nWed Oct 22 08:28:33 CEST 2025 WARN: Establishing SSL connection without server&#039;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#039;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#039;false&#039;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.\nWed Oct 22 08:28:33 CEST 2025 WARN: Establishing SSL connection without server&#039;s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn&#039;t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to &#039;false&#039;. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.\n\nSETTING APPLICATION CONTEXT\n\n2025-10-22 08:28:33,976  INFO  &#x5B;extensions.webscripts.TemplateProcessorRegistry] &#x5B;localhost-startStop-1] Registered template processor Repository Template Processor for extension ftl\n2025-10-22 08:28:33,982  INFO  &#x5B;extensions.webscripts.ScriptProcessorRegistry] &#x5B;localhost-startStop-1] Registered script processor Repository Script Processor for extension js\n2025-10-22 08:28:40,396  INFO  &#x5B;domain.schema.SchemaBootstrap] &#x5B;localhost-startStop-1] Connecting to database: jdbc:mysql:\/\/localhost:3306\/alfresco?autoReconnect=true, UserName=alfresco@localhost, MySQL Connector Java\n2025-10-22 08:28:40,396  INFO  &#x5B;domain.schema.SchemaBootstrap] &#x5B;localhost-startStop-1] Schema managed by database dialect org.hibernate.dialect.MySQLInnoDBDialect.\n2025-10-22 08:28:41,104  INFO  &#x5B;domain.schema.SchemaBootstrap] &#x5B;localhost-startStop-1] No changes were made to the schema.\n2025-10-22 08:28:42,093  INFO  &#x5B;management.subsystems.ChildApplicationContextFactory] &#x5B;localhost-startStop-1] Starting &#039;Authentication&#039; subsystem, ID: &#x5B;Authentication, managed, alfinst]\n2025-10-22 08:28:42,545  INFO  &#x5B;management.subsystems.ChildApplicationContextFactory] &#x5B;localhost-startStop-1] Startup of &#039;Authentication&#039; subsystem, ID: &#x5B;Authentication, managed, alfinst] complete\n...\noct. 22, 2025 8:30:09 AM org.apache.coyote.AbstractProtocol start\nINFOS: Starting ProtocolHandler &#x5B;&quot;http-apr-8080&quot;]\noct. 22, 2025 8:30:09 AM org.apache.coyote.AbstractProtocol start\nINFOS: Starting ProtocolHandler &#x5B;&quot;ajp-apr-8009&quot;]\noct. 22, 2025 8:30:09 AM org.apache.coyote.AbstractProtocol start\nINFOS: Starting ProtocolHandler &#x5B;&quot;http-bio-8443&quot;]\noct. 22, 2025 8:30:09 AM org.apache.catalina.startup.Catalina start\nINFOS: Server startup in 153447 ms\n2025-10-22 08:30:10,121  INFO  &#x5B;web.site.EditionInterceptor] &#x5B;ajp-apr-8009-exec-7] Successfully retrieved license information from Alfresco.\n2025-10-22 08:30:39,780  INFO  &#x5B;web.scripts.ImapServerStatus] &#x5B;ajp-apr-8009-exec-3] Successfully retrieved IMAP server status from Alfresco: disabled\n2025-10-22 08:30:40,107  INFO  &#x5B;web.scripts.SyncModeConfig] &#x5B;ajp-apr-8009-exec-3] Successfully retrieved Sync Mode configuration from Alfresco: ON_PREMISE\n<\/pre><\/div>\n\n\n<p>This issue was pretty interesting, as it shows that even if you do not change anything on a system running for more than 10 years (same DB\/Alfresco\/Tomcat\/Java\/JDBC Connector versions), and that restarts daily, you can still face bugs at any time\u2026 I can&#8217;t check all details of the bugs while I&#8217;m writing this blog as the MySQL <a href=\"https:\/\/bugs.mysql.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">bugs<\/a> website is horribly slow and crashing today, but clearly this shows that even if you\u2019re maintaining old platforms that can\u2019t be upgraded, it\u2019s still worth keeping small components like JDBC connectors up to date.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A customer recently contacted us regarding an issue with an old Alfresco Enterprise 4.2.2 environment. The system had been running stably for years, with a nightly restart of the Tomcat\/Alfresco service to help recycle the memory and fix long-standing issues in this version. Earlier this week, one of these nightly restarts suddenly failed and since [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,525],"tags":[3169,3715,214,1319,2664,771],"type_dbi":[],"class_list":["post-41223","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-enterprise-content-management","tag-alfresco","tag-hibernate","tag-java","tag-jdbc","tag-mysql-3","tag-tomcat"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Alfresco \u2013 When a JDBC driver breaks after years of stability - dbi Blog<\/title>\n<meta name=\"description\" content=\"No changes, no patching, no updates, with a daily restart that suddenly breaks? It might appear strange, but there is definitively a reason!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Alfresco \u2013 When a JDBC driver breaks after years of stability\" \/>\n<meta property=\"og:description\" content=\"No changes, no patching, no updates, with a daily restart that suddenly breaks? It might appear strange, but there is definitively a reason!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-26T10:06:00+00:00\" \/>\n<meta name=\"author\" content=\"Morgan Patou\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MorganPatou\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Morgan Patou\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\\\/\"},\"author\":{\"name\":\"Morgan Patou\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d05b25843a9bc2ab20415dae6bd2d8\"},\"headline\":\"Alfresco \u2013 When a JDBC driver breaks after years of stability\",\"datePublished\":\"2025-10-26T10:06:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\\\/\"},\"wordCount\":568,\"commentCount\":0,\"keywords\":[\"Alfresco\",\"Hibernate\",\"Java\",\"jdbc\",\"MySQL\",\"Tomcat\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Enterprise content management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\\\/\",\"name\":\"Alfresco \u2013 When a JDBC driver breaks after years of stability - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2025-10-26T10:06:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d05b25843a9bc2ab20415dae6bd2d8\"},\"description\":\"No changes, no patching, no updates, with a daily restart that suddenly breaks? It might appear strange, but there is definitively a reason!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Alfresco \u2013 When a JDBC driver breaks after years of stability\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d05b25843a9bc2ab20415dae6bd2d8\",\"name\":\"Morgan Patou\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"caption\":\"Morgan Patou\"},\"description\":\"Morgan Patou has over 12 years of experience in Enterprise Content Management (ECM) systems, with a strong focus in recent years on platforms such as Alfresco, Documentum, and M-Files. He specializes in the architecture, setup, customization, and maintenance of ECM infrastructures in complex &amp; critical environments. Morgan is well-versed in both engineering and operations aspects, including high availability design, system integration, and lifecycle management. He also has a solid foundation in open-source and proprietary technologies - ranging from Apache, OpenLDAP or Kerberos to enterprise-grade systems like WebLogic. Morgan Patou holds an Engineering Degree in Computer Science from ENSISA (\u00c9cole Nationale Sup\u00e9rieure d'Ing\u00e9nieurs Sud Alsace) in Mulhouse, France. He is Alfresco Content Services Certified Administrator (ACSCA), Alfresco Content Services Certified Engineer (ACSCE) as well as OpenText Documentum Certified Administrator. His industry experience spans the Public Sector, IT Services, Financial Services\\\/Banking, and the Pharmaceutical industry.\",\"sameAs\":[\"https:\\\/\\\/blog.dbi-services.com\\\/author\\\/morgan-patou\\\/\",\"https:\\\/\\\/x.com\\\/MorganPatou\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/morgan-patou\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Alfresco \u2013 When a JDBC driver breaks after years of stability - dbi Blog","description":"No changes, no patching, no updates, with a daily restart that suddenly breaks? It might appear strange, but there is definitively a reason!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/","og_locale":"en_US","og_type":"article","og_title":"Alfresco \u2013 When a JDBC driver breaks after years of stability","og_description":"No changes, no patching, no updates, with a daily restart that suddenly breaks? It might appear strange, but there is definitively a reason!","og_url":"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/","og_site_name":"dbi Blog","article_published_time":"2025-10-26T10:06:00+00:00","author":"Morgan Patou","twitter_card":"summary_large_image","twitter_creator":"@MorganPatou","twitter_misc":{"Written by":"Morgan Patou","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/"},"author":{"name":"Morgan Patou","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8"},"headline":"Alfresco \u2013 When a JDBC driver breaks after years of stability","datePublished":"2025-10-26T10:06:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/"},"wordCount":568,"commentCount":0,"keywords":["Alfresco","Hibernate","Java","jdbc","MySQL","Tomcat"],"articleSection":["Database Administration &amp; Monitoring","Enterprise content management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/","url":"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/","name":"Alfresco \u2013 When a JDBC driver breaks after years of stability - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2025-10-26T10:06:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8"},"description":"No changes, no patching, no updates, with a daily restart that suddenly breaks? It might appear strange, but there is definitively a reason!","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/alfresco-when-a-jdbc-driver-breaks-after-years-of-stability\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Alfresco \u2013 When a JDBC driver breaks after years of stability"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8","name":"Morgan Patou","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","caption":"Morgan Patou"},"description":"Morgan Patou has over 12 years of experience in Enterprise Content Management (ECM) systems, with a strong focus in recent years on platforms such as Alfresco, Documentum, and M-Files. He specializes in the architecture, setup, customization, and maintenance of ECM infrastructures in complex &amp; critical environments. Morgan is well-versed in both engineering and operations aspects, including high availability design, system integration, and lifecycle management. He also has a solid foundation in open-source and proprietary technologies - ranging from Apache, OpenLDAP or Kerberos to enterprise-grade systems like WebLogic. Morgan Patou holds an Engineering Degree in Computer Science from ENSISA (\u00c9cole Nationale Sup\u00e9rieure d'Ing\u00e9nieurs Sud Alsace) in Mulhouse, France. He is Alfresco Content Services Certified Administrator (ACSCA), Alfresco Content Services Certified Engineer (ACSCE) as well as OpenText Documentum Certified Administrator. His industry experience spans the Public Sector, IT Services, Financial Services\/Banking, and the Pharmaceutical industry.","sameAs":["https:\/\/blog.dbi-services.com\/author\/morgan-patou\/","https:\/\/x.com\/MorganPatou"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/morgan-patou\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/41223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=41223"}],"version-history":[{"count":3,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/41223\/revisions"}],"predecessor-version":[{"id":41226,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/41223\/revisions\/41226"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=41223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=41223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=41223"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=41223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}