[
https://issues.apache.org/jira/browse/ARTEMIS-4708?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Bertram updated ARTEMIS-4708:
------------------------------------
Description:
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.
{noformat}
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){noformat}
Unfortunately the broker terminates with exit code success and is therefore not
automatically restarted in a container environment.
Please extend the broker in a way to terminate it with a failure exit code in
case of any JDBC error.
was:
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.
> 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.31.0, 2.32.0
> Environment: Artemis broker running in a container controlled by
> podman and docker-compose
> Reporter: Reto Urfer
> Priority: Major
>
> 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.
> {noformat}
> 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){noformat}
> Unfortunately the broker terminates with exit code success and is therefore
> not automatically restarted in a container environment.
> Please extend the 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)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact