2012-07-11 16 views
6

私の質問はSpringバッチとトランザクションに関連しています。Springバッチでのコミット間隔とロールバックの扱い

私のステップの1つに、のコミット間隔をと決めました。

また、これらのレコードの中に1000個のレコードがあると仮定すると、itemWriterが失敗し、チャンク全体がロールバックされます(私の例では50個のレコード)。

ジョブが完了した後で問題のチャンクを無視して、49個の有効なレコードがデータベースに書き込まれるようにするための状態は何ですか?

答えて

12

がいくつか調査した結果、私は、次のを思い付いた:アイテムライターがチャンク(ここでは50項目)をコミットに失敗した場合は

ことにより、ロールバックを引き起こし、春のバッチを個別に持つ問題のチャンクの各項目を再実行します各商品ごとに1つのコミット/トランザクション。

したがって、Springバッチでチャンクをロールバックさせた1つのアイテムを除いて、49個のアイテムすべてがデータベースに存在します。

+0

これについての参考情報を表示できますか? –

+0

良い点。これは本からのものです:Spring Batch in Action、Manning。 – balteo

関連する問題