を最初から始めるんが、再試行のための私の設定です:春のバッチ再試行 - 春はそれが中断したところから開始するか、以下
以下<batch:job id="myLookUpLoadJob">
<batch:step id="myLookUpTruncateStep">
<batch:tasklet ref="myLookupTruncateTasklet" />
<batch:next on="*" to="myLookUpLoadStep"/>
</batch:step>
<batch:step id="myLookUpLoadStep">
<batch:tasklet>
<batch:chunk reader="myLookupItemReader"
writer="myLookupItemWriter" commit-interval="100" retry-limit="2">
<retryable-exception-classes>
<include class=" org.springframework.dao.DataAccessResourceFailureException"/>
</retryable-exception-classes>
</batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
は、私は春のドキュメントから回答を得ることができないのですそのために私の質問です - 入力を感謝します
リトライが発生したときに200行を処理した後で例外が発生すると、行201または行1から開始されますか?
編集
私が解決しようとしている問題は、ジョブの実行時に、すぐに(100行)最初のチャンクのコミット後、ItemReaderへの接続が(リセット)終了してしまうことです。その後、ジョブは再開され、正常に完了します。
これは役立つかもしれない場合、私は疑問に思って:AbstractCursorItemReader
から
ステップ処理の残りの部分と、カーソルのために使用された接続を共有するオプション(setUseSharedExtendedConnection(ブール値)がありますこのフラグをtrueに設定すると、ステップ処理の一部として実行される各コミット後に接続が閉じられて解放されないように、ExtendedConnectionDataSourceProxyでDataSourceをラップする必要があります。また、JDBC 3.0以降をサポートするJDBCドライバも使用する必要がありますカーソルが追加されて開きます'HOLD_CURSORS_OVER_COMMIT'オプションが有効になっています。
あなたはどんな読者を使っていますか? –
org.springframework.batch.item.database.JdbcCursorItemReader。また、読み書きは2つの異なるデータソースに対して行われるため、最初はXA分散トランザクションを実行することを考えました。 –
@MichaelMinella - 更新はありましたか?私は来週早々にテストを再開する予定です(今週はデプロイメントがあるので)。 AbstractCursorItemReader内のドキュメントのUseSharedExtendedConnectionは試行錯誤しているようです。 –