事前開始ジョブの使用

事前開始ジョブは、リモート・システム上のプログラムが IBM® i ホスト・サーバーとの通信を開始する前に実行を開始するバッチ・ジョブです。

これは、サブシステム記述の事前開始ジョブ項目を使用して、ジョブの開始時にどのプログラム、クラス、および記憶域プールを使用するかを判断します。 事前開始ジョブ項目には、事前開始ジョブのプールを作成および管理するために使用するサブシステムの属性を指定しなければなりません。

事前開始ジョブを使用すると、サーバーとの接続を開始するときのパフォーマンスが向上します。 事前開始ジョブ項目はサブシステム内で定義されます。 事前開始ジョブは、サブシステムが始動されるときに活動状態になります。あるいは、事前開始ジョブの開始 (STRPJ) および事前開始ジョブの終了 (ENDPJ) コマンドを使用して、事前開始ジョブを制御することもできます。

事前開始ジョブに関連したシステム情報 (DSPACTPJ など) では、「プログラム始動要求」という語は、事前開始ジョブを始動するための要求を表す限定的な意味で使用されます。 これは、そのシステム情報がソケット接続要求の結果として開始された事前開始ジョブに関連したものであっても同じです。

注:
  • 一般に、事前開始ジョブはプールに戻された後でも再使用できます。 事前開始ジョブが再使用される回数は、ADDPJE または CHGPJE CL コマンドの最大使用回数値 (MAXUSE) に指定されている値によって決まります。 接続クライアント・コードは、事前開始ジョブへ接続されている間に使用した資源をクリーンアップすることが常に最良の策である一方、ほとんどのサーバーは、安全な事前開始ジョブの再利用を可能にするために十分な自動クリーンアップを行います。 例外は、MAXUSE 値が 1 であるリモート・コマンドおよび分散プログラム呼び出しサーバーです。 このサーバーでは、事前開始ジョブのユーザーの 1 人が使用している資源が、その事前開始ジョブの使用を終了する前にクリーンアップされる保証がありません。 これらの資源が後続のユーザーによって不注意にアクセスされることを防ぐために、リモート・コマンドおよび分散プログラム呼び出しサーバーの MAXUSE 値を変更しないでください。
  • デフォルトでは、一部のサーバー・ジョブは QUSRWRK または QSERVER の中で実行されます。 System i ® Navigatorを使用すると、これらのサーバーの一部またはすべてを、選択したサブシステムで実行するように構成できます。
    1. IBM Navigator for i > ネットワーク > サーバー > IBM i アクセス.
    2. サブシステム構成を行うサーバーを右マウス・ボタンでクリックし、「プロパティー」を選択する。
    3. 「サブシステム」ページを使用して、サーバーを構成する。

    ジョブをデフォルト・サブシステムから移動するには、次の操作が必要です。

    1. 専用のサブシステム記述を作成する。
    2. ADDPJE コマンドを使用して、独自の事前開始ジョブ項目を追加する。 STRJOBS パラメーターを *YES に設定する。

    この操作をしておかないと、ジョブは デフォルト・サブシステム の中で実行されることになります。

ソケット通信インターフェースによりサポートされるホスト・サーバーはすべて、事前開始ジョブをサポートします。

該当するサーバーには次のものがあります。

  • ネットワーク印刷サーバー
  • リモート・コマンドおよび分散プログラム呼び出しサーバー
  • セントラル・サーバー
  • データベース・サーバー
  • セキュア・データベース・サーバー
  • ファイル・サーバー
  • セキュア・ファイル・サーバー
  • データ待ち行列サーバー
  • サインオン・サーバー (ソケット通信サポートを使用するサーバーに固有のもの)

次の表は、事前開始ジョブ項目属性のリストと、ソケット通信サポートを使用するホスト・サーバー用に構成される各属性の初期値を示しています。

サブシステム記述

事前開始ジョブ項目を含むサブシステム。

ホスト・サーバー
ネットワーク・プリント QUSRWRK
リモート・コマンドおよびプログラム呼び出し QUSRWRK
セントラル QUSRWRK
データベース QUSRWRK
セキュア・データベース QUSRWRK
ファイル QSERVER
セキュア・ファイル QSERVER
データ待ち行列 QUSRWRK
サインオン QUSRWRK

プログラム・ライブラリー/名前

事前開始ジョブが開始されるときに呼び出されるプログラム。

ホスト・サーバー
ネットワーク・プリント QSYS/QNPSERVS
リモート・コマンドおよびプログラム呼び出し QSYS/QZRCSRVS
セントラル QSYS/QZSCSRVS
データベース QSYS/QZDASOINIT
セキュア・データベース QSYS/QZDASSINIT
ファイル QSYS/QPWFSERVSO
セキュア・ファイル QSYS/QPWFSERVSS
データ待ち行列 QSYS/QZHQSSRV
サインオン QSYS/QZSOSIGN

ユーザー・プロファイル

ジョブを実行するユーザー・プロファイル。 これは、ジョブでユーザー・プロファイルとして示されます。 クライアントからサーバーの開始要求が受信されると、事前開始ジョブ機能は、その要求の中で指定されているユーザー・プロファイルに切り替えます。

ホスト・サーバー
ネットワーク・プリント QUSER
リモート・コマンドおよびプログラム呼び出し QUSER
セントラル QUSER
データベース QUSER
セキュア・データベース QUSER
ファイル QUSER
セキュア・ファイル QUSER
データ待ち行列 QUSER
サインオン QUSER

ジョブ名

ジョブが開始されるときのそのジョブの名前。

ホスト・サーバー
ネットワーク・プリント *PGM
リモート・コマンドおよびプログラム呼び出し *PGM
セントラル *PGM
データベース *PGM
セキュア・データベース *PGM
ファイル *PGM
セキュア・ファイル *PGM
データ待ち行列 *PGM
サインオン *PGM

ジョブ記述

事前開始ジョブに使用するジョブ記述。 *USRPRF が指定されている場合は、このジョブを実行するプロファイルのジョブ記述が使用されるという点に注意してください。 これは、QUSER のジョブ記述が使用されるということです。 要求元のジョブ記述からの属性もいくつか使用されます。印刷装置および出力待ち行列は、要求元ユーザーのジョブ記述からスワップされます。

ホスト・サーバー
ネットワーク・プリント QSYS/QZBSJOBD
リモート・コマンドおよびプログラム呼び出し QSYS/QZBSJOBD
セントラル QSYS/QZBSJOBD
データベース QGPL/QDFTSVR
セキュア・データベース QGPL/QDFTSVR
ファイル QGPL/QDFTSVR
セキュア・ファイル QGPL/QDFTSVR
データ待ち行列 QSYS/QZBSJOBD
サインオン QSYS/QZBSJOBD

ジョブ開始

事前開始ジョブを、サブシステムの始動時に自動的に開始するかどうかを示します。 この事前開始ジョブ項目は、出荷時には、サーバー・ジョブが必ず使用可能になるように *YES に設定されています。 STRHOSTSVR コマンドを使用すると、その処理の一環としてそれぞれの事前開始ジョブが開始されます。

ホスト・サーバー
ネットワーク・プリント *YES
リモート・コマンドおよびプログラム呼び出し *YES
セントラル *YES
データベース *YES
セキュア・データベース *YES
ファイル *YES
セキュア・ファイル *YES
データ待ち行列 *YES
サインオン *YES

初期ジョブ数

サブシステムの始動時に開始されるジョブの数。 この値は、インストール先特有の環境と要件に合わせて調整できます。

ホスト・サーバー
ネットワーク・プリント 1
リモート・コマンドおよびプログラム呼び出し 1
セントラル 1
データベース 1
セキュア・データベース 1
ファイル 1
セキュア・ファイル 1
データ待ち行列 1
サインオン 1

しきい値

1 つの事前開始ジョブ項目について使用できる事前開始ジョブの最小数。 このしきい値に達すると、追加の事前開始ジョブが自動的に開始されます。 このしきい値により、プール内に一定数のジョブが保持されます。

ホスト・サーバー
ネットワーク・プリント 1
リモート・コマンドおよびプログラム呼び出し 1
セントラル 1
データベース 1
セキュア・データベース 1
ファイル 1
セキュア・ファイル 1
データ待ち行列 1
サインオン 1

追加のジョブ数

しきい値に達したときに開始される追加の事前開始ジョブの数。

ホスト・サーバー
ネットワーク・プリント 2
リモート・コマンドおよびプログラム呼び出し 2
セントラル 2
データベース 2
セキュア・データベース 2
ファイル 2
セキュア・ファイル 2
データ待ち行列 2
サインオン 2

ジョブの最大数

この項目について活動状態にすることのできる事前開始ジョブの最大数。

ホスト・サーバー
ネットワーク・プリント *NOMAX
リモート・コマンドおよびプログラム呼び出し *NOMAX
セントラル *NOMAX
データベース *NOMAX
セキュア・データベース *NOMAX
ファイル *NOMAX
セキュア・ファイル *NOMAX
データ待ち行列 *NOMAX
サインオン *NOMAX

最大使用数

ジョブの最大使用回数。 この値が 200 であれば、事前開始ジョブは、サーバー始動要求が 200 回処理された時点で終了します。

ホスト・サーバー
ネットワーク・プリント 200
リモート・コマンドおよびプログラム呼び出し 1
セントラル 200
データベース 200
セキュア・データベース 200
ファイル *NOMAX
セキュア・ファイル *NOMAX
データ待ち行列 200
サインオン 200

ジョブの待機

最大ジョブ数に達したときに、サーバー・ジョブが使用可能になるまで、クライアント接続要求を待機させるかどうかを示します。

ホスト・サーバー
ネットワーク・プリント *YES
リモート・コマンドおよびプログラム呼び出し *YES
セントラル *YES
データベース *YES
セキュア・データベース *YES
ファイル *YES
セキュア・ファイル *YES
データ待ち行列 *YES
サインオン *YES

プールID

この事前開始ジョブが実行されるサブシステム・プール。

ホスト・サーバー
ネットワーク・プリント 1
リモート・コマンドおよびプログラム呼び出し 1
セントラル 1
データベース 1
セキュア・データベース 1
ファイル 1
セキュア・ファイル 1
データ待ち行列 1
サインオン 1

クラス

事前開始ジョブを実行するクラスの名前とライブラリー。

ホスト・サーバー
ネットワーク・プリント QGPL/QCASERVR
リモート・コマンドおよびプログラム呼び出し QGPL/QCASERVR
セントラル QGPL/QCASERVR
データベース QSYS/QPWFSERVER
セキュア・データベース QSYS/QPWFSERVER
ファイル QSYS/QPWFSERVER
セキュア・ファイル QSYS/QPWFSERVER
データ待ち行列 QGPL/QCASERVR
サインオン QGPL/QCASERVR

事前開始ジョブ項目についてジョブ開始の値が *YES に設定されていて、その他の値がすべて初期設定のままになっているときは、各事前開始ジョブ項目について次のアクションがとられます。

  • サブシステムの始動時に、各サーバーについて 1 つずつ事前開始ジョブが開始されます。
  • 最初のクライアント接続が特定のサーバーに対して複数のプロセスを要求すると、初期ジョブが使用され、しきい値を超えます。
  • そのサーバーについて、事前開始ジョブ項目内で定義されている数に従って追加のジョブが開始されます。
  • 使用可能なジョブ数は、常に少なくとも 1 です。
  • サブシステムは、要求を処理できる状態になっている事前開始ジョブの数を定期的に検査し、余分なジョブを終了します。 サブシステムは、少なくとも初期ジョブ数パラメーターに指定されている数の事前開始ジョブだけは残しておきます。

事前開始ジョブのモニター

事前開始ジョブをモニターするには、活動事前開始ジョブの表示 (DSPACTPJ) コマンドを使用します。 たとえば、サインオン・サーバー用の事前開始ジョブをモニターするには、事前開始ジョブが入っているサブシステム (QUSRWRK またはユーザー定義のサブシステム) と、プログラム (たとえば QZSOSIGN) が分かっている必要があります。

DSPACTPJ コマンドは次のような情報を提供します。

+--------------------------------------------------------------------------------+
|                   Display Active Prestart Jobs                 LP11UT11        |
|                                                      07/28/09  15:06:14        |
|Subsystem  . . . . . :   QUSRWRK       Reset date . . . . . :   07/01/09        |
|Program  . . . . . . :   QZSOSIGN      Reset time . . . . . :   02:19:51        |
|  Library  . . . . . :     QSYS      Elapsed time . . . . :   0660:46:23        |
|                                                                                |
| Prestart jobs:                                                                 |
|   Current number . . . . . . . . . . . . . . . . :   10                        |
|   Average number . . . . . . . . . . . . . . . . :   8.5                       |
|   Peak number  . . . . . . . . . . . . . . . . . :   25                        |
|                                                                                |
| Prestart jobs in use:                                                          |
|   Current number . . . . . . . . . . . . . . . . :   5                         |
|   Average number . . . . . . . . . . . . . . . . :   4.3                       |
|   Peak number  . . . . . . . . . . . . . . . . . :   25                        |
|                                                                                |
|                                                                                |
|                                                             More...            |
|                                                                                |
|                                                                                |
+--------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
|                                                      07/28/09  15:06:14        |
|Subsystem  . . . . . :   QUSRWRK       Reset date . . . . . :   07/01/09        |
|Program  . . . . . . :   QZSOSIGN      Reset time . . . . . :   02:19:51        |
|  Library  . . . . . :     QSYS      Elapsed time . . . . :   0660:46:23        |
|                                                                                |
|                                                                                |
|                                                                                |
| Program start requests:                                                        |
|   Current number waiting . . . . . . . . . . . . :   0                         |
|   Average number waiting . . . . . . . . . . . . :   .2                        |
|   Peak number waiting  . . . . . . . . . . . . . :   4                         |
|   Average wait time  . . . . . . . . . . . . . . :   00:00:20.0                |
|   Number accepted  . . . . . . . . . . . . . . . :   0                         |
|   Number rejected  . . . . . . . . . . . . . . . :   0                         |
|                                                                                |
|                                                                                |
|                                                                                |
|                                                             Bottom             |
|Press Enter to continue.                                                        |
|                                                                                |
|F3=Exit   F5=Refresh   F12=Cancel   F13=Reset statistics                        |
|                                                                                |
+--------------------------------------------------------------------------------+

事前開始ジョブの管理

「活動事前開始ジョブの表示」画面が表示されているときに F5 キーを押すと、特定の活動事前開始ジョブについて表示されている情報を最新表示することができます。 プログラム開始要求に関する情報には、使用可能な事前開始ジョブ数を変更する必要があるかどうかが示される場合があります。 事前開始ジョブが使用可能になるのを待っているプログラム開始要求があることが示されている場合は、事前開始ジョブ項目の変更 (CHGPJE) コマンドにより事前開始ジョブを変更することができます。

プログラム開始要求に対するアクションが速やかに行われない場合は、次の処置を任意に組み合わせて使用できます。

  • しきい値を大きくする。
  • 初期ジョブ数 (INLJOBS) のパラメーター値を大きくする。
  • 追加のジョブ数 (ADLJOBS) のパラメーター値を大きくする。

重要なのは、すべての要求について必ず使用可能な事前開始ジョブがあるようにすることです。

事前開始ジョブ項目の除去

サーバーが事前開始ジョブ機能を使用しないようにしたい場合は、次のことを行う必要があります。

  1. 事前開始ジョブの終了 (ENDPJ) コマンドにより事前開始ジョブを終了する。

    ENDPJ コマンドにより終了した事前開始ジョブは、事前開始ジョブ項目でジョブ開始に *YES が指定されている場合は次回のサブシステム始動時に開始され、また、指定されているサーバー・タイプを対象として STRHOSTSVR コマンドが実行された場合にも開始されます。 事前開始ジョブを終了しただけで、次のステップを実行しなかった場合は、特定のサーバーを始動しようとする要求はすべて失敗します。

  2. 事前開始ジョブ項目の除去 (RMVPJE) コマンドを使用して、サブシステム記述の中の事前開始ジョブ項目を除去する。

    RMVPJE コマンドを使用して除去した事前開始ジョブ項目は、サブシステム記述から永久に除去されます。 いったん、項目が除去されると、該当サーバーに対する新たな要求ができます。

経路指定項目の使用

デーモン・ジョブがサブシステムのいずれかに経路指定されるときに、ジョブはサブシステム記述の中の経路指定項目を使用します。 ホスト・サーバー・デーモン・ジョブ用の経路指定項目は、STRHOSTSVR コマンドが実行されたときにサブシステム記述に追加されます。 これらのジョブは QUSER ユーザー・プロファイルの下で実行されます。 QSYSWRK サブシステムに投入されたデーモン・ジョブの場合は、QSYSNOMAX ジョブ待ち行列が使用されます。 QSERVER サブシステムに投入されたサブシステムの場合は、QPWFSERVER ジョブ待ち行列が使用されます。

サーバー・ジョブの特性は、それぞれの事前開始ジョブ項目からとられます。 サーバーに事前開始ジョブを使用しない場合は、サーバー・ジョブは、それぞれに対応するデーモン・ジョブの特性を使用して開始されます。

次に示すのは、IBM 提供のサブシステムの中での、個々のサーバー・デーモン・ジョブの初期構成です。

ネットワーク・プリント・サーバー・デーモン

属性名 属性値
サブシステム QSYS/QSYSWRK
ジョブ待ち行列 QSYSNOMAX
ユーザー QUSER
データの経路指定 QNPSERVD
ジョブ名 QNPSERVD
クラス QGPL/QCASERVR
順序番号 2538

リモート・コマンドおよびプログラム呼び出しサーバー・デーモン

属性名 属性値
サブシステム QSYS/QSYSWRK
ジョブ待ち行列 QSYSNOMAX
ユーザー QUSER
データの経路指定 QZRCSRVSD
ジョブ名 QZRCSRVSD
クラス QGPL/QCASERVR
順序番号 2539

セントラル・サーバー・デーモン

属性名 属性値
サブシステム QSYS/QSYSWRK
ジョブ待ち行列 QSYSNOMAX
ユーザー QUSER
データの経路指定 QZSCSRVSD
ジョブ名 QZSCSRVSD
クラス QGPL/QCASERVR
順序番号 2536

データベース・サーバー・デーモン

属性名 属性値
サブシステム QSYS/QSERVER
ジョブ待ち行列 QPWFSERVER
ユーザー QUSER
データの経路指定 QZDASRVSD
ジョブ名 QZDASRVSD
クラス QSYS/QPWFSERVER
順序番号 600

ファイル・サーバー・デーモン

属性名 属性値
サブシステム QSYS/QSERVER
ジョブ待ち行列 QPWFSERVER
ユーザー QUSER
データの経路指定 QPWFSERVSD
ジョブ名 QPWFSERVSD
クラス QSYS/QPWFSERVER
順序番号 200

データ待ち行列サーバー・デーモン

属性名 属性値
サブシステム QSYS/QSYSWRK
ジョブ待ち行列 QSYSNOMAX
ユーザー QUSER
データの経路指定 QZHQSRVD
ジョブ名 QZHQSRVD
クラス QGPL/QCASERVR
順序番号 2537

サインオン・サーバー・デーモン

属性名 属性値
サブシステム QSYS/QSYSWRK
ジョブ待ち行列 QSYSNOMAX
ユーザー QUSER
データの経路指定 QZSOSGND
ジョブ名 QZSOSGND
クラス QGPL/QCASERVR
順序番号 2540

サーバー・マッパー・デーモン

属性名 属性値
サブシステム QSYS/QSYSWRK
ジョブ待ち行列 QSYSNOMAX
ユーザー QUSER
データの経路指定 QZSOSMAPD
ジョブ名 QZSOSMAPD
クラス QGPL/QCASERVR
順序番号 2541