消息消费者每1秒关闭一次

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

我使用 AMQP Camel 从队列 A 读取消息,向消息添加标头并发送到主题 B。每 300 毫秒,队列 A 中就会有 200 条消息。根据日志文件,JMS MessageConsumer 每 1 秒关闭一次。我不知道为什么。有人可以给我提示如何防止 MessageConsumer 关闭吗?

骆驼路线

 <bean class="org.messaginghub.pooled.jms.JmsPoolConnectionFactory" id="test-connection-pool">
    <property name="connectionFactory" ref="test-connection-factory"/>
    <property name="maxConnections" value="2"/>
    <property name="maxSessionsPerConnection" value="1000"/>
  </bean>

  <bean class="org.apache.camel.component.amqp.AMQPComponent" id="amqp">
    <property name="connectionFactory" ref="test-connection-pool"/>
  </bean>

<routeContext id="test-context" xmlns="http://camel.apache.org/schema/spring">
  <route id="route-test">
    <from uri="amqp:queue:Q/A?concurrentConsumers=10&amp;maxConcurrentConsumers=10"/>
    <setHeader name="TEST_HEADER">
    <constant>TEST1234</constant>
    </setHeader>
    <toD uri="amqp:topic:b"/>
  </route>
</routeContext>

日志文件

13:48:14.829 [QpidJMS Connection Executor: ID:5a8c0a33-724e-47c1-a243-6a2c724f8222:1] INFO org.apache.qpid.jms.JmsSession - A JMS MessageConsumer has been closed: JmsConsumerInfo: { ID:5a8c0a33-724e-47c1-a243-6a2c724f8222:1:9:1, destination = Q/A }
13:48:14.839 [Camel (ems-camel) thread #9 - JmsConsumer[Q/A]] WARN org.apache.camel.component.jms.DefaultJmsMessageListenerContainer - Setup of JMS message listener invoker failed for destination 'Q/A' - trying to recover. Cause: Received disposition with role=receiver delivery-id=128 settled=true: unsupported outcome=modified [condition = amqp:not-implemented
....
apache-camel solace
1个回答
0
投票

我还没有尝试过使用 Camel 和 AMQP,但我认为这里有两条路:

  1. 使用“CACHE_CONSUMER”作为您的缓存级别名称进行测试
  2. 尝试使用 CachingConnectionFactory,因为它被 Solace 和 JMS 用户广泛使用。
© www.soinside.com 2019 - 2024. All rights reserved.