
![[8.5.5.6 以降]](../ng_v8556.gif)
Java バッチのパーシスタンス構成
Java バッチでは、パーシスタント・ストアを使用して状況、特定のジョブ・インスタンスの複数回の実行をまたいでチェックポイント、およびアプリケーション・パーシスタント・データを永続化します。パーシスタント・ストアにより、前の実行が失敗した場合、または前の実行を停止しなければならない場合に、再開されるジョブに該当するデータを提供して、ジョブ・インスタンスを再開できます。
Java バッチのメモリー・ベースのパーシスタンス構成
バッチのパーシスタンスにより、ジョブ・インスタンスが FAILED または STOPPED 状態で終了しても、その実行を再開できます。バッチのパーシスタンス構成がない場合、Java バッチは、メモリー・ベースのパーシスタンスのデフォルト機能を使用して、特定のジョブ・インスタンスの複数回の実行にまたがる状況、チェックポイント、およびアプリケーション・パーシスタント・データを追跡します。
Java バッチのデフォルトのメモリー・ベースのパーシスタンス実装は、server.xml ファイルに batchPersistence および databaseStore elements が存在しない場合に、基盤のバッチ・コンテナーによって使用されます。
Java バッチのデータベース・パーシスタンス構成
デフォルトでは、バッチ・ランタイムは、databaseStore エレメントに定義されているサーバー構成に基づいて、存在しない表を自動作成します。表定義は、データベース・ストアの schema 属性および tablePrefix 属性に基づいて、カスタマイズされます。
代わりに、ddlGen スクリプトを使用して、サーバー構成に基づいて DDL を生成することができます。必要に応じて、手動で表を作成する前に DDL をカスタマイズすることができます。この DDL は、schema や tablePrefix などのサーバー構成も取り込み、databaseStore によって参照されている dataSource のデータベース・タイプに該当する SQL を含みます。
表の自動作成を無効にするには、databaseStore で createTables="false" 属性を使用します。このオプションを使用して、手動で作成した表をバッチ・ランタイムが予期せず検出できなかった場合でも、自動作成された表を使用するのではなく、手動で作成された表を確実に使用できます。
このページで表示されるサンプルでは、デフォルトの自動作成動作を使用しています。この動作は、createTables="true" と等価です。
パーシスタンス構成のサンプル
<!-- Batch persistence config. References a databaseStore. -->
<batchPersistence jobStoreRef="BatchDatabaseStore" />
<!-- The database store for the batch tables. -->
<!-- Note this database store is referenced by the batchPersistence element. -->
<databaseStore id="BatchDatabaseStore" dataSourceRef="batchDB" schema="JBATCH" tablePrefix="" />
<!-- Derby JDBC driver -->
<!-- Note this library is referenced by the dataSource element -->
<library id="DerbyLib">
<fileset dir="${server.config.dir}/resources/derby" />
</library>
<!-- Data source for the batch tables. -->
<!-- Note this data source is referenced by databaseStore element -->
<dataSource id="batchDB">
<jdbcDriver libraryRef="DerbyLib"/>
<properties.derby.embedded
databaseName="${server.config.dir}/resources/RUNTIMEDB"
createDatabase="create"
user="user"
password="pass" />
</dataSource>