私の現在の状況:
私は現在、2 つの異なるソースから発信されたメッセージを処理する 3 つのフローを持つ Mule ESB アプリケーションを使用しています。これらの 3 つのフローは、VM キューを使用して結合されています。
フロー #1:
インバウンド (エンドポイント #1) -> (メッセージの処理と変換を実行) -> アウトバウンド (エンドポイント #3)
フロー #2:
インバウンド (エンドポイント #2) -> (メッセージの処理と変換を実行) -> アウトバウンド (エンドポイント #3)
フロー #3
インバウンド (エンドポイント #3) -> (メッセージの処理と変換を実行し、何かを行う) -> アウトバウンド
問題/問題:
ここで私がやりたいことは、受信エンドポイントから状態情報を取得する 4 番目のフローであるフロー #4 を導入することです。この情報に基づいて、フロー #3 が実行されるのを防ぎ、受信メッセージを処理するのを防ぐことができます。
言い換えれば、私が理想的に望むのは、フロー #4 を ESB アプリケーションの起動時に実行し (すべてのフローが自動的に実行するように)、インバウンド メッセージから取得した状態情報に基づいて、防止/許可することです。または、エンドポイント #3 からのメッセージを処理しないようにフロー #3 を有効または無効にします。
私が理想的に必要とするものは次のとおりです。
要件:
- Mule フロー XML のみを使用して実行できる必要があり、POJO/カスタム Java オブジェクトを追加する必要はありません。
- フロー #4 は ESB アプリケーションの起動時に実行する必要があり、最初の受信メッセージのみを処理する必要があります。
- 理想的には、フロー #3 に複合インバウンド ソースを持たせたり、すべてのインバウンド メッセージを何らかのグローバル変数の状態で評価したりしたくありません。
私がやりたいことを達成するための最良の方法は何ですか?
本当に良い解決策がない場合、#3 の要件を省略しなければならない場合、アウトバウンド -> インバウンド エンドポイントによって結び付けられていない 2 つの独立したフロー間で共有されるグローバル変数を実現する最善の方法は何ですか? XML構成?セッション プロパティを使用してみましたが、フローをサブフローとして、またはエンドポイントで結び付ける必要があります。
ありがとう。