次のチャンク処理ステップがあります。
- 1) データベースにユーザーを作成します
- 2) HTTP 呼び出しを介して、リモート システムでアカウントを開きます。
リモート システムのアカウントの料金を支払います。バッチの失敗時に、データベースでユーザーがロールバックされたために使用されないリモート アカウントを作成することは避けたいと考えています...
チャンク サイズが 100 の場合、50 番目の項目に対する 2) のリモート呼び出し中に例外が発生した場合、ビジネス ロジックはその例外をキャッチし、その特定の項目のリモート アカウントを閉じてから、チャンクのロールバックをトリガーする例外。
ただし、前に処理された 49 番目のアイテムについては、データベース内のユーザーはロールバックされますが、アカウントは閉鎖されません。
したがって、50 人のユーザーが DB でロールバックされますが、1 つのリモート アカウントのみが閉鎖されます。
50 のリモート アカウントを閉じることができるように手順を整理するにはどうすればよいですか (この手動ロールバックが失敗した場合、一貫性の問題ではありません: ベスト エフォート)。