JobRepositoryはJobLauncher、Job、Stepの実行状況や実行結果を永続化する機能です。JobRepositoryを定義するためには、JobRepositoryID、使用するデータデータソース、使用するデータソースに使用するトランザクションマネージャの設定が必要です。
JobRepositoryにて必要となるテーブルについては、公式リファレンスの“Appendix B. Meta-Data Schema”を参照して作成してください。JobRepositoryに使用するテーブルは、Jobを実行する前に作成してください。
JobRepositoryの定義を以下に示します。
例
設定ファイル(context.xml):
<!-- トランザクションマネージャ定義 --> <bean id="jdbcTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="jobRepository_DataSource" /> </bean> <!-- データソース定義 --> <bean id="jobRepository_DataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> … </bean> <!-- JobRepository定義 --> <batch:job-repository id="testJobRepository" transaction-manager="jobRepository_TransactionManager" data-source="jobRepository_DataSource" /> |
JobRepositoryの以下のテーブルは、Job実行後の問題の特定や解決のために使用します。
BATCH_JOB_EXECUTION
BATCH_STEP_EXECUTION
EXECUTIONテーブルには、開始時刻、終了時刻、終了ステータスやエラー発生時のエラーメッセージなどの情報が格納されます。開始時刻、終了時刻、終了ステータスから問題の発生したJob、Stepを特定し、格納されているエラーメッセージを元に問題を修正して、Jobを再実行してください。
■BATCH_JOB_EXECUTIONテーブル
フィールド名 | 概要 |
JOB_EXECUTION_ID | JobIDです。 |
CREATE_TIME | Jobの作成時刻です。 |
START_TIME | Jobの開始時刻です。 |
END_TIME | Jobの終了時刻です。 |
STATUS | Jobの実行状態です。 |
EXIT_CODE | Jobの終了コードが格納されます。 |
EXIT_MESSAGE | Jobのメッセージが格納されます。 |
LAST_UPDATED | Jobが最後に更新された時刻です。 |
■BATCH_STEP_EXECUTIONテーブル
フィールド名 | 概要 |
STEP_EXECUTION_ID | StepIDです。 |
STEP_NAME | Step名です。 |
JOB_EXECUTION_ID | BATCH_JOB_EXECUTIONテーブルの外部キーです。 |
START_TIME | Stepの開始時刻です。 |
END_TIME | Stepの終了時刻です。 |
STATUS | Stepの実行状態です。 |
COMMIT_COUNT | コミットした回数です。 |
READ_COUNT | ItemReaderで取得したアイテム数です。 |
FILTER_COUNT | ItemProcessorで除外したアイテム数です。 |
WRITE_COUNT | ItemWriterでコミットしたアイテム数です。 |
EXIT_CODE | Stepの終了コードです。 |
EXIT_MESSAGE | Stepのメッセージが格納されます。 |
LAST_UPDATED | Stepが最後に更新された時刻です。 |