JMS (activemq) キューで消費するキャメル ルートがあり、リクエスト/リプライ方式で呼び出されるようになっています。このルート内でメッセージを分割し、別の activemq キューを呼び出します (これも要求/応答方式で)。
状況を示す最小限のルートを次に示します
<route>
<from uri="activemq:A" />
<split>
<xpath>/root/subpart</xpath>
<inOut uri="activemq:B" />
</split>
</route>
問題は、Camel が新しい JMSCorrelationId を設定しないことです (着信メッセージから既に 1 つあるため)。何もしないと、correlationId が不明な応答が返され、交換が終了しません。
詳細には触れませんでしたが、同じ temporaryQueue がホール スプリッターに使用されているが、(論理的に) メッセージごとに異なる相関 ID が必要であると推測されます。すべて同じものを使用して、最初のものを受信し、他のものをどうするかを知りません。
状況を処理するための最良の解決策は何ですか?
私が見つけたのは、着信 JMSCorrelationId を別のヘッダーに保存し (必要があるかどうかはわかりません)、それを削除することです。これは私が望んでいたほどきれいではありませんが、他に何か思いつきませんでした。何か案は ?