CachingConnectionFactory - 无法关闭共享 JMS 连接

问题描述 投票:0回答:0

在与 apache camel 关联的 spring 框架中关闭 activemq 连接存在问题。

Spring 框架:5.3.19 ActiveMQ:5.16.3 阿帕奇骆驼:3.14.3

2023-03-26 14:22:09,021|INFO|[ActiveMQ ShutdownHook]|org.apache.activemq.broker.BrokerService|Apache ActiveMQ 5.16.3 (localhost, ID:RB8E8B-62830-1679854921312-0:1) is shutting down
2023-03-26 14:22:09,028|INFO|[SpringContextShutdownHook]|org.apache.camel.impl.engine.AbstractCamelContext|Apache Camel 3.14.3 (camelContext) shutting down (timeout:45s)
2023-03-26 14:22:09,033|INFO|[SpringContextShutdownHook]|org.apache.camel.impl.engine.AbstractCamelContext|Routes stopped (total:0 stopped:0)
2023-03-26 14:22:09,034|INFO|[RouterFrameworkThread]|org.apache.camel.impl.engine.AbstractCamelContext|Apache Camel 3.14.3 (camelContext) shutting down (timeout:45s)
2023-03-26 14:22:09,065|INFO|[ActiveMQ ShutdownHook]|org.apache.activemq.broker.TransportConnector|Connector tcp://localhost:0?broker.persistent=false,useShutdownHook=true stopped
2023-03-26 14:22:09,065|INFO|[SpringContextShutdownHook]|org.apache.camel.impl.engine.AbstractCamelContext|Apache Camel 3.14.3 (camelContext) shutdown in 37ms (uptime:6s109ms)
2023-03-26 14:22:09,076|INFO|[SpringContextShutdownHook]|org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactory|Shutting down embedded database: url='jdbc:h2:mem:iteH2DB\;MODE=Oracle;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false'
2023-03-26 14:22:09,111|INFO|[ActiveMQ ShutdownHook]|org.apache.activemq.broker.TransportConnector|Connector vm://localhost stopped
2023-03-26 14:22:09,088|INFO|[ActiveMQ Connection Executor: vm://localhost#0]|org.springframework.jms.connection.CachingConnectionFactory|Encountered a JMSException - resetting the underlying JMS Connection
javax.jms.JMSException: peer (vm://localhost#1) stopped.
        at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:54) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1961) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.ActiveMQConnection.onException(ActiveMQConnection.java:1980) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:114) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:126) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:114) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.vm.VMTransport.stop(VMTransport.java:233) ~[activemq-broker-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:72) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:72) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.ResponseCorrelator.stop(ResponseCorrelator.java:132) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.broker.TransportConnection.doStop(TransportConnection.java:1200) ~[activemq-broker-5.16.3.jar:5.16.3]
        at org.apache.activemq.broker.TransportConnection$4.run(TransportConnection.java:1166) ~[activemq-broker-5.16.3.jar:5.16.3]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:830) [?:?]
Caused by: org.apache.activemq.transport.TransportDisposedIOException: peer (vm://localhost#1) stopped.
        ... 9 more
2023-03-26 14:22:09,103|WARN|[SpringContextShutdownHook]|org.springframework.jms.connection.CachingConnectionFactory|Could not close shared JMS Connection
javax.jms.JMSException: Disposed due to prior exception
        at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:72) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1422) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.ActiveMQConnection.close(ActiveMQConnection.java:689) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.springframework.jms.connection.SingleConnectionFactory.closeConnection(SingleConnectionFactory.java:502) [spring-jms-5.3.19.jar:5.3.19]
        at org.springframework.jms.connection.SingleConnectionFactory.resetConnection(SingleConnectionFactory.java:390) [spring-jms-5.3.19.jar:5.3.19]
        at org.springframework.jms.connection.CachingConnectionFactory.resetConnection(CachingConnectionFactory.java:223) [spring-jms-5.3.19.jar:5.3.19]
        at org.springframework.jms.connection.SingleConnectionFactory.destroy(SingleConnectionFactory.java:380) [spring-jms-5.3.19.jar:5.3.19]
        at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:213) [spring-beans-5.3.19.jar:5.3.19]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) [spring-beans-5.3.19.jar:5.3.19]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) [spring-beans-5.3.19.jar:5.3.19]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1161) [spring-beans-5.3.19.jar:5.3.19]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) [spring-beans-5.3.19.jar:5.3.19]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1154) [spring-beans-5.3.19.jar:5.3.19]
        at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1106) [spring-context-5.3.19.jar:5.3.19]
        at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1075) [spring-context-5.3.19.jar:5.3.19]
        at org.springframework.context.support.AbstractApplicationContext$1.run(AbstractApplicationContext.java:991) [spring-context-5.3.19.jar:5.3.19]
Caused by: org.apache.activemq.transport.TransportDisposedIOException: Disposed due to prior exception
        at org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:125) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:114) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.vm.VMTransport.stop(VMTransport.java:233) ~[activemq-broker-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:72) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:72) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.ResponseCorrelator.stop(ResponseCorrelator.java:132) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.broker.TransportConnection.doStop(TransportConnection.java:1200) ~[activemq-broker-5.16.3.jar:5.16.3]
        at org.apache.activemq.broker.TransportConnection$4.run(TransportConnection.java:1166) ~[activemq-broker-5.16.3.jar:5.16.3]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
        at java.lang.Thread.run(Thread.java:830) ~[?:?]
Caused by: org.apache.activemq.transport.TransportDisposedIOException: peer (vm://localhost#1) stopped.
        at org.apache.activemq.transport.vm.VMTransport.stop(VMTransport.java:233) ~[activemq-broker-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:72) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:72) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.ResponseCorrelator.stop(ResponseCorrelator.java:132) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.broker.TransportConnection.doStop(TransportConnection.java:1200) ~[activemq-broker-5.16.3.jar:5.16.3]
        at org.apache.activemq.broker.TransportConnection$4.run(TransportConnection.java:1166) ~[activemq-broker-5.16.3.jar:5.16.3]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
        at java.lang.Thread.run(Thread.java:830) ~[?:?]
2023-03-26 14:22:09,125|ERROR|[Camel (camelContext) thread #1 - JmsConsumer[MQ_R2_ITE_OA_REQ]]|org.apache.camel.component.jms.DefaultJmsMessageListenerContainer|Listener exception overridden by rollback exception
javax.jms.JMSException: peer (vm://localhost#5) stopped.
        at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:72) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.ActiveMQMessageConsumer.dequeue(ActiveMQMessageConsumer.java:505) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.ActiveMQMessageConsumer.receive(ActiveMQMessageConsumer.java:666) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.springframework.jms.support.destination.JmsDestinationAccessor.receiveFromConsumer(JmsDestinationAccessor.java:132) ~[spring-jms-5.3.19.jar:5.3.19]
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveMessage(AbstractPollingMessageListenerContainer.java:431) ~[spring-jms-5.3.19.jar:5.3.19]
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:316) [spring-jms-5.3.19.jar:5.3.19]
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:246) [spring-jms-5.3.19.jar:5.3.19]
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1237) [spring-jms-5.3.19.jar:5.3.19]
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1227) [spring-jms-5.3.19.jar:5.3.19]
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1120) [spring-jms-5.3.19.jar:5.3.19]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:830) [?:?]
Caused by: org.apache.activemq.transport.TransportDisposedIOException: peer (vm://localhost#5) stopped.
        at org.apache.activemq.transport.vm.VMTransport.stop(VMTransport.java:233) ~[activemq-broker-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:72) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:72) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.transport.ResponseCorrelator.stop(ResponseCorrelator.java:132) ~[activemq-client-5.16.3.jar:5.16.3]
        at org.apache.activemq.broker.TransportConnection.doStop(TransportConnection.java:1200) ~[activemq-broker-5.16.3.jar:5.16.3]
        at org.apache.activemq.broker.TransportConnection$4.run(TransportConnection.java:1166) ~[activemq-broker-5.16.3.jar:5.16.3]

我在 Mave POM、Spring Application Context 和所有其他在线可用的建议中尝试了各种不同的版本。有人解决过吗?

spring apache-camel activemq h2
© www.soinside.com 2019 - 2024. All rights reserved.