1

これが私のチャンネル設定です:

  1. jdbc メッセージストアでサポートされるキュー
  2. キューを pub-sub チャネルに接続するブリッジ
  3. pub-sub チャネルで構成されたポーラーはトランザクション対応です

サブスクライバーのいずれかで例外が発生すると、トランザクションはロールバックされ、メッセージは永遠に再試行されます。メッセージは、すべてのサブスクライバーによって再び処理されます。これが少なくともサブスクライバーの永続的な例外である場合、メッセージは他のサブスクライバーによって処理されていません。

ここで最良の例外処理戦略は何ですか?
サブスクライバーでの例外処理を好みます。つまり、失敗したサブスクライバーのみが再試行し、他のサブスクライバーはメッセージを処理して先に進みます。

これは春の統合でどのように実装できますか?

詳細はこちら..

  1. ポーラーがトランザクション化され、少なくとも 1 つのサブスクライバーでメッセージの処理が失敗した場合、メッセージはメッセージ ストアにロールバックされ、再試行されます。また、errorChannel の jdbc メッセージ ストアも構成しました。メッセージ処理が失敗するたびに、メッセージは元のメッセージ ストアにロールバックされ、エラー チャネル メッセージ ストアには再試行ごとに 1 つのエントリが含まれます。

  2. ポーラーが非トランザクションになり、メッセージが最初のサブスクライバーでの処理に失敗した場合、メッセージはエラー チャネルに置かれますが、2 番目のサブスクライバーはメッセージを取得しません。

何か根本的に間違っているようです..それは私の設定にありますか?

4

1 に答える 1