バッチジョブでは、ジョブリポジトリとしてデータベースを使用し、バッチジョブの実行情報をジョブリポジトリに格納します。以下のデータベースがジョブリポジトリとして利用可能です。
Oracle
SQL Server
Symfoware Server (Postgres)
以下にジョブリポジトリとして使用するデータベースの環境設定について説明します。
データベースの生成
データベースのテーブルを生成します。
テーブル生成のDDLファイルが、以下に格納されています。DDLを参照し、テーブルを生成します。DDLファイルでは、テーブルを削除後、生成する処理を実施しています。そのため、初回の実行時には、テーブルの削除処理(DROP TABLE)に失敗しますが、処理として問題ありません。
[Java EE 7インストールディレクトリ]\glassfish\lib\install\databases |
[Java EE 7インストールディレクトリ]/glassfish/lib/install/databases |
下記の各データベースに対応したDDLファイルを使用してください。
Oracle:jsr352-oracle.sql
SQL Server:jsr352-mssqlserver.sql
Symfoware Server (Postgres):jsr352-symfoware-postgres.sql
接続するユーザに対して、スキーマのテーブルにアクセスできる権限を設定します。対象となるテーブルについては「4.20.3 データベースの削除」を参照してください。
データベースの接続設定
データベースに対するJDBC接続プールを作成します。
JDBC接続プールの作成方法については、「10.1.14.1 create-jdbc-connection-poolサブコマンド」を参照してください。
JDBC接続プールに対してJDBCリソースを作成します。
JDBCリソースの作成方法については、「10.1.14.5 create-jdbc-resourceサブコマンド」を参照してください。
JDBCリソースを設定します。
JDBCリソースの設定方法については、「10.1.21.4 set-batch-runtime-configurationサブコマンド」を参照してください。
注意
バッチジョブにおけるチャンクステップ処理では、チェックポイント情報の更新処理などにJTAのトランザクション機能を利用しています。
このため、チャンクステップのトランザクション内で別のJDBCデータソースやJMSリソースにアクセスする場合には、グローバルトランザクションに対応するデータソース(XADataSource)を使用する必要があります。
一般的には、グローバルトランザクションにより性能のオーバーヘッドが発生するため、必要性に応じて使用してください。
管理実行サービスの設定
バッチジョブは管理実行サービスが提供するスレッドで動作します。管理実行サービスの情報の設定方法については、「10.1.21.4 set-batch-runtime-configurationサブコマンド」を参照してください。デフォルトでは管理実行サービスとして「concurrent/__defaultManagedExecutorService」を使用します。管理実行サービスについては「4.21.1 管理実行サービス」を参照してください。
注意
以下の条件の場合、バッチジョブが正しく実行されない場合があります。この場合、IJServerクラスタごとに異なるデータベース接続ユーザを使用するか、または、データベース接続ユーザが同一の場合には同じスキーマを使用するようにしてください。
ジョブリポジトリにSQL Serverを使用している。かつ、
複数のIJServerクラスタでバッチジョブを使用している。かつ、
それぞれのIJServerクラスタにて同一ユーザーでデータベースに接続している。かつ、
それぞれのIJServerクラスタで異なるスキーマ名を使用している。