これが私のチャンネル設定です:
- jdbc メッセージストアでサポートされるキュー
- キューを pub-sub チャネルに接続するブリッジ
- pub-sub チャネルで構成されたポーラーはトランザクション対応です
サブスクライバーのいずれかで例外が発生すると、トランザクションはロールバックされ、メッセージは永遠に再試行されます。メッセージは、すべてのサブスクライバーによって再び処理されます。これが少なくともサブスクライバーの永続的な例外である場合、メッセージは他のサブスクライバーによって処理されていません。
ここで最良の例外処理戦略は何ですか?
サブスクライバーでの例外処理を好みます。つまり、失敗したサブスクライバーのみが再試行し、他のサブスクライバーはメッセージを処理して先に進みます。
これは春の統合でどのように実装できますか?
詳細はこちら..
ポーラーがトランザクション化され、少なくとも 1 つのサブスクライバーでメッセージの処理が失敗した場合、メッセージはメッセージ ストアにロールバックされ、再試行されます。また、errorChannel の jdbc メッセージ ストアも構成しました。メッセージ処理が失敗するたびに、メッセージは元のメッセージ ストアにロールバックされ、エラー チャネル メッセージ ストアには再試行ごとに 1 つのエントリが含まれます。
ポーラーが非トランザクションになり、メッセージが最初のサブスクライバーでの処理に失敗した場合、メッセージはエラー チャネルに置かれますが、2 番目のサブスクライバーはメッセージを取得しません。
何か根本的に間違っているようです..それは私の設定にありますか?