JP1/AJS2資料一覧

並列に実行される可能性のあるジョブを順番に実行する方法

2005/2/8更新

対応バージョン: 6

想定環境

以下のようなジョブネットがあるとする。

                 +---------+
             +-->| ジョブ2 +---+
             |   +---------+   |
+---------+  |                 |   +---------+
| ジョブ1 +--+                 +-->| ジョブ4 |
+---------+  |                 |   +---------+
             |   +---------+   |
             +-->| ジョブ3 +---+
                 +---------+

この場合、通常はジョブ2と3がほぼ同時に起動して並列実行されるが、そうではなくジョブ2と3はどちらが先にスタートしてもいいがどちらか一方のジョブが実行中はもう片方のジョブがそのジョブの終了を待つようにしたい。

実行のパターンとしては以下の2パターンが考えられる。

ジョブ1 > ジョブ2 > ジョブ3 > ジョブ4
ジョブ1 > ジョブ3 > ジョブ2 > ジョブ4

実現方法

ジョブ2、3用に専用のジョブキューを割り当ててそのジョブキューの同時ジョブ実行数を1にする。

具体的な設定例は以下の通り。

/etc/hosts

10.197.10.31   scs2001 ← (1)
10.197.10.118  sccs018  sccs018_2 ← (2)

(1) 物理ホスト

(2) sccs018 : ジョブ1,4用JP1サービス(scs2001のエイリアス)

  sccs018_2 : ジョブ2,3用JP1サービス

/usr/jp1/sccs018/jp1ajs2/conf/jpqsetup.conf

:
$agent $a1 $system
    exec_jobs   0000 0000 1024
    def_queue   $q1
    max_jobs    100
    warn_jobs   80
    queue_ent   open
    queue_exit  open
    connect     $a1 1
$end

$agent $a2 sccs018_2
    exec_jobs   0000 0000 1 ← 同時ジョブ実行数 = 1
    def_queue   $q2
    max_jobs    100
    warn_jobs   80
    queue_ent   open
    queue_exit  open
    connect     $a2 1
$end
:

キュー再作成

関連資料・記事

ジョブ2,3の設定を変更し、「実行ホスト」欄にsccs018_2を設定。