JBatch (Payara 4.1.153) - khasunuma/Payara GitHub Wiki

目次

1. 概要

このページでは、Payara 4.1.153 で追加された JBatch の新機能の使い方について説明します。

2. ドキュメント規約

${Product-Root} - Payara Server ディレクトリのルートを表します。具体的には Payara をインストールした場所を参照します。 ${Domain} - Payara ドメイン名への参照を表します。

3. スキーマ名の定義

このリリースの Payara にはバッチ・テーブルを保持するデータベース・スキーマ名を定義する機能が含まれています。これは管理コンソール、domain.xml ファイルまたは asadmin コマンドによって設定可能です。

3.1 管理コンソールからのスキーマ名の定義

  • インスタンスまたはクラスターをクリックして構成ページに移動します。
  • バッチ タブを選択し、さらに 構成 サブタブをクリックします。
  • Database Schema Name フィールドに値を入力します。
  • 変更を保存します。

3.2 asadmin を用いたスキーマ名の定義

設定には 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

3.3 domain.xml ファイルにおけるスキーマ名の定義

  • ドメインの 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 タグは作成されていませんのでユーザー自身で追加する必要があります。

3.4 空のスキーマ名の扱い

スキーマ名を空にした場合、使用されるスキーマ名は使用するデータベースに依存します。MySQL では test スキーマ、Derby、Oracle、DB2 および PostgreSQL では JBatch 構成時に使用した JDBC リソースに従った JDBC コネクションプールのユーザー名が使用されます。JBatch 側のデフォルトのスキーマ名は APP で、オーバーライドしない限り変更されません。スキーマ名を明示的に空白とした場合にはこのような挙動になることに注意してください。

4. テーブルの Prefix and/or Suffix の設定

このリリースの Payara ではバッチ・テーブル名の prefix and/or suffix を設定することができます。これは管理コンソールからの操作、domain.xml ファイルの修正、asadmin コマンドのいずれかで行うことが可能です。 _Note - テーブルの prefix と suffix の設定は non-RDBMS ベースのデータストアでは無視される可能性があります。

4.1 管理コンソールからのテーブルの Table Prefix and/or Suffix の設定

  • インスタンスまたはクラスターから構成ページへ移動します。
  • バッチ タブを選択し、さらに 構成 サブタブを選択します。
  • 設定したい値を Table Prefix および Table Suffix フィールドに設定します。
  • 変更を保存します。

4.2 asadmin を用いたテーブルの Table Prefix and/or Suffix の設定

設定には set-batch-runtime-configuration コマンドを使用します。
コマンドは特定の Executor またはデータソースのルックアップ名を要求しますので、-x or -d オプションを用いて設定します。 コマンドはデフォルトで管理サーバーのインスタンス (server) を対象とするため、異なるインスタンスまたはクラスターを対象とするには --target オプションを使用します。
テーブルの Prefix を設定するには --tablePrefix オプションを使用します。 テーブルの Suffix を設定するには --tableSuffix オプションを使用します。 サンプルを以下に示します:

asadmin set-batch-runtime-configuration -d jdbc/__default --target cluster1 --tablePrefix PRE --tableSuffix SFX

このコマンドは管理サーバーがポート 4848 で待機していることを想定しいます。もし異なる場合は -p オプションでポートを指定します。以下に例を示します:
asadmin -p 5048 set-batch-runtime-configuration -d jdbc/__default --target cluster1 --tablePrefix PRE --tableSuffix SFX

4.3 domain.xml ファイルにおけるテーブルの Table Prefix and/or Suffix

  • ドメインの 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 table-prefix="PRE" table-suffix="SFX"></batch-runtime-configuration>
  • Note - もしドメインの domain.xml ファイルを編集するより前に一度もドメインを起動していない場合、batch-runtime-configuration タグは作成されていませんのでユーザー自身で追加する必要があります。

5. JBatch での MySQL、PostgreSQL、Oracle または DB2 の使い方

Derby を使用する場合と同様の方法で簡単に JBatch を構成することができます。

管理コンソールの場合:

  • コネクションプールの作成:
    • リソース > JDBC > JDBC コネクションプール を辿り 新規... をクリックします。
    • Pool 名 フィールドに名前を入力し、 リソース・タイプ からリソースを選択、データベース・ドライバー・ベンダー から DB2、MySQL、Oracle、PostgreSQL のいずれかを選択します。
    • 次のページで追加の構成オプションを設定します。
    • 完了 をクリックします。
  • JDBC リソースの作成:
    • リソース > JDBC > JDBC リソース を辿り 新規... をクリックします。
    • JNDI 名 フィールドに名前を入力し、データソースとして作成した Pool 名 を選択します。
    • 追加のプロパティを設定します。
    • OK をクリックします。
  • インスタンスまたはクラスターからバッチ構成ページを辿ります。
    • インスタンスまたはクラスターをクリックして構成ページに移動します。
    • バッチ タブを表示し、さらに 構成 サブタブを表示します。
  • 新しいデータソースを データソース・ルックアップ名 から選択します。
  • 変更を保存します。

5.1 制限事項

JBatch は内部的にはスキーマ当たり 1 つを超えるバッチ・テーブルを作成することはありません。そしてスキーマに prefixes と suffixes がテーブル名に含まれる JBatch テーブルのセットが存在し、 Glassfish のバッチ構成で、異なる名前のバッチ・テーブルを使用する目的で (例えばテーブルの prefix と suffix を設定しない) 同じスキーマを指定している場合には、Jbatch の初期化フェーズ実行中に、JBatch はまだ存在しない場合にはこれらのテーブルの作成を試みます。しかし、テーブルの制約名が同一スキーマ上にある既存のバッチ・テーブルに既に存在している場合には、テーブルの作成は失敗します。1 つの場合はもちろん異なる名前の中から適切なバッチ・スキーマ・オブジェクトを作成する SQL スクリプトが実行されます。

6. 代替の asadmin コマンド

6.1 set-batch-runtime-configuration

バッチ・ランタイムの構成を設定します。このコマンドを使用するには管理サーバーが起動している必要があります。

オプション 短縮名 説明 既定値 必須
--target JBatch 構成を設定するインスタンスまたはクラスタ。 server 任意
--datasourcelookupname -d 検出および使用するデータソース名を指定する。 必須、または executorServiceLookupName の設定値
--executorservicelookupname -x 検出および使用する Executor サービス名を指定する。 必須、または executorserviceLookupName の設定値
--schemaName -n バッチ・テーブルを含むデータベース・スキーマ名を設定する。 APP 任意
--tablePrefix バッチ・テーブル名に適用する接頭辞を設定する。 任意
--tableSuffix バッチ・テーブル名に適用する接尾辞を設定する。 任意
⚠️ **GitHub.com Fallback** ⚠️