16.12 キューレスジョブ環境でクラスを指定したジョブを実行するための設定

キューレスジョブ環境では,クラスを定義し,クラスごとに最大同時ジョブ実行数と最大待ちジョブ数を制限できます。クラスは複数定義できます。

クラス内での最大同時ジョブ実行数を超えて同時にジョブを実行しようとすると,実行できなかったジョブはキューレスエージェントのメモリーに貯えられます。クラス内での最大待ちジョブ数を超えてジョブを同時に実行しようとすると,そのジョブの実行は失敗し,状態は「起動失敗」となります。

例えば,あるクラスでの最大同時ジョブ実行数が10であり,最大待ちジョブ数が5のとき,同時に15個のジョブが実行中の状態でさらにジョブを実行しようとすると,16個目以降のジョブの状態は「起動失敗」となります。

キューレスエージェント全体の最大同時実行ジョブ数を超える場合,クラスごとの最大同時ジョブ実行数の制限値以内であっても,そのジョブはキューレスエージェントのメモリーに貯えられます。キューレスエージェント全体の最大待ちジョブ数を超える場合,クラスごとの最大待ちジョブ数の制限値以内であっても,そのジョブの状態は「起動失敗」になります。

クラスを指定してジョブを実行するためには,区切り文字「!」を使用して,ジョブの[実行ホスト]に次の形式で実行ホスト名とクラス名を指定します。

実行ホスト名!クラス名

ジョブの実行ホスト名を省略して,区切り文字とクラス名だけを指定した場合は,自ホストに対するクラス名が仮定されます。

ジョブの実行ホスト名,クラス名を共に省略した場合は,ジョブが属するジョブネットの[実行ホスト]に指定された実行ホスト名が仮定されます。

ジョブネットの[実行ホスト]にクラス名は指定できません。このようなジョブネットを実行しようとすると,ジョブネット中に含まれるジョブの状態は「起動失敗」になります。

存在しないクラスを指定してジョブを実行しようとすると,そのジョブの状態は「起動失敗」になります。

クラスを設定する手順を次に示します。

<この節の構成>
(1) 定義手順
(2) 定義パラメーター一覧
(3) 定義内容
(4) 定義例
(5) 注意事項

(1) 定義手順

クラスを定義してキューレスジョブを実行させたいキューレスエージェントホスト上で次に示す設定をしてください。

  1. キューレスエージェントサービスを停止する。
    次のコマンドを実行して,プロセスがすべて停止していることを確認します。

    # /opt/jp1ajs2/bin/ajsqlstop
    # /opt/jp1ajs2/bin/ajsqlstatus

  2. viなどのエディターで,「(2) 定義パラメーター一覧」の定義パラメーターを記述した設定ファイルを作成する。
    設定ファイルのファイル名は任意です。
  3. ファイルを保存し,次のコマンドを実行する。

    jbssetcnf 設定ファイル名

    jbssetcnfコマンドのパスは,「/opt/jp1base/bin/jbssetcnf」です。
    jbssetcnfコマンドの詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。
  4. 手順1で停止した次のサービスを再起動する。

    # /opt/jp1ajs2/bin/ajsqlstart

    設定ファイルに記述した内容が反映されます。

(2) 定義パラメーター一覧

表16-10 キューレスジョブ環境でクラスを指定したジョブを実行する設定の定義パラメーター一覧

定義キー環境設定パラメーター定義内容
[{JP1_DEFAULT|論理ホスト名}¥JP1QLAGENT¥AJSQL_CLASS¥クラス名]"AJSQL_CJOBMAX"=クラス内での最大同時ジョブ実行数
"AJSQL_CJOBWAITMAX"=クラス内での最大待ちジョブ数
注※
{JP1_DEFAULT|論理ホスト名}の部分は,物理ホストの場合は「JP1_DEFAULT」を,論理ホストの場合は「論理ホスト名」を指定します。

(3) 定義内容

" AJSQL_CJOBMAX "=dword:クラス内での最大同時ジョブ実行数
そのクラスで同時実行を許すジョブの最大数を16進数で指定します。
指定できる値は0~400(10進数で0~1,024)です。
デフォルトは「400」(10進数で1,024)です。
" AJSQL_CJOBWAITMAX "=dword:クラス内での最大待ちジョブ数
そのクラスでの最大同時ジョブ実行数を超えたときに,キューレスエージェントサービス上のメモリーに貯えておくキューレスジョブの最大数を16進数で指定します。
指定できる値は0~19000(10進数で0~102,400)です。
デフォルトは「0」です。

(4) 定義例

この定義では,ジョブ実行先ホストagent1のクラスclass1上で同時に実行できるジョブ数は512個です。ジョブ実行先ホストagent1のクラスclass1上での最大待ちジョブ数は256個です。

512個を超えて同時にジョブを実行しようとした場合,256個まではエージェント上のメモリーに貯えられます。さらにジョブを実行しようとした場合,以降のジョブは「起動失敗」となります。

(5) 注意事項