Apache camel ApacheCamel正在从IBM MQ队列连续侦听同一消息

Apache camel ApacheCamel正在从IBM MQ队列连续侦听同一消息,apache-camel,activemq,ibm-mq,Apache Camel,Activemq,Ibm Mq,我正在尝试从IBM MQ队列中提取一条消息,并使用XML DSL将其放置到本地ActiveMQ。路由正在工作,但它不断地拾取相同的消息并将其放置到ActiveMQ。这似乎是一个永无止境的过程。我必须关闭进程才能停止它。为什么会这样 这就是bean在camel conetxt.xml中的定义方式: 输出- 2020-07-15 10:21:41.278 INFO 5212 --- [CU_CUPO705_REP]] get: GOT MESSAGE with Body <?xml ve

我正在尝试从IBM MQ队列中提取一条消息,并使用XML DSL将其放置到本地ActiveMQ。路由正在工作,但它不断地拾取相同的消息并将其放置到ActiveMQ。这似乎是一个永无止境的过程。我必须关闭进程才能停止它。为什么会这样

这就是bean在camel conetxt.xml中的定义方式:


输出-

2020-07-15 10:21:41.278  INFO 5212 --- [CU_CUPO705_REP]] get: GOT MESSAGE with Body <?xml version="1.0" encoding="ISO-8859-1" ?><API><Header><Function></Function><Author></Author><Version></Version><CreateTime></CreateTime><ClientStartTime></ClientStartTime><ClientEndTime></ClientEndTime><BrokerStartTime></BrokerStartTime><BrokerEndTime></BrokerEndTime><BackendStartTime>2020-07-15-10.21.41.238</BackendStartTime><BackendEndTime>2020-07-15-10.21.41.239</BackendEndTime><ReplyStatus></ReplyStatus></Header><GKSReply><ReplyBody><address><HouseKey>96325874</HouseKey><Municipality>100</Municipality><ZIP>8900</ZIP><Street>1234</Street><Street>test</Street><HouseNo>3</HouseNo><Letter></Letter><Locality></Locality></address></ReplyBody><ReplyStatus>OK</ReplyStatus></GKSReply></API> 
2020-07-15 10:21:41.415  INFO 5212 --- [CU_CUPO705_REP]] get: GOT MESSAGE with Body <?xml version="1.0" encoding="ISO-8859-1" ?><API><Header><Function></Function><Author></Author><Version></Version><CreateTime></CreateTime><ClientStartTime></ClientStartTime><ClientEndTime></ClientEndTime><BrokerStartTime></BrokerStartTime><BrokerEndTime></BrokerEndTime><BackendStartTime>2020-07-15-10.21.41.238</BackendStartTime><BackendEndTime>2020-07-15-10.21.41.239</BackendEndTime><ReplyStatus></ReplyStatus></Header><GKSReply><ReplyBody><address><HouseKey>96325874</HouseKey><Municipality>100</Municipality><ZIP>8900</ZIP><Street>1234</Street><Street>test</Street><HouseNo>3</HouseNo><Letter></Letter><Locality></Locality></address></ReplyBody><ReplyStatus>OK</ReplyStatus></GKSReply></API> 
2020-07-15 10:21:41.467  INFO 5212 --- [CU_CUPO705_REP]] get: GOT MESSAGE with Body <?xml version="1.0" encoding="ISO-8859-1" ?><API><Header><Function></Function><Author></Author><Version></Version><CreateTime></CreateTime><ClientStartTime></ClientStartTime><ClientEndTime></ClientEndTime><BrokerStartTime></BrokerStartTime><BrokerEndTime></BrokerEndTime><BackendStartTime>2020-07-15-10.21.41.238</BackendStartTime><BackendEndTime>2020-07-15-10.21.41.239</BackendEndTime><ReplyStatus></ReplyStatus></Header><GKSReply><ReplyBody><address><HouseKey>96325874</HouseKey><Municipality>100</Municipality><ZIP>8900</ZIP><Street>1234</Street><Street>test</Street><HouseNo>3</HouseNo><Letter></Letter><Locality></Locality></address></ReplyBody><ReplyStatus>OK</ReplyStatus></GKSReply></API> 
2020-07-15 10:21:41.278信息5212-[CU_CUPO705_REP]]get:get:get-MESSAGE with Body 2020-07-15-10.21.41.2382020-07-15-10.21.41.2399632587410089001234test3OK
2020-07-15 10:21:41.415信息5212---[CU_CUPO705_REP]]获取:通过正文获取消息2020-07-15-10.21.41.2382020-07-15-10.21.41.2399632587410089001234测试3OK
2020-07-15 10:21:41.467信息5212---[CU_CUPO705_REP]]获取:通过正文获取消息2020-07-15-10.21.41.2382020-07-15-10.21.41.2399632587410089001234测试3OK

其目的是只打印一次输出日志。

IBM MQ JMS会话设置如何?@JoshMc question更新为camel-context.xml。请尝试
websphere:queue:CU_CUPO705_REP?transact=true
@Bedla谢谢。它改善了这种情况。现在它不再陷入无限循环。目前的情况是,它三次接收到相同的消息。因此,每当IBM MQ队列中出现一条新消息时,侦听器会将其拾取三次并将所有消息发送到Activemq。在拾取消息后,有没有任何方法可以将ACK发送到IBM MQ?我的代码似乎没有这样做。IBM MQ JMS会话设置如何?@JoshMc question更新为camel-context.xml.Try
websphere:queue:CU_CUPO705_REP?transaction=true
@Bedla谢谢。它改善了这种情况。现在它不再陷入无限循环。目前的情况是,它三次接收到相同的消息。因此,每当IBM MQ队列中出现一条新消息时,侦听器会将其拾取三次并将所有消息发送到Activemq。在拾取消息后,有没有任何方法可以将ACK发送到IBM MQ?似乎我的代码没有这样做。