2.3.6 世代管理
JP1/AJS3上で世代実行されたグリッドジョブを,バッチジョブ分散実行システムで世代管理する機能です。これによって,同じグリッドジョブを世代間で異なるグリッドジョブとして動作できるようになり,エラー発生時の再実行などの点で運用面での利便性を向上できます。
JP1/AJS3の世代管理の概要を次に示します。詳細については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド」を参照してください。
-
世代はルートジョブネット単位に指定できます。
-
世代ごとにジョブの実行結果を確認でき,特定の世代を選択して,その中のジョブを再実行できます。
-
世代実行は,多重実行できます。
-
世代数のデフォルトは99,マネージャ環境(JP1/AJS3 - Manager)のスケジューラーサービス環境設定パラメータMAXSAVEGENで,999まで拡張できます。
世代管理を行った場合のジョブの実行例を次の図に示します。
(1) 世代管理適用条件
世代管理は,設定ファイルのGENERATION_MANAGEMENTパラメータにYを指定することで有効になります。Nを指定した場合は,前世代のグリッド終了ジョブが正常終了していないときには,グリッド開始ジョブが終了コード87で終了します。
Yを指定した場合,「(2) 世代管理するグリッドジョブネットの構成」に示す世代管理するグリッドジョブネットの構成でグリッドジョブネットを定義してください。
GENERATION_MANAGEMENTパラメータについては,「4.8.15 GENERATION_MANAGEMENTパラメータ(世代管理の適用指定)」を参照してください。
(2) 世代管理するグリッドジョブネットの構成
JP1/AJS3上でグリッドジョブネットを複数のルートジョブネットで構成し,世代管理する場合は,表2-15に示す構成にしておく必要があります。
ルートジョブネットとは,JP1/AJS3のジョブネットの最上位のジョブネットのことです。ルートジョブネットの中にサブジョブネットやジョブを配置し,実行順序を指定できます。
世代管理の有効なグリッドジョブネットの構成を次の表に,またグリッドジョブネットの定義例を次の図に示します。
グリッドジョブネットの構成 |
構成の説明 |
---|---|
[グリッド開始ジョブ−グリッド実行ジョブ1−・・・−グリッド実行ジョブ2−グリッド終了ジョブ] |
1つのルートジョブネット内に,1つのグリッドジョブネットを構成します。 1つのルートジョブネット内に,同じプロパティ名のグリッド開始ジョブ,グリッド実行ジョブ,グリッド終了ジョブをグリッド開始ジョブ,グリッド実行ジョブ,グリッド終了ジョブの順に実行されるように定義します。 |
[グリッド開始ジョブ−グリッド実行ジョブ1−・・・−グリッド実行ジョブ2] [グリッド終了ジョブ] |
2つのルートジョブネットで1つのグリッドジョブネットを構成します。 1つのルートジョブネットに,同じプロパティ名のグリッド開始ジョブ,グリッド実行ジョブをグリッド開始ジョブ,グリッド実行ジョブの順に実行されるように定義します。別のルートジョブネットに,グリッド開始ジョブおよびグリッド実行ジョブと同じプロパティ名のグリッド終了ジョブを定義します。 |
- (凡例)
-
[ ]:ルートジョブネットを示します。
−:ジョブ実行の流れを示します。
・・・:グリッド実行ジョブを複数定義できることを示します。
図2‒14 グリッドジョブネットの定義例
(3) 世代管理のジョブ実行
世代実行するジョブ実行に関する概念を次に示します。
-
世代実行するジョブネットは,ルートジョブネット内で定義する必要があります。これは,バッチジョブ分散実行システムで独自に世代番号を管理しないため,JP1/AJS3で世代実行する条件を前提とするためです。
-
世代間では情報の受け渡しはしません。このため,グリッドジョブの実行結果は,世代内で閉じた情報として扱われます。
-
世代実行でのエラー発生時の影響は,エラーが発生した世代だけに限定され,ほかの世代には影響しません。
次に世代実行するグリッドジョブについて,ジョブネット構成別に例を示します。
(a) [グリッド開始ジョブ−グリッド実行ジョブ1−グリッド実行ジョブ2−グリッド終了ジョブ]の構成の場合※
[グリッド開始ジョブ−グリッド実行ジョブ−グリッド終了ジョブ]の一連のグリッドジョブネットを世代実行します。グリッド開始ジョブは世代ごとに実行し,グリッド実行ジョブ,グリッド終了ジョブは同じ世代のグリッド開始ジョブのプロパティを使用して実行します。
エラー発生後の再実行でも,その世代の中で実行し,ほかの世代の実行には影響を与えません。
世代管理のグリッドジョブの実行例([グリッド開始ジョブ−グリッド実行ジョブ1−グリッド実行ジョブ2−グリッド終了ジョブ]の構成の場合)を次の図に示します。
図中ではグリッド開始ジョブ,グリッド実行ジョブ,およびグリッド終了ジョブで構成されたジョブネットをジョブネット1とします。
- 注※
-
グリッドジョブネットの構成では,"[ ]"はルートジョブネット,"−"はジョブ実行の流れを示します。
図2‒15 世代管理のグリッドジョブの実行例([グリッド開始ジョブ−グリッド実行ジョブ1−グリッド実行ジョブ2−グリッド終了ジョブ]の構成の場合)
(b) [グリッド開始ジョブ−グリッド実行ジョブ1−グリッド実行ジョブ2]−[グリッド終了ジョブ]の構成の場合※
グリッド開始ジョブとグリッド実行ジョブで構成し,グリッド終了ジョブを含まないジョブネットを世代実行します。グリッド開始ジョブは世代ごとに実行し,グリッド実行ジョブは同じ世代のグリッド開始ジョブが作成したプロパティを使用して実行します。グリッド終了ジョブは,世代実行で作成されたプロパティ名が同じプロパティをすべて削除します。
エラー発生後の再実行でもその世代の中で実行し,ほかの世代の実行には影響を与えません。
世代管理のグリッドジョブの実行例([グリッド開始ジョブ−グリッド実行ジョブ1−グリッド実行ジョブ2]−[グリッド終了ジョブ]の構成の場合)を次の図に示します。
図中ではグリッド開始ジョブおよびグリッド実行ジョブで構成されたジョブネットをジョブネット1,グリッド終了ジョブで構成されたジョブネットをジョブネット2とします。
- 注※
-
グリッドジョブネットの構成では,"[ ]"はルートジョブネット,"−"はジョブ実行の流れを示します。
図2‒16 世代管理のグリッドジョブの実行例([グリッド開始ジョブ−グリッド実行ジョブ1−グリッド実行ジョブ2]−[グリッド終了ジョブ]の構成の場合)
(4) グリッド終了ジョブの動作
(a) グリッドジョブ後処理プログラムの起動契機
世代識別子が異なるグリッド開始ジョブが作成したプロパティは,世代実行されたグリッドジョブであるとし,グリッド終了ジョブでは,グリッドジョブ後処理プログラム(UAP)をプロパティの作成順に世代分起動します(同時に並行して起動しません)。
世代実行時のグリッドジョブ後処理プログラムの起動契機を次の表に,またグリッドジョブ後処理プログラム(UAP)の実行例を次の図に示します。
図中ではグリッド開始ジョブとグリッド実行ジョブで構成されたジョブネットをジョブネット1,グリッド終了ジョブで構成されたジョブネットをジョブネット2とします。
グリッドジョブネットの構成 |
グリッドジョブ後処理プログラムの起動契機 |
---|---|
[グリッド開始ジョブ−グリッド実行ジョブ1−・・・−グリッド実行ジョブ2−グリッド終了ジョブ] |
1回のグリッド終了ジョブで,1度だけグリッドジョブ後処理プログラムを起動します。 |
[グリッド開始ジョブ−グリッド実行ジョブ1−・・・−グリッド実行ジョブ2] [グリッド終了ジョブ] |
1回のグリッド終了ジョブで,実行した同じプロパティの世代数分グリッドジョブ後処理プログラムを起動します。 |
- (凡例)
-
[ ]:ルートジョブネットを示します。
−:ジョブ実行の流れを示します。
・・・:グリッド実行ジョブを複数定義できることを示します。
図2‒17 グリッドジョブ後処理プログラム(UAP)の実行例
(b) グリッドジョブ後処理プログラムに渡すグリッドジョブ実行結果情報
グリッドジョブ後処理プログラムに渡すグリッド実行結果情報に,世代情報を追加して渡します。
グリッドジョブ実行結果情報を次の表に示します。
世代管理指定 |
GENERATIONの値 |
---|---|
あり |
世代識別子が表示されます。 |
なし |
表示されません(GENERATION=の行を出力しません)。 |
世代実行したグリッドジョブ実行結果情報例を次に示します。下線部分は追加となる世代情報を示します。
-
世代管理指定あり
FORMATID=0101 GRIDPROP_NAME=PROP1 GENERATION=@A302 GRIDJOB_RC=0 DATAID0001,node01,0,datainfo1 DATAID0002,node02,0,datainfo2 DATAID0003,node03,0,datainfo3
-
世代管理指定なし
FORMATID=0101 GRIDPROP_NAME=PROP1 GRIDJOB_RC=0 DATAID0001,node01,0,datainfo1 DATAID0002,node02,0,datainfo2 DATAID0003,node03,0,datainfo3
(c) グリッド終了ジョブの結果表示
世代管理が適用されている場合,グリッド終了ジョブの結果に,削除したプロパティの情報を表示します。この情報は,世代実行されていないジョブの場合にも表示します。
グリッド終了ジョブの結果表示での出力項目を次の表に,グリッド終了ジョブの結果を次の図に示します。
出力項目 |
世代管理を適用している場合 |
世代管理を適用していない場合 |
|||||
---|---|---|---|---|---|---|---|
複数の世代のプロパティを削除 |
同じ世代のプロパティを削除 |
同じ名称のグリッドプロパティを削除 |
|||||
すべて削除に成功 |
削除に失敗 |
削除に失敗(一部は削除成功) |
削除に成功 |
削除に失敗 |
削除に成功 |
削除に失敗 |
|
KAKJ1804-I |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
KAKJ1806-I |
◎ |
○ |
◎ |
○ |
○ |
○ |
○ |
KAKJ1807-I |
◎ |
○ |
◎ |
○ |
○ |
○ |
○ |
KAKJ1843-I |
◎ |
× |
◎ |
○ |
× |
× |
× |
KAKJ1844-E |
× |
○ |
○ |
× |
○ |
× |
× |
KAKJ1805-I |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
Propid |
"−"を表示 |
"−"を表示 |
"−"を表示 |
○ |
○ |
○ |
○ |
Jobid |
"−"を表示 |
"−"を表示 |
"−"を表示 |
○ |
○ |
○ |
○ |
Date |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
HostName |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
Grid PropName |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
Grid JobName |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
Script FileName |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
Generation Count |
成功した世代数を表示 |
"0"を表示 |
成功した世代数を表示 |
"1"を表示 |
"0"を表示 |
× |
× |
- (凡例)
-
○:1行出力します。
◎:1行以上出力します。
×:出力しません。
図2‒18 グリッド終了ジョブの結果(世代管理機能適用,異なる世代のプロパティを削除【すべて成功】) 図2‒19 グリッド終了ジョブの結果(世代管理機能適用,異なる世代のプロパティを削除【失敗】) 図2‒20 グリッド終了ジョブの結果(世代管理機能適用,異なる世代のプロパティを削除【失敗(一部成功)】) 図2‒21 グリッド終了ジョブの結果(世代管理機能適用,同じ世代のプロパティを削除【成功】) 図2‒22 グリッド終了ジョブの結果(世代管理機能適用,同じ世代のプロパティを削除【失敗】)