5

私は今、Spring-Batch にステップ間トランザクションのようなものがないことを知っています。データベースでいくつかのアクションを実行する多くのステップを含む複雑なバッチジョブを開発しています。それぞれが同じトランザクションに属するように、それぞれが他のアクションと関連しています。Spring-Batch パラダイムを理解する方法では、トランザクション性を持たせるためにワンステップ ジョブを使用する必要があります。最近または将来のバージョンで、ある種のジョブレベルのトランザクション性を持つという考え (または他の方法) はありますか?

Edit1: このリンクのポイント 6.3.1 で、複数のプロセッサを連結する方法を見つけましたが、現在のニーズを満たしていません。

Edit2:この他のリンクは、私の仕事を呼び出す「@Transactional」アノテーションを持つエンベロープ クラスを使用する可能性を示唆しているため、外部トランザクションが必要です。

4

1 に答える 1

3

最後に、これを行う方法を見つけました。前の版で述べたように、トランザクション メソッドからジョブを呼び出す必要があります。

@Transactional(propagation=Propagation.REQUIRED)

このレベルで伝播レベルを必須に設定することが重要です。そして、ジョブレベルの伝播を「必須」に設定し、これでジョブとステップを達成して、トランザクションを現在のものに追加します。それにもかかわらず、Michael Lange が書いたように、限界を超えたコミットやロールバックを避けるために、管理している潜在的なボリューム サイズを考慮することが重要です。

于 2012-09-21T07:51:48.987 に答える