Reto Urfer created ARTEMIS-4708:
-----------------------------------

             Summary: exit failure code in case of JDBC connection failure
                 Key: ARTEMIS-4708
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4708
             Project: ActiveMQ Artemis
          Issue Type: Improvement
          Components: Broker
    Affects Versions: 2.32.0, 2.31.0
         Environment: Artemis broker running in a container controlled by 
podman and docker-compose
            Reporter: Reto Urfer


We have to use JDBC for persistence. In case a JDBC connection is not available 
because i.e. short network outage, the broker is stopped.

2024-03-26 09:34:59,614 ERROR 
[org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider]

SQL EXCEPTIONS:

SQLState: 08006 ErrorCode: 17002 Message: IO Error: The Network Adapter could 
not establish the connection (CONNECTION_ID=b+bm+NCuRfSpy8KMoO0r0A==)

java.sql.SQLRecoverableException: IO Error: The Network Adapter could not 
establish the connection (CONNECTION_ID=b+bm+NCuRfSpy8KMoO0r0A==)

  at 
oracle.jdbc.driver.T4CConnection.handleLogonNetException(T4CConnection.java:902)

  at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:707)

  at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:1094)

  at 
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:89)

  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:732)

  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:648)

  at 
org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:55)

  at 
org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:355)

  at 
org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:889)

  at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:424)

  at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:349)

  at 
org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:134)

  at 
org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:753)

  at 
org.apache.activemq.artemis.jdbc.store.drivers.JDBCConnectionProvider.getConnection(JDBCConnectionProvider.java:62)

  at 
org.apache.activemq.artemis.jdbc.store.journal.JDBCJournalImpl.sync(JDBCJournalImpl.java:215)

  at 
org.apache.activemq.artemis.jdbc.store.journal.JDBCJournalImpl$JDBCJournalSync.run(JDBCJournalImpl.java:1011)

  at 
org.apache.activemq.artemis.core.server.ActiveMQScheduledComponent.runForExecutor(ActiveMQScheduledComponent.java:314)

  at 
org.apache.activemq.artemis.core.server.ActiveMQScheduledComponent.lambda$bookedRunForScheduler$2(ActiveMQScheduledComponent.java:321)

  at 
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57)

  at 
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32)

  at 
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)

  at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)

  at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)

  at 
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)

 

Unfortunalely the broker terminates with exit code success and is therefore not 
automatically restarted in a container environment.

Please extend the artemis broker in a way to terminate it with a failure exit 
code in case of any JDBC error.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to