1.4.2 バッチジョブ分散実行システムの運用例
バッチジョブ分散実行システムの運用例として,グリッドジョブネットの定義から実行結果の確認までの一連の作業を示します。
この運用例では,複数のホストに存在する異なる100種類のファイルを同一キーでソートする業務を取り上げます。グリッドジョブネットにはグリッド開始ジョブ,グリッド実行ジョブおよびグリッド終了ジョブを定義して,すぐに実行・監視する例です。
この運用例での作業の流れと,手順の参照先を次の図に示します。
- 〈この項の構成〉
(1) グリッドジョブネットの定義
最上位のジョブグループ「AJSROOT1」の中にグリッドジョブネット「example1」を定義します。手順を次に示します。
-
JP1/AJS3 - Viewの[JP1/AJS3 - View]ウィンドウ(メイン画面)を表示する。
[JP1/AJS3 - View]ウィンドウの表示方法については,マニュアル「JP1/Automatic Job Management System 3 操作ガイド」を参照してください。
-
[JP1/AJS3 - View]ウィンドウ(メイン画面)の機能メニューで[ジョブネット定義]を選択する。
-
[編集]−[新規作成]−[ジョブネット]を選択する。
[詳細定義−[ジョブネット]]ダイアログボックスが表示されます。
-
グリッドジョブネットの名称および実行エージェントの名称を入力する。
[ユニット名]にこのジョブネットの名称として「example1」と入力します。
[実行エージェント]に何も入力しなかった場合は,JP1/AJS3のデフォルト実行エージェントが仮定されます。
-
[OK]ボタンをクリックする。
[詳細定義−[ジョブネット]]ダイアログボックスが閉じ,[JP1/AJS3 - View]ウィンドウ(メイン画面)のリストエリアにジョブネット「example1」が表示されます。
(2) グリッド開始ジョブの定義
グリッドジョブネット「example1」の中にグリッド開始ジョブ「jobst1」を定義します。手順を次に示します。
-
データ配置情報を定義するCSVファイルを作成する。
処理対象のファイル名と実行ノードのホスト名を対応づけるCSVファイルを作成します。ファイル名は「filename.csv」とします。
「filename.csv」の記述内容は次のとおりです。
-
データ配置情報を標準出力するプログラムを作成する。
「cat filename.csv」をグリッドジョブ前処理プログラムとして作成します。
-
[JP1/AJS3 - View]ウィンドウ(メイン画面)の機能メニューで[ジョブネット定義]が選択されていることを確認する。
-
リストエリアでグリッドジョブネット「example1」をダブルクリックする。または,「example1」を選択して[編集]−[編集]を選択する。
[ジョブネットエディタ]ウィンドウが表示されます。
-
[排他編集]をチェックする。
[ジョブネットエディタ]ウィンドウが排他編集モードになります。これによって,ジョブを定義したり,関連づけたりするときにほかのユーザがアクセスできないようになります。
-
アイコンリストの[カスタムジョブ]タブで「グリッド開始ジョブ」のアイコンをドラッグし,マップエリアにドロップする。
[詳細定義−[Custom Job]]ダイアログボックスが表示されます。
-
[定義]タブの[詳細]ボタンをクリックする。
[グリッド開始定義]ダイアログボックスが表示されます。
-
グリッドプロパティ名,グリッドジョブ前処理プログラムを入力する。
- [グリッドプロパティ名]
-
「GRIDPROP1」と入力します。
- [グリッドジョブ管理ホスト名]
-
この例の場合は,JP1/AJS3 - Agentの実行エージェントとグリッドジョブ管理ホストが同じホストで起動するため,入力は不要です。
- [グリッドジョブ前処理プログラム]
-
手順2で作成したプログラムを登録します。
-
[OK]ボタンをクリックする。
[グリッド開始定義]ダイアログボックスが閉じます。
-
[詳細定義−[Custom Job]]ダイアログボックスの[OK]ボタンをクリックする。
[詳細定義−[Custom Job]]ダイアログボックスが閉じます。
これで,グリッド開始ジョブ「jobst1」が定義できました。続いて,グリッド実行ジョブを定義します。
(3) グリッド実行ジョブの定義
グリッドジョブネット「example1」の中にグリッド実行ジョブ「job1」を定義します。手順を次に示します。
-
[ジョブネットエディタ]ウィンドウのアイコンリストの[カスタムジョブ]タブで「グリッド実行ジョブ」のアイコンをドラッグし,マップエリアにドロップする。
[詳細定義−[Custom Job]]ダイアログボックスが表示されます。
-
[定義]タブの[詳細]ボタンをクリックする。
[グリッド実行定義]ダイアログボックスが表示されます。
-
グリッドプロパティ名,グリッドジョブ名などを入力する。
- [グリッドプロパティ名]
-
「GRIDPROP1」と入力します。グリッド開始ジョブと同じ名前を入力してください。
- [グリッドジョブ管理ホスト名]
-
この例の場合は,JP1/AJS3 - Agentの実行エージェントとグリッドジョブ管理ホストが同じホストで起動するため,入力は不要です。
- [グリッドジョブ名]
-
「job1」と入力します。
- [スクリプトファイル名]
-
実行ノード上のBJEXのパス名とソートプログラムの実行を定義したジョブ定義XMLファイルのパス名を指定します。
ジョブ定義XMLファイルの定義例を次に示します。
<?xml version="1.0" encoding="Shift-JIS" ?> <HitachiBatchJobExec version="1.3" os="unix" > <JOB NAME="SORTJOB"> <STEP NAME="STEP01"> <EXEC PGM="SORT_UAP" LANG="COBOL" /> …(1) <DD NAME="INPUT" DSN="/data%{UGPSM_DATAID}" DISP="OLD" /> …(2) <DD NAME="OUTPUT" DSN="/D%{UGPSM_DATAID}" DISP="OLD" /> …(3) </STEP> </JOB> </HitachiBatchJobExec>
(1)ソートプログラム
ソートを実行するユーザプログラムです。ここではCOBOL言語で作成された"SORT_UAP"という名称のユーザプログラムを指定します。このユーザプログラムは,ジョブ定義XMLファイルで定義したDD要素のNAME属性「INPUT」で指定したファイルを入力ファイルとし,同じくNAME属性「OUTPUT」で指定したファイルを出力ファイルとします。
(2)入力ファイル
ソートプログラムの入力ファイルです。サブジョブごとに渡されるUGPSM_DATAID環境変数によって,data0〜data100が入力ファイル名となります。
(3)出力ファイル
ソートプログラムの出力ファイルです。サブジョブごとに渡されるUGPSM_DATAID環境変数によって,D0〜D100が出力ファイルとなります。
そのほかの項目は,デフォルトを使用します。
-
[OK]ボタンをクリックする。
[グリッド実行定義]ダイアログボックスが閉じます。
-
[詳細定義−[Custom Job]]ダイアログボックスの[OK]ボタンをクリックする。
[詳細定義−[Custom Job]]ダイアログボックスが閉じます。
-
[ジョブネットエディタ]ウィンドウで,「jobst1」と「job1」を関連づける。
これで,グリッド実行ジョブ「job1」が定義できました。続いて,グリッド終了ジョブを定義します。
(4) グリッド終了ジョブの定義
グリッドジョブネット「example1」の中にグリッド終了ジョブ「jobed1」を定義します。手順を次に示します。
-
[ジョブネットエディタ]ウィンドウのアイコンリストの[カスタムジョブ]タブで「グリッド終了ジョブ」のアイコンをドラッグし,マップエリアにドロップする。
[詳細定義−[Custom Job]]ダイアログボックスが表示されます。
-
[定義]タブの[詳細]ボタンをクリックする。
[グリッド終了定義]ダイアログボックスが表示されます。
-
グリッドプロパティ名を入力する。
- [グリッドプロパティ名]
-
「GRIDPROP1」と入力します。グリッド開始ジョブ,グリッド実行ジョブと同じ名前を入力してください。
- [グリッドジョブ管理ホスト名]
-
この例の場合は,JP1/AJS3 - Agentの実行エージェントとグリッドジョブ管理ホストが同じホストで起動するため,入力は不要です。
- [グリッドジョブ後処理プログラム]
-
この例では後処理は不要なため,入力は不要です。
-
[OK]ボタンをクリックする。
[グリッド終了定義]ダイアログボックスが閉じます。
-
[詳細定義−[Custom Job]]ダイアログボックスの[OK]ボタンをクリックする。
[詳細定義−[Custom Job]]ダイアログボックスが閉じます。
-
[ジョブネットエディタ]ウィンドウで,「job1」と「jobed1」を関連づける。
これで,グリッドジョブネットが定義できました。続いて,グリッドジョブネットを実行します。
(5) グリッドジョブネットの実行
定義を終えたら,グリッドジョブネット「example1」を実行します。グリッドジョブネットを実行するには,実行登録という操作が必要です。実行登録の手順を次に示します。
-
[JP1/AJS3 - View]ウィンドウ(メイン画面)の機能メニューで[実行登録]を選択する。
-
リストエリアから,ジョブネット「example1」を選択する。
-
[操作]−[実行登録]を選択する。
[実行登録]ダイアログボックスが表示されます。
-
[登録方法]から[即時実行]を選択する。
-
[OK]ボタンをクリックする。
[実行登録]ダイアログボックスが閉じます。
これで,ジョブネット「example1」が実行登録されました。
(6) グリッドジョブネットの実行結果の確認
ジョブネット「example1」を実行登録したら,グリッドジョブネット「example1」,グリッド実行ジョブ「job1」の順で実行結果を確認します。
(a) グリッドジョブネットの実行結果の確認
まず,ジョブネット「example1」の実行結果を確認する手順を次に示します。
-
[JP1/AJS3 - View]ウィンドウ(メイン画面)の機能メニューで[ステータス監視]を選択する。
-
リストエリアから,ジョブネット「example1」を選択する。
-
[表示]−[最新情報に更新]を選択する。
グリッドジョブネットの実行が終了していれば,実行結果が表示されます。表示が変わらない場合は,しばらく待ってから再度最新情報に更新してください。
-
[表示]−[詳細情報]−[結果]を選択する。
[モニタ詳細−[ジョブネット]]ダイアログボックスが表示されます。ここで,ジョブネットの実行結果の詳細情報を確認できます。
-
[閉じる]ボタンをクリックする。
[モニタ詳細−[ジョブネット]]ダイアログボックスが閉じます。
これで,ジョブネット「example1」の実行結果の確認は終了です。
- 参考
-
選択した機能メニューが[ステータス監視]の場合,詳細情報エリアに表示される情報からも実行結果を確認できます。
(b) グリッド実行ジョブの実行結果の確認
続いて,グリッド実行ジョブ「job1」の実行結果を確認します。手順を次に示します。
-
[JP1/AJS3 - View]ウィンドウ(メイン画面)の機能メニューで[ステータス監視]が選択されていることを確認する。
-
[表示]−[ジョブネットモニタ]−[結果]を選択する。
[ジョブネットモニタ]ウィンドウが表示されます。
-
マップエリアに表示されているグリッド実行ジョブのアイコンを選択する。
-
[表示]−[詳細情報]を選択する。
[モニタ詳細−[アイコン名]]ダイアログボックスが表示されます。ここでジョブの実行結果の詳細を確認できます。
-
サブジョブの実行結果を確認したい場合は,[一覧]ボタンをクリックする。
[サブジョブ一覧表示]ウィンドウが表示されます。ここでサブジョブの実行結果の詳細を確認できます。
-
確認が終了したら,[ファイル]−[閉じる]を選択する。
[サブジョブ一覧表示]ウィンドウが閉じます。
-
[モニタ詳細−[アイコン名]]ダイアログボックスの[閉じる]ボタンをクリックする。
[モニタ詳細−[アイコン名]]ダイアログボックスが閉じます。
これで,グリッド実行ジョブ「job1」の実行結果の確認は終了です。