2016-08-26 19 views
0

、私は、ダイナミックなチャンネルの作成に対処する必要がありますが、私は、私は別のチャンネル間の「ブロッキング」問題を見ていたアプリケーションをデバッグするとき。春の統合非同期エラー処理

ダイナミックなチャンネルを得るために、私は、親/子コンテキストでアプリケーションを分割し、私は次の春の統合インフラストラクチャを持っている:

Gateway (parent) --> Transformer(Parent) --> Router (Parent/Child) --> TCP outbound (child) 

すべてのTCP接続がOKのとき、この設定は正常に動作します。テスト目的のために、私は、クライアントが接続されている別のサーバーを停止していると私はerrorChannelはエラーのみを受け取る(接続が拒否した)が、アダプタの残りの部分をも停止されているか見ることができました。これらのエラーをリダイレクト/破棄/分離して共通のerrorChannelへの伝播を避けたいと思います。

私はerrorChannelを理解するには、親コンテキスト内で共有共通チャネル、ですが、どのように私は、それぞれの子のコンテキストのための完全な分離シナリオを開発することができます?。共通のゲートウェイは問題ですか?

私はポストError handling in Spring integration flow asyncを参照してくださいが、私はそれぞれの子のための完全な分離された環境を持っていると私は、これらの動的分離の利点を活用したいと思います。これは可能ですか?

答えて

0

あなたは、独自のエラーチャネルとそれぞれの子に別のゲートウェイを追加することができます。

--> Router (Parent/Child) -> service-activator (child) -> gateway(child) -> TCP Out. 

ゲートウェイサービスのインターフェイスには返信が必要でないため、voidリターンが必要です。

+0

これは本当に役に立ちました。 – crm86