我正在将带有 InOut 模式的消息发送到 JMS 队列,并将 replyTo 设置为预定义的队列。有时一切正常,有时骆驼不会从该队列中读取回复并因 TimedOutException 而失败。有时我可以在回复队列中看到 2 个或更多消费者(使用 AMQ Web 控制台),但骆驼不会消费它。
当我在回复队列上看到一个消费者(使用 AMQ Web 控制台)时,一切正常
,当我在回复队列上看到许多消费者(使用 AMQ Web 控制台)时,camel 不会从该队列读取回复并因 TimedOutException 而失败。
环境:保险丝 ESB
Java 代码
from("activemq:spirit.adapter.producer.shippingorder.commands")
.id("router-Shipping-Order-Commands")
.log(LoggingLevel.INFO, "Transport1", "router-Shipping-Order-Commands request: ${body}")
.to("activemq:transport.consumer.shippingorder.commands?replyTo=transport.producer.shippingorder.event&replyToType=Exclusive&requestTimeout=120000")
.log(LoggingLevel.INFO, "Transport1", "router response: ${body}");
活动MQ配置
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://10.10.40.94:61616"/>
</bean>
<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
init-method="start" destroy-method="stop">
<property name="maxConnections" value="1" />
<property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>
<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
<property name="connectionFactory" ref="pooledConnectionFactory" />
</bean>
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="configuration" ref="jmsConfig" />
</bean>
此配置写在 camel-context.xml 文件中,在同一个文件中还有另一个用于另一个路由的 activemq 配置
您能否提一些建议?