4

私はラクダに全く慣れていないので、これが明らかな場合はすみません。

次のことを行うラクダルート(talend esb)を設定しようとしています。

  1. JMSによるメッセージの受信
  2. dbアップデート
  3. 要求/応答を使用してJMSによって別のシステムにメッセージを送信します
  4. 応答の情報を使用して、別のデータベース更新を実行します

これはすべて1つのルートにあります。私が見つけたのは、ルートが3で応答を待っている間、ルートは1でこれ以上メッセージを受け入れないということです。

JMSコンポーネントで「asyncConsumer」パラメーターを使用しようとしましたが、役に立ちませんでした。

3で応答を待っている間に、2番目(およびそれ以上)のメッセージを処理できるようにルートを設計するにはどうすればよいですか。

ありがとう、Laci

4

2 に答える 2

2

ペッターが説明したパラメーターは役に立ちますが、それでもスレッドをブロックします。もう 1 つのアプローチは、統合を 2 つの別々のルートとして設計することです。最初のルートでは、jms メッセージを受信し、データベースを更新して、2 番目のメッセージを送信します。

このルートのプロデューサで InOnly を使用し、JMSReplyTo と preserveMessageQuo=true を設定すると、camel はメッセージを送信しますが、応答を待ちません。

次に、指定したキューへの応答をリッスンし、2 番目のデータベース更新を行う 2 番目のルートを使用します。この方法では、スレッドをブロックしません。

于 2012-12-14T08:16:27.370 に答える