java.sql.SQLException: Cannot create PoolableConnectionFactory (

21 views Asked by At

I have ActiveMQ Classic 5.15.16 version instances on AWS connecting to "8.0.mysql_aurora.3.05.2".

The broker starts and shutdown is couple of seconds. It is happening in a loop with the following errors in logs:

2024-03-14 18:14:16,004 [main           ] INFO  BrokerService                  - Apache ActiveMQ 5.15.16 (ip-10-223-32-58, null) is shutting down
2024-03-14 18:14:16,004 [main           ] INFO  TransportConnector             - Connector openwire stopped
2024-03-14 18:14:16,004 [main           ] INFO  TransportConnector             - Connector amqp stopped
2024-03-14 18:14:16,027 [main           ] INFO  PListStoreImpl                 - PListStore:[/usr/share/activemq/data/ip-10-223-32-58/tmp_storage] stopped
2024-03-14 18:14:16,048 [main           ] ERROR LeaseDatabaseLocker            - ip-10-223-32-58 failed to release lease: java.sql.SQLException: Cannot create PoolableConnectionFactory (Cannot open file:/usr/share/activemq/conf/broker.ks [Keystore was tampered with, or password was incorrect])
java.sql.SQLException: Cannot create PoolableConnectionFactory (Cannot open file:/usr/share/activemq/conf/broker.ks [Keystore was tampered with, or password was incorrect])
        at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:656)
        at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:534)
        at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:734)
        at org.apache.activemq.store.jdbc.AbstractJDBCLocker.getConnection(AbstractJDBCLocker.java:80)
        at org.apache.activemq.store.jdbc.LeaseDatabaseLocker.releaseLease(LeaseDatabaseLocker.java:164)
        at org.apache.activemq.store.jdbc.LeaseDatabaseLocker.doStop(LeaseDatabaseLocker.java:157)
        at org.apache.activemq.util.ServiceSupport.stop(ServiceSupport.java:71)
        at org.apache.activemq.broker.LockableServiceSupport.postStop(LockableServiceSupport.java:124)
        at org.apache.activemq.util.ServiceSupport.stop(ServiceSupport.java:75)
        at org.apache.activemq.util.ServiceStopper.stop(ServiceStopper.java:41)
        at org.apache.activemq.broker.BrokerService.stop(BrokerService.java:875)
        at org.apache.activemq.xbean.XBeanBrokerService.stop(XBeanBrokerService.java:122)
        at org.apache.activemq.broker.BrokerService.start(BrokerService.java:648)
        at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:73)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1748)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1685)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1615)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:756)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
        at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)
        at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)
        at org.apache.activemq.xbean.XBeanBrokerFactory$1.<init>(XBeanBrokerFactory.java:104)
        at org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:104)
        at org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:67)
        at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)
        at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)
        at org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:87)
        at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:63)
        at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:154)
        at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:63)
        at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:104)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.activemq.console.Main.runTaskClass(Main.java:262)
        at org.apache.activemq.console.Main.main(Main.java:115)
Caused by: java.sql.SQLNonTransientConnectionException: Cannot open file:/usr/share/activemq/conf/broker.ks [Keystore was tampered with, or password was incorrect]
        at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
        at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:70)
        at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
        at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
        at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
        at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
        at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:52)
        at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:357)
        at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:103)
        at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:652)
        ... 47 more
Caused by: com.mysql.cj.exceptions.SSLParamsException: Cannot open file:/usr/share/activemq/conf/broker.ks [Keystore was tampered with, or password was incorrect]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
        at com.mysql.cj.protocol.ExportControlled.getSSLContext(ExportControlled.java:514)
        at com.mysql.cj.protocol.ExportControlled.performTlsHandshake(ExportControlled.java:321)
        at com.mysql.cj.protocol.StandardSocketFactory.performTlsHandshake(StandardSocketFactory.java:188)
        at com.mysql.cj.protocol.a.NativeSocketConnection.performTlsHandshake(NativeSocketConnection.java:99)
        at com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:325)
        at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:164)
        at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1342)
        at com.mysql.cj.NativeSession.connect(NativeSession.java:157)
        at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:956)
        at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826)
        ... 54 more
Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect
        at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:792)
:   at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:57)
        at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)
        at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:71)
        at java.security.KeyStore.load(KeyStore.java:1445)
        at com.mysql.cj.protocol.ExportControlled.getSSLContext(ExportControlled.java:494)
        ... 63 more
Caused by: java.security.UnrecoverableKeyException: Password verification failed
        at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:790)

I have ActiveMQ Classic 5.15.16 and mysql-connector-java-8.0.20.jar

Here is my activemq.xml file with DB connection and configurations. I have verified the user name and password. It's working fine to connect with the DB.

<bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://xxxxxxxxxxx.us-west-2.rds.amazonaws.com/xxx_v2_activemq?relaxAutoCommit=true"/>
    <property name="username" value="XXXXXX"/>
    <property name="password" value="XXXXXXXXXX"/>
    <property name="maxTotal" value="200"/>
    <property name="minIdle" value="10"/>
    <property name="maxIdle" value="100"/>
    <property name="initialSize" value="5"/>
    <property name="poolPreparedStatements" value="true"/>
</bean>

<bean id="ioExceptionHandler" class="org.apache.activemq.util.LeaseLockerIOExceptionHandler">
    <property name="ignoreSQLExceptions"><value>false</value></property>
    <property name="stopStartConnectors"><value>true</value></property>
    <property name="resumeCheckSleepPeriod"><value>5000</value></property>
</bean>
0

There are 0 answers