我有一個駱駝路由消耗在JMS(activemq)隊列上,這個隊列的目標是以請求/回覆方式調用。在這條路線中,我拆分消息並調用另一個activemq隊列(也以請求/回覆的方式)。在Apache Camel路由中處理傳入的JMSCorrelationId
下面有示出的情況
<route>
<from uri="activemq:A" />
<split>
<xpath>/root/subpart</xpath>
<inOut uri="activemq:B" />
</split>
</route>
問題的最小路徑是駱駝不設置新的JMSCorrelationId(因爲已經有一個從傳入消息)。如果什麼都沒有完成,你會得到未知correlationId的迴應,交易永遠不會結束。
我沒有詳細說明,但我的猜測是相同的temporaryQueue用於分解器,但它(邏輯上)期望每個消息都有不同的相關ID。所有人都使用相同的,它接受第一個,不知道如何處理與其他人。
什麼是處理這種情況的最佳解決方案?
我發現工作的一個是保存在另一個頭部傳入的JMSCorrelationId(不知道我需要但是),並刪除它。這並不像我想要的那樣乾淨,但我想不出別的。有任何想法嗎 ?