JBatch (Payara 4.1.144) - khasunuma/Payara GitHub Wiki
このページでは、Payara 4.1.144 で導入された新しい JBatch の新機能の使い方について説明します。
${Product-Root} - Payara Server ディレクトリのルートを表します。具体的には Payara をインストールした場所を参照します。
${Domain} - Payara ドメイン名への参照を表します。
このリリースの Payara にはバッチ・テーブルを保持するデータベース・スキーマ名を定義する機能が含まれています。これは管理コンソール、domain.xml ファイルまたは asadmin コマンドによって設定可能です。
- インスタンスまたはクラスターをクリックして構成ページに移動します。
- バッチ タブを選択し、さらに 構成 サブタブをクリックします。
- Database Schema Name フィールドに値を入力します。
- 変更を保存します。
設定には set-batch-runtime-configuration
コマンドを使用します。
コマンドは特定の Executor またはデータソースのルックアップ名を要求しますので、-x or -d オプションを用いて設定します。
コマンドはデフォルトで管理サーバーのインスタンス (server) を対象とするため、異なるインスタンスまたはクラスターを対象とするには --target オプションを使用します。
スキーマ名を設定するには --schemaName オプションまたはショートカット -n を使用します。
サンプルを以下に示します:
asadmin set-batch-runtime-configuration -d jdbc/__default --target cluster1 -n test
このコマンドは管理サーバーがポート 4848 で待機していることを想定しいます。もし異なる場合は -p オプションでポートを指定します。以下に例を示します:
asadmin -p 5048 set-batch-runtime-configuration -d jdbc/__default --target cluster1 -n test
- ドメインの domain.xml ファイルを編集可能な状態で開きます。
- ${Product_Root}/glassfish/domains/${Domain}/config/ 以下を探します。
-
<batch-runtime-configuration> タグを <config> tag (e.g. <config name="server-config"> for the Admin Server) タグ以下で見つけたら、次のようにスキーマ名を入力します:
<batch-runtime-configuration schema-name="testSchemaName"></batch-runtime-configuration>
- Note - もしドメインの domain.xml ファイルを編集するより前に一度もドメインを起動していない場合、batch-runtime-configuration タグは作成されていませんのでユーザー自身で追加する必要があります。
バッチ・ランタイムの構成を設定します。このコマンドを使用するには管理サーバーが起動している必要があります。
Option | Shortcut | Description | Default | Mandatory |
---|---|---|---|---|
--target | The instance or cluster to set the JBatch configuration of. | server | No | |
--datasourcelookupname | -d | Sets the name of the datasource to lookup and use. | Yes, or specify executorServiceLookupName | |
--executorservicelookupname | -x | Sets the name of the executor service to lookup and use. | Yes, or specify datasourceLookupName | |
--schemaName | -n | Sets the name of the database schema that holds the batch tables. | APP | No |
JBatch は内部的にはスキーマ当たり 1 つを超えるバッチ・テーブルを作成することはありません。そしてスキーマに prefixes と suffixes がテーブル名に含まれる JBatch テーブルのセットが存在し、 Glassfish のバッチ構成で、異なる名前のバッチ・テーブルを使用する目的で (例えばテーブルの prefix と suffix を設定しない) 同じスキーマを指定している場合には、Jbatch の初期化フェーズ実行中に、JBatch はまだ存在しない場合にはこれらのテーブルの作成を試みます。しかし、テーブルの制約名が同一スキーマ上にある既存のバッチ・テーブルに既に存在している場合には、テーブルの作成は失敗します。1 つの場合はもちろん異なる名前の中から適切なバッチ・スキーマ・オブジェクトを作成する SQL スクリプトが実行されます。