Java バッチのパーシスタンス構成

Java™ バッチでは、パーシスタント・ストアを使用して状況、特定のジョブ・インスタンスの複数回の実行をまたいでチェックポイント、およびアプリケーション・パーシスタント・データを永続化します。パーシスタント・ストアにより、前の実行が失敗した場合、または前の実行を停止しなければならない場合に、再開されるジョブに該当するデータを提供して、ジョブ・インスタンスを再開できます。

Java バッチのメモリー・ベースのパーシスタンス構成

バッチのパーシスタンスにより、ジョブ・インスタンスが FAILED または STOPPED 状態で終了しても、その実行を再開できます。バッチのパーシスタンスのためのデータベース構成がない場合、Java バッチでは、特定のジョブ・インスタンスの複数回の実行をまたいで、状況、チェックポイント、およびアプリケーション・パーシスタント・データを追跡するように、メモリー・ベースのパーシスタンスがデフォルト設定されます。

注: デフォルトのメモリー・ベースのパーシスタンスには、明快で重要な制限があります。 バッチ・コンテナー・ランタイム環境またはサーバー JVM が異常終了または再始動した場合、パーシスタンスは失われます。この機能は開発用のみであり、実動システムや重要なバッチ処理のサポート用に使用してはなりません。

Java バッチのデータベース・パーシスタンス構成

バッチのパーシスタンスをデータベース・ストアを通して構成できます。データベース・ストアはデータ・ソースを参照し、そのデータ・ソースは、JDBC ドライバー、具体的なデータベース・ロケーション、およびその他のデータベース・カスタム・プロパティーを参照します。バッチ・パーシスタンス表の修飾名は、データベース・ストア自体の schema 属性および tablePrefix 属性を使用して構成できます。

defaultDatabaseStore という名前のデフォルトのデータベース・ストアが提供されていて、DefaultDataSource という名前のデフォルトのデータ・ソースを構成することによってアクティブになります。

あるいは、databaseStore エレメントを使用して異なるデータベース・ストアを構成し、その databaseStore を参照する jobStoreRef 属性を指定した batchPersistence エレメントを追加することによって、それを使用するようバッチ・パーシスタンスを構成できます。

Java バッチ・データベースの接続プールに関する考慮事項

通常、Java バッチ・ランタイムは、データベースに対して呼び出しが行われたときは get-use-close パターンに従い、使用している時間より長く JDBC 接続を保持することはありません。これは、特定の数のジョブおよびパーティションを 1 つのサーバー上で実行するために必要な接続の数についての問題は、ほぼ完全に管理者の判断に任せられることを意味します。

デッドロックを回避するために、接続プールのサイズを、稼働中のジョブおよびパーティションの数以上に構成する必要はありません。接続が少なすぎることが原因のリソース競合があっても、準最適パフォーマンスは達成できます。バッチ・コンポーネントのアクティブ化など、特殊なパスを実行する場合は、必要な接続の最小数 (おそらく 1 より大きい数) が存在することもあります。管理者は、デフォルト値から始めて、接続プールのメトリックおよびモニタリングを使用して、例えば、パフォーマンスとリソース消費のバランスを取ることができます。これは、JDBC 接続のランタイム使用量に適用されます。アプリケーション・コードによって JDBC 接続プールが使用されるため、管理者が JDBC 接続プールについて考慮する必要がある場合があります。

データベース表の自動作成と手動作成

デフォルトでは、バッチ・ランタイムは、バッチ・パーシスタンス・データベース・ストアに、存在しない表を自動作成します。また、このデフォルトの自動作成動作は、新規列定義に関与するメンテナンスが適用された場合は、既存表を拡張し、新規列を作成します。

代わりに、ddlGen スクリプトを使用して、サーバー構成に基づいて DDL を生成することができます。必要に応じて、手動で表を作成する前に DDL をカスタマイズすることができます。この DDL は、schematablePrefix などのサーバー構成も取り込み、データベース・ストアによって参照されているデータ・ソースのデータベース・タイプに該当する SQL を含みます。

注: カスタマイズされた DDL は、正整数の 1 次キー ID を使用する必要があります。データベース・パーシスタンスの制限として、 Java バッチは、1 次キー ID 列に永続的に保持される ID として負およびゼロの整数を受け入れません。Java バッチ・コンテナー・ランタイムは、 1 次キー ID 列に永続的に保持される正整数のジョブ ID を使用するジョブのみを実行します。

表の自動作成を無効にするには、databaseStore で createTables="false" 属性を使用します。このオプションを使用して、手動で作成した表をバッチ・ランタイムが予期せず検出できなかった場合でも、自動作成された表を使用するのではなく、手動で作成された表を確実に使用できます。

生成された DDL をカスタマイズして表を手動で作成すること、および、可能なカスタマイズについて詳しくは、「Liberty Batch - Job Repository Configuration」ホワイト・ペーパーを参照してください。このホワイト・ペーパーは z/OS® オペレーティング・システム上の DB2® に関するものですが、その他のデータベースおよびプラットフォームの場合にも役立つ情報があります。

パーシスタンス構成のサンプル

Derby データベース RUNTIMEDB を使用して構成された自動作成された表がある、デフォルトのデータベース・ストア:

<!-- Derby JDBC driver -->
<library id="DerbyLib"> 
    <fileset dir="${server.config.dir}/resources/derby" />
</library> 
<!-- Data source for batch tables, and possibly other components. --> 
<dataSource id="DefaultDataSource">
    <jdbcDriver libraryRef="DerbyLib" />
    <properties.derby.embedded 
        databaseName="${server.config.dir}/resources/RUNTIMEDB"         createDatabase="create" 
        user="user" password="pass" /> 
</dataSource> 

手動で作成された表、カスタム・スキーマ、表プレフィックス、バッチ・データ・ソースがある、バッチ固有のデータベース・ストア:

<batchPersistence jobStoreRef="BatchDatabaseStore" />

<!-- DB Store config only used by batch components -->
<databaseStore id="BatchDatabaseStore" dataSourceRef="BatchDS"
    createTables="false" schema="HLQ" tablePrefix="JB1"/> 

<!-- Data source for batch tables --> 
<dataSource id="BatchDS"> 
    <jdbcDriver libraryRef="DerbyLib" />
     ...
</dataSource> 

認証構成、カスタム・スキーマ、自動作成された表、デフォルトのデータ・ソースがある、デフォルトのデータベース・ストア:

<!-- DB Store used by batch and possibly other runtime components. --> 
<databaseStore id="defaultDatabaseStore" schema="HLQ">
    <authData user="user1" password="password1"/>  
</databaseStore>

<!-- Data source for batch tables, and possibly other components. --> <dataSource id="DefaultDataSource"> 
    <jdbcDriver libraryRef="DerbyLib" />
    ...
</dataSource> 

参照

生成された DDL をカスタマイズすることによる表の手動作成についてと、可能なカスタマイズについて詳しくは、ホワイト・ペーパー https://www.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP102716 を参照してください。


トピックのタイプを示すアイコン 参照トピック

ファイル名: rwlp_batch_persistence_config.html