IBM Workload Scheduler(以下IWS)を初めて触る方に向けた、「IBM Workload Schedulerでジョブを登録して動かすまで」の簡易手順です。
操作用のWeb UIであるDynamic Workload Console(以下DWC)を使用してジョブを登録し、動作確認をしてスケジュールに載せるまでの手順です。
初めてIWSに触れるので基本的な使い方を知りたい、ちょっと検証環境でIWSを使ってみたい、といった時の参考になれば幸いです。
なお、そもそもIWSでジョブってどうスケジュールされるの?という疑問をお持ちの方はこちらのIBM Workload Schedulerのジョブスケジューリングの基本を参照してください。
本手順の前提
- 本手順はIWSのバージョンは 10.1を前提としています。
- DWCの初期セットアップ(エンジンの設定等)は実施済みであることを前提としています。初期セットアップがお済みでない方はDynamic Workload Consoleの初期セットアップを参照してセットアップを実施してください。
- ジョブを実行するエージェントは登録済みであることを前提としています。
ジョブを登録して動かすまで
用語解説
以降の手順で出てくる用語について解説します。
用語 | 説明 |
---|---|
ジョブ | IWSで実行するジョブスケジュールの最小単位。通常は1つのスクリプト、または1つの実行可能プログラムと実行ユーザー、実行サーバーを定義したもの。 |
ジョブ・ストリーム | 1つ以上のジョブをまとめ、ジョブ間の前後関係、起動条件、実行日などを定義したもの。 |
実動計画 | 日替わり時刻を起点とした、24時間分のジョブの実行スケジュール。 |
この手順で登録するジョブおよびジョブストリーム
下図のようなジョブおよびジョブ・ストリームを作成します。
- ジョブを実行するサーバー「IWSAGT11」および「IWSAGT12」はいずれもLinuxサーバーです。
- ジョブ実行ユーザー「jobuser」は各サーバーに作成済みのOSユーザーです。
- 実行スクリプトは、いずれもジョブを実行するサーバーに配置済みです。
手順概要
以下の流れで作業します。
- ジョブ定義を作成する
- ジョブを単体で実行し、稼働確認する
- ジョブストリーム定義を作成する
- ジョブストリームが意図したとおりにスケジュールされることを確認する
ジョブ定義の作成
-
DWCにログインします。ログインURLは、通常は http://IWSサーバーのホスト名またはIP:9443/console/login.jsp です。
-
画面左側で、ジョブ定義を保存するフォルダーを選び(ここでは"SAMPLE"を選択、特にフォルダを作成していない場合は"/"を選択)、画面右側の「新規作成」ボタンをクリックし、リストから「ジョブ定義名」を選択します。
-
画面右側に表示される「プロパティー」タブで、名前(ジョブ名)、ワークステーション(実行サーバー)、ログイン(実行ユーザー)を入力します。
* 下にスクロールして「タスク」セクションを展開し、「タスク・タイプ」としてスクリプトを選択し、「コマンドまたはスクリプト名」フィールドにジョブとして実行するスクリプト名をフルパスで入力します。
-
SAMPLE_JOB12, SAMPLE_JOB21についても同じ要領で登録可能ですが、設定内容がほぼ同じジョブが複数あるような場合は、作成済みのジョブをコピーして必要箇所のみを修正することも可能です。SAMPLE_JOB11を保存後、左側の画面でSAMPLE_JOB11を選択した状態で「他のアクション」ボタンをクリックし、「複写」を選択します。
-
「複製する項目の名前」ダイアログで、「新しい項目名」フィールドに「SAMPLE_JOB12」と入力し「新しい名前の保存」ボタンをクリックします。
ジョブの稼働確認
登録したジョブを問題なく実行できるかどうか、稼働確認します。ジョブの登録画面からジョブを即時実行することが可能です。開発・検証フェーズで便利な機能です。
-
ジョブの登録を終えたら、稼働確認したいジョブをリストから選択し、ジョブ名の右隣に表示されている右向きの矢印(実行依頼)ボタンをクリックします。
-
「ジョブを最新計画に実行依頼」ダイアログにて、必要に応じて入力します。当日スケジュール済みのジョブ・ストリームにジョブを追加したい場合は、ジョブ・ストリーム名を選択入力します。今回は特にジョブ・ストリームを選択せず、テスト実行であることがわかるように「TEST_SAMPLE_JOB11」と別名を指定して「OK」ボタンをクリックします。
-
ジョブが別名で"JOBS"というジョブ・ストリームへ実行依頼されたことを示すダイアログが表示されます。特にジョブ・ストリームを指定しない場合は、ジョブ実行サーバーの"JOBS"というジョブ・ストリームが作成されて、そのジョブ・ストリームにジョブが追加されます。右上のXをクリックしてダイアログを閉じます。
-
スケジュール済みのジョブの一覧が表示されるので、先ほど実行依頼した「TEST_SAMPLE_JOB11」の状況を確認します。「成功」していれば、ジョブを問題なく実行できています。「エラー」となる場合は、隣に表示されている「内部状況」によって、ジョブ定義やジョブ定義で指定した内容を確認する必要があります。
-
ジョブ・ログを確認したい場合はリストで対象のジョブを選択し、「ジョブ・ログ」をクリックするとスクリプトのログ(標準出力、標準エラー出力)を参照できます。ジョブを再度実行したい場合は、「再実行...」をクリックすると同じジョブを再実行できます。
ジョブ・ストリーム定義の作成
ジョブはジョブ・ストリームに追加し、実行日や起動条件(依存関係)を設定することで自動実行されるようになります。IWSはジョブ・ストリームをベースに毎日のスケジュールを組み立てるためです。先の手順で作成した3つのジョブを2つのジョブ・ストリームに組み込みます。
-
Workload Designerを開き、画面左側でジョブ・ストリーム定義を追加するフォルダを選択します。(ここではジョブの時と同様に「SAMPLE」フォルダを選択しています。)画面右側で「新規作成」ボタンをクリックし、「ジョブ・ストリーム」を選択します。
-
1つ目のジョブ・ストリームである SAMPLE_JS1 を作成します。画面右側に表示される「プロパティー」タブで「名前」フィールドにジョブ・ストリーム名を、「ワークステーション」に実行サーバーを入力します。
-
画面左側で「実行サイクル」の横の「+」をクリックします。「実行サイクル」の下に「RC0」のエントリーが追加され、画面右側に実行サイクルのプロパティーを入力するフィールドが表示されます。実行サイクルとは、ジョブ・ストリームの実行日を指定するものです。
-
画面右側で下の方へスクロールし、「ルール」セクションを展開します。「繰り返しスケジュール」で「毎日」をリストから選択し、「選択した日数ごとの実行」を「1」にします。これで実行日が毎日に設定されます。(わかりにくいですが、ここで「2」を選択すると1日おきにジョブが実行されます。)
-
さらに下の方へスクロールし、「時間制限」セクションを展開します。「最早開始」で時刻を 10:00(午前)に設定し、「遅延日数」を「0」にします。さらに「時間依存関係として使用」を設定します。ここまでで 「SAMPLE_JS11を毎日午前 10:00に実行する」設定ができました。まだジョブ・ストリーム作成手順は続くため、一旦保存します。(自動保存はされませんので、区切りのいいところでこまめに保存しておくことを推奨します。)
-
ジョブ・ストリームへ、ジョブを追加します。SAMPLE_JS1には、SAMPLE_JOB11とSAMPLE_JOB12を追加します。画面左側で、「ジョブ」の隣に表示されている「+」をクリックします。
-
「ジョブ定義の検索」ダイアログが表示されるので、「ジョブ定義名」に"SAMPLE*"と入力し、先の手順で追加したジョブを検索します。
-
左側のSAMPLE_JOB11をクリックすると、ジョブの左上に「>」(「依存関係の作成」)アイコンが表示されるので、そのアイコンをクリックしたまま右側のSAMPLE_JOB12にドラッグアンドドロップすると2つのジョブの間に依存関係が作成されます。(この操作は少し慣れが必要ですが、多数のジョブ間で依存関係を設定する場合は便利な操作です。)これで SAMPLE_JOB11の正常終了後にSAMPLE_JOB12が実行されるようになります。
-
下記スクリーンショットのように、2つのジョブが追加され、SAMPLE_JOB12の依存関係としてSAMPLE_JOB11が追加されていることを確認し、「保存」ボタンをクリックします。
-
SAMPLE_JS1と同じ要領でSAMPLE_JS2を作成します。ここでは次のように設定しています。
-
SAMPLE_JS2は特に開始時刻を設定せず、SAMPLE_JS1が正常終了次第実行されるように設定します。ジョブ・ストリーム名の下にある「依存関係」の隣の「+」ボタンをクリックし、リストから「ジョブ・ストリーム」を選択します。
-
「ジョブ・ストリームの検索」ダイアログが表示されるので、「ジョブ・ストリーム」フィールドに"SAMPLE*"と入力し「検索」ボタンをクリックします。
-
ジョブ・ストリーム「SAMPLE_JS2」の依存関係として「SAMPLE_JS1」が追加されたことを確認し、「保存」ボタンをクリックします。
-
なお、ジョブ・ストリームについても、ジョブと同様にこの画面から「実行依頼」ボタンをクリックすることで稼働確認を行うことができます。ただし、ジョブ・ストリーム単位での実行依頼となること(複数の連続するジョブ・ストリームを一度の操作で実行依頼できない)、また設定されている依存関係によって即時実行されなかったり、逆に依存関係を無視して即時実行されるケースがあることに注意してください。例えば SAMPLE_JS1は10:00開始に設定されていますので、10:00前に実行依頼された場合は10:00まで開始されません。SAMPLE_JS2は、実行依頼した当日にSAMPLE_JS1がスケジュールされていない場合は、依存関係が無視されて即時実行されます。
-
ジョブ・ストリームやジョブを作成したあとは、必ず編集画面にリストされているジョブ・ストリームやジョブをクローズしましょう。編集中のままブラウザ画面ごと閉じてしまうと定義がロックされたままとなり、他のユーザーが編集できなくなることがあります。
リストでクローズしたい全ての定義を選択し、「保管」、「クローズ」の順にボタンをクリックします。
ジョブ・ストリームが定義どおりにスケジュールされることを確認する
設定したジョブ・ストリームが意図した通りにスケジュールされることを確認します。次の2つの方法があります。
- 実際にスケジュールされるまで待つ
- 予測計画を作成して確認する
2つの方法それぞれについて説明します。使用している環境や状況に応じてこのいずれかの方法で確認します。
実際にスケジュールされるまで待つ
毎日定時の日替わり処理が実行されるのを待ち、ジョブ・ストリームの実行日当日に確認する方法です。
IWSサーバーでは、毎日定時に日替わり処理(FINALジョブ・ストリーム)が実行され、24時間分のスケジュールが生成されます。
IWSサーバーの初期導入時はこの日替わり処理は毎日23:59に開始され、次の24時間分のスケジュールが作成されます。
今回は毎日10:00から開始するSAMPLE_JS1と、その後実行するSAMPLE_JS2を作成しました。
本日の日中にこの2つのジョブ・ストリームを作成した場合、今夜の23:59の日替わり処理でスケジュールに追加されます。明日0:00以降、スケジュールされたかどうかを確認できます。
確認手順は以下です。
-
スケジュールされているジョブ・ストリームの一覧が表示されます。SAMPLE_JS1とSAMPLE_JS2がスケジュールされていることを確認できます。また、SAMPLE_JS1の「スケジュール済み時刻」が10:00になっていることを確認できます。
-
SAMPLE_JS2の依存関係が表示され、「先行ジョブおよびジョブ・ストリーム」のリストにSAMPLE_JS1がリストされていることを確認します。「ビューのクローズ」ボタンをクリックすると元のリストに戻ります。
-
ブラウザの別のタブで当日計画されているジョブ・ストリームの前後関係がわかるビューが表示されます。SAMPLE_JS1とSAMPLE_JS2があることを確認します。
-
ジョブ・ストリームの詳細を確認することもできます。SAMPLE_JS1をクリックし、左上に表示される「その他アクション」ボタンをクリックします。
-
さらにタブが開き、SAMPLE_JS1の図が表示されます。ジョブをクリックすると、「その他アクション」からジョブに対して様々な操作を行うことが可能です。
-
確認後、必要に応じてWorkload Designerでジョブやジョブ・ストリームを編集します。
予測計画を作成して確認する
ジョブ・ストリームの初回実行日がしばらく先である、トライ&エラーが許されない状況である、などの場合は、「予測計画」を作成して意図したとおりにスケジュールされるかどうかをシミュレーションすることも可能です。次の手順で予測計画を作成します。
*「モニターおよびレポート」メニューから「ワークロードのモニター」を選択します。
-
2023年7月1日のスケジュールが表示され、SAMPLE_JS1、SAMPLE_JS2がスケジュールされていることを確認します。ここで参照しているのはあくまでも予測計画であり、ジョブ・ストリームを実際に実行したりすることはできません。
-
グラフィカル・ビューで参照したい場合は、「モニターおよびレポート」の「計画ビューの表示」を選択後、次の画面で「計画:」フィールドで予測計画を選択して「実行」ボタンをクリックしてください。ブラウザの別タブで2023/7/1の予測計画をベースにした計画ビューが表示されます。なお、ここでも参照しているのはあくまでも予測計画であり、ジョブ・ストリームを実際に実行したりすることはできません。
-
確認を終えたらそれぞれのビューをクローズします。特にワークロードのモニターは、「計画のリスト:」で選択されている計画を「current-plan」(当日の計画)に戻すのを忘れないようにしてください。
-
確認後、必要に応じてWorkload Designerでジョブやジョブ・ストリームを編集します。
確認手順は以上です。
まとめ
IWSに実際にジョブを登録して稼働確認し、スケジュールに組み込んで確認するまでの手順をご紹介しました。製品の簡易検証や構築フェーズで初めてIWSに触れる方にとって、手っ取り早く操作を行いたい時のヒントになれば幸いです。
本手順で紹介した入力項目などは、検証や動作確認を行うにあたって必要最小限の項目にとどめています。より詳しい情報をお知りになりたい場合は Dynamic Workload Console ユーザーズ・ガイドも参考にしてください。
以上です。