LoginSignup
2
3

More than 1 year has passed since last update.

IBM Workload Schedulerでジョブを登録して動かすまで

Posted at

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ユーザーです。
  • 実行スクリプトは、いずれもジョブを実行するサーバーに配置済みです。
    Sample_js.png

手順概要

以下の流れで作業します。

  1. ジョブ定義を作成する
  2. ジョブを単体で実行し、稼働確認する
  3. ジョブストリーム定義を作成する
  4. ジョブストリームが意図したとおりにスケジュールされることを確認する

ジョブ定義の作成

  • DWCにログインします。ログインURLは、通常は http://IWSサーバーのホスト名またはIP:9443/console/login.jsp です。
    image.png

  • 「設計」メニューから「Workload Designer」を選択します。
    スクリーンショット 2023-06-06 14.55.59.png

  • 画面左側で、ジョブ定義を保存するフォルダーを選び(ここでは"SAMPLE"を選択、特にフォルダを作成していない場合は"/"を選択)、画面右側の「新規作成」ボタンをクリックし、リストから「ジョブ定義名」を選択します。
    スクリーンショット 2023-06-06 15.28.24.png

  • 「ジョブ定義の選択」ダイアログで「Unix」を選択します。
    スクリーンショット 2023-06-06 15.30.54.png

  • 画面右側に表示される「プロパティー」タブで、名前(ジョブ名)、ワークステーション(実行サーバー)、ログイン(実行ユーザー)を入力します。
    スクリーンショット 2023-06-06 15.35.21.png

* 下にスクロールして「タスク」セクションを展開し、「タスク・タイプ」としてスクリプトを選択し、「コマンドまたはスクリプト名」フィールドにジョブとして実行するスクリプト名をフルパスで入力します。
スクリーンショット 2023-06-06 15.38.12.png

  • 入力を終えたら「保存」をクリックします。これで SAMPLE_JOB11を登録できました。
    スクリーンショット 2023-06-06 15.55.49.png
    スクリーンショット 2023-06-06 15.55.58.png

  • SAMPLE_JOB12, SAMPLE_JOB21についても同じ要領で登録可能ですが、設定内容がほぼ同じジョブが複数あるような場合は、作成済みのジョブをコピーして必要箇所のみを修正することも可能です。SAMPLE_JOB11を保存後、左側の画面でSAMPLE_JOB11を選択した状態で「他のアクション」ボタンをクリックし、「複写」を選択します。
    スクリーンショット 2023-06-06 16.02.31.png

  • 「複製する項目の名前」ダイアログで、「新しい項目名」フィールドに「SAMPLE_JOB12」と入力し「新しい名前の保存」ボタンをクリックします。
    スクリーンショット 2023-06-06 16.05.03.png

  • SAMPLE_JOB12ジョブの登録画面が表示されるので、スクリプト名を編集し、「保存」ボタンをクリックします。
    スクリーンショット 2023-06-06 16.09.53.png

  • SAMPLE_JOB21も作成します。3つのジョブの登録を終えると作成したジョブが次の画面のようにリスト表示されます。
    スクリーンショット 2023-06-06 16.13.32.png

ジョブの稼働確認

登録したジョブを問題なく実行できるかどうか、稼働確認します。ジョブの登録画面からジョブを即時実行することが可能です。開発・検証フェーズで便利な機能です。

  • ジョブの登録を終えたら、稼働確認したいジョブをリストから選択し、ジョブ名の右隣に表示されている右向きの矢印(実行依頼)ボタンをクリックします。
    スクリーンショット 2023-06-06 16.18.03.png

  • 「ジョブを最新計画に実行依頼」ダイアログにて、必要に応じて入力します。当日スケジュール済みのジョブ・ストリームにジョブを追加したい場合は、ジョブ・ストリーム名を選択入力します。今回は特にジョブ・ストリームを選択せず、テスト実行であることがわかるように「TEST_SAMPLE_JOB11」と別名を指定して「OK」ボタンをクリックします。
    スクリーンショット 2023-06-06 16.19.46.png

  • ジョブが別名で"JOBS"というジョブ・ストリームへ実行依頼されたことを示すダイアログが表示されます。特にジョブ・ストリームを指定しない場合は、ジョブ実行サーバーの"JOBS"というジョブ・ストリームが作成されて、そのジョブ・ストリームにジョブが追加されます。右上のXをクリックしてダイアログを閉じます。
    スクリーンショット 2023-06-06 16.24.29.png

  • 実行依頼したジョブの稼働確認をします。「モニターおよびレポート」をクリックし、「ワークロードのモニター」を選択します。
    スクリーンショット 2023-06-06 16.30.39.png

  • 「オブジェクト・タイプ」のリストから「ジョブ」を選択後、「実行」ボタンをクリックします。
    スクリーンショット 2023-06-06 17.47.27.png

  • スケジュール済みのジョブの一覧が表示されるので、先ほど実行依頼した「TEST_SAMPLE_JOB11」の状況を確認します。「成功」していれば、ジョブを問題なく実行できています。「エラー」となる場合は、隣に表示されている「内部状況」によって、ジョブ定義やジョブ定義で指定した内容を確認する必要があります。

    • 「内部状況」がFAILEDの場合は、スクリプトを起動できなかったことを示します。ありがちな要因として、ジョブ定義で指定した実行ユーザーが正しく作成されていない、実行ユーザー名が間違っている、スクリプトが指定されたディレクトリに配置されていない、スクリプトのパーミッションに誤りがある、といったことが考えられます。
    • 「内部状況」がABENDの場合は、スクリプトを起動したが異常終了したことを示します。この場合はDWCでジョブ・ログを表示してエラー内容やリターンコードを確認するか、実行サーバーにログインしてスクリプトを確認してください。
      スクリーンショット 2023-06-06 17.50.05.png
  • ジョブ・ログを確認したい場合はリストで対象のジョブを選択し、「ジョブ・ログ」をクリックするとスクリプトのログ(標準出力、標準エラー出力)を参照できます。ジョブを再度実行したい場合は、「再実行...」をクリックすると同じジョブを再実行できます。
    スクリーンショット 2023-06-06 21.07.36.png

ジョブ・ストリーム定義の作成

ジョブはジョブ・ストリームに追加し、実行日や起動条件(依存関係)を設定することで自動実行されるようになります。IWSはジョブ・ストリームをベースに毎日のスケジュールを組み立てるためです。先の手順で作成した3つのジョブを2つのジョブ・ストリームに組み込みます。

  • Workload Designerを開き、画面左側でジョブ・ストリーム定義を追加するフォルダを選択します。(ここではジョブの時と同様に「SAMPLE」フォルダを選択しています。)画面右側で「新規作成」ボタンをクリックし、「ジョブ・ストリーム」を選択します。
    スクリーンショット 2023-06-06 21.34.55.png

  • 1つ目のジョブ・ストリームである SAMPLE_JS1 を作成します。画面右側に表示される「プロパティー」タブで「名前」フィールドにジョブ・ストリーム名を、「ワークステーション」に実行サーバーを入力します。

    • ジョブに実行サーバーを指定しているにもかかわらず、ジョブ・ストリームにも実行サーバーを指定しなくてはいけない点について様々議論がありますが、ジョブの実行そのものには何ら影響しません。ここではこのジョブ・ストリームに追加する2つのジョブと同様にここではIWSAGT11を指定します。
      スクリーンショット 2023-06-06 21.47.53.png
  • 画面左側で「実行サイクル」の横の「+」をクリックします。「実行サイクル」の下に「RC0」のエントリーが追加され、画面右側に実行サイクルのプロパティーを入力するフィールドが表示されます。実行サイクルとは、ジョブ・ストリームの実行日を指定するものです。
    スクリーンショット 2023-06-06 21.51.14.png

  • 画面右側で下の方へスクロールし、「ルール」セクションを展開します。「繰り返しスケジュール」で「毎日」をリストから選択し、「選択した日数ごとの実行」を「1」にします。これで実行日が毎日に設定されます。(わかりにくいですが、ここで「2」を選択すると1日おきにジョブが実行されます。)
    スクリーンショット 2023-06-06 21.59.11.png

  • さらに下の方へスクロールし、「時間制限」セクションを展開します。「最早開始」で時刻を 10:00(午前)に設定し、「遅延日数」を「0」にします。さらに「時間依存関係として使用」を設定します。ここまでで 「SAMPLE_JS11を毎日午前 10:00に実行する」設定ができました。まだジョブ・ストリーム作成手順は続くため、一旦保存します。(自動保存はされませんので、区切りのいいところでこまめに保存しておくことを推奨します。)
    スクリーンショット 2023-06-06 22.02.52.png

  • ジョブ・ストリームへ、ジョブを追加します。SAMPLE_JS1には、SAMPLE_JOB11とSAMPLE_JOB12を追加します。画面左側で、「ジョブ」の隣に表示されている「+」をクリックします。
    スクリーンショット 2023-06-07 11.49.11.png

  • 「ジョブ定義の検索」ダイアログが表示されるので、「ジョブ定義名」に"SAMPLE*"と入力し、先の手順で追加したジョブを検索します。
    スクリーンショット 2023-06-07 11.51.20.png

  • 検索結果から追加したいジョブを選択し、「追加」ボタンをクリックします。
    スクリーンショット 2023-06-07 13.49.50.png

  • ジョブストリーム名の隣にある「グラフィカル・ビュー」ボタンをクリックします。
    スクリーンショット 2023-06-07 13.53.02.png

  • 下記の画面ショットのように画面左側の表示が切り替わり、ジョブを表すボックスが2つ表示されます。
    スクリーンショット 2023-06-07 13.55.17.png

  • 左側のSAMPLE_JOB11をクリックすると、ジョブの左上に「>」(「依存関係の作成」)アイコンが表示されるので、そのアイコンをクリックしたまま右側のSAMPLE_JOB12にドラッグアンドドロップすると2つのジョブの間に依存関係が作成されます。(この操作は少し慣れが必要ですが、多数のジョブ間で依存関係を設定する場合は便利な操作です。)これで SAMPLE_JOB11の正常終了後にSAMPLE_JOB12が実行されるようになります。
    スクリーンショット 2023-06-07 13.58.43.png
    スクリーンショット 2023-06-07 14.00.39.png

  • 「グラフィカル・ビューの終了」ボタンをクリックします。
    スクリーンショット 2023-06-07 14.05.04.png

  • 下記スクリーンショットのように、2つのジョブが追加され、SAMPLE_JOB12の依存関係としてSAMPLE_JOB11が追加されていることを確認し、「保存」ボタンをクリックします。
    スクリーンショット 2023-06-07 14.06.32.png

  • SAMPLE_JS1と同じ要領でSAMPLE_JS2を作成します。ここでは次のように設定しています。

    • 実行サーバーはIWSAGT12
    • 実行サイクルは毎日(開始時刻の指定はなし)
    • ジョブはSAMPLE_JOB21を追加
      スクリーンショット 2023-06-07 14.14.00.png
  • SAMPLE_JS2は特に開始時刻を設定せず、SAMPLE_JS1が正常終了次第実行されるように設定します。ジョブ・ストリーム名の下にある「依存関係」の隣の「+」ボタンをクリックし、リストから「ジョブ・ストリーム」を選択します。
    スクリーンショット 2023-06-07 14.17.52.png

  • 「ジョブ・ストリームの検索」ダイアログが表示されるので、「ジョブ・ストリーム」フィールドに"SAMPLE*"と入力し「検索」ボタンをクリックします。
    スクリーンショット 2023-06-07 14.19.23.png

  • リストから「SAMPLE_JS1」を選択し、「追加」ボタンをクリックします。
    スクリーンショット 2023-06-07 14.22.57.png

  • ジョブ・ストリーム「SAMPLE_JS2」の依存関係として「SAMPLE_JS1」が追加されたことを確認し、「保存」ボタンをクリックします。
    スクリーンショット 2023-06-07 14.26.01.png

  • ここまでで次の一連のジョブ・ストリームを作成できました。(図は再掲)
    Sample_js.png

  • なお、ジョブ・ストリームについても、ジョブと同様にこの画面から「実行依頼」ボタンをクリックすることで稼働確認を行うことができます。ただし、ジョブ・ストリーム単位での実行依頼となること(複数の連続するジョブ・ストリームを一度の操作で実行依頼できない)、また設定されている依存関係によって即時実行されなかったり、逆に依存関係を無視して即時実行されるケースがあることに注意してください。例えば SAMPLE_JS1は10:00開始に設定されていますので、10:00前に実行依頼された場合は10:00まで開始されません。SAMPLE_JS2は、実行依頼した当日にSAMPLE_JS1がスケジュールされていない場合は、依存関係が無視されて即時実行されます。
    スクリーンショット 2023-06-07 14.30.52.png

  • ジョブ・ストリームやジョブを作成したあとは、必ず編集画面にリストされているジョブ・ストリームやジョブをクローズしましょう。編集中のままブラウザ画面ごと閉じてしまうと定義がロックされたままとなり、他のユーザーが編集できなくなることがあります。
    リストでクローズしたい全ての定義を選択し、「保管」、「クローズ」の順にボタンをクリックします。
    スクリーンショット 2023-06-07 14.51.18.png

ジョブ・ストリームが定義どおりにスケジュールされることを確認する

設定したジョブ・ストリームが意図した通りにスケジュールされることを確認します。次の2つの方法があります。

  • 実際にスケジュールされるまで待つ
  • 予測計画を作成して確認する

2つの方法それぞれについて説明します。使用している環境や状況に応じてこのいずれかの方法で確認します。

実際にスケジュールされるまで待つ

毎日定時の日替わり処理が実行されるのを待ち、ジョブ・ストリームの実行日当日に確認する方法です。
IWSサーバーでは、毎日定時に日替わり処理(FINALジョブ・ストリーム)が実行され、24時間分のスケジュールが生成されます。
IWSサーバーの初期導入時はこの日替わり処理は毎日23:59に開始され、次の24時間分のスケジュールが作成されます。
今回は毎日10:00から開始するSAMPLE_JS1と、その後実行するSAMPLE_JS2を作成しました。
本日の日中にこの2つのジョブ・ストリームを作成した場合、今夜の23:59の日替わり処理でスケジュールに追加されます。明日0:00以降、スケジュールされたかどうかを確認できます。
確認手順は以下です。

  • 「モニターおよびレポート」メニューから「ワークロードのモニター」を選択します。
    スクリーンショット 2023-06-07 14.55.05.png

  • 「オブジェクト・タイプ」で「ジョブ・ストリーム」を選択し「実行」ボタンをクリックします。
    スクリーンショット 2023-06-07 15.02.41.png

  • スケジュールされているジョブ・ストリームの一覧が表示されます。SAMPLE_JS1とSAMPLE_JS2がスケジュールされていることを確認できます。また、SAMPLE_JS1の「スケジュール済み時刻」が10:00になっていることを確認できます。
    スクリーンショット 2023-06-07 15.04.11.png

  • さらにSAMPLE_JS2の「満たされていない依存関係」の列に「1」と表示されているので、そこをクリックします。
    スクリーンショット 2023-06-07 15.06.21.png

  • SAMPLE_JS2の依存関係が表示され、「先行ジョブおよびジョブ・ストリーム」のリストにSAMPLE_JS1がリストされていることを確認します。「ビューのクローズ」ボタンをクリックすると元のリストに戻ります。
    スクリーンショット 2023-06-07 15.07.16.png

  • グラフィカル表示もできます。「モニターおよびレポート」のメニューから「計画ビューの表示」を選択します。
    スクリーンショット 2023-06-07 15.09.21.png

  • 「実行」ボタンをクリックします。
    スクリーンショット 2023-06-07 16.10.49.png

  • ブラウザの別のタブで当日計画されているジョブ・ストリームの前後関係がわかるビューが表示されます。SAMPLE_JS1とSAMPLE_JS2があることを確認します。
    スクリーンショット 2023-06-07 15.10.12.png

  • ジョブ・ストリームの詳細を確認することもできます。SAMPLE_JS1をクリックし、左上に表示される「その他アクション」ボタンをクリックします。
    スクリーンショット 2023-06-07 15.11.18.png

  • メニューから「オープン(O )...」、「ジョブ・ストリーム・ビュー」の順番に選択します。
    スクリーンショット 2023-06-07 16.22.00.png

  • さらにタブが開き、SAMPLE_JS1の図が表示されます。ジョブをクリックすると、「その他アクション」からジョブに対して様々な操作を行うことが可能です。
    スクリーンショット 2023-06-07 15.14.14.png
    スクリーンショット 2023-06-07 15.14.55のコピー.png
    スクリーンショット 2023-06-07 15.15.31.png

  • 確認後、必要に応じてWorkload Designerでジョブやジョブ・ストリームを編集します。

予測計画を作成して確認する

ジョブ・ストリームの初回実行日がしばらく先である、トライ&エラーが許されない状況である、などの場合は、「予測計画」を作成して意図したとおりにスケジュールされるかどうかをシミュレーションすることも可能です。次の手順で予測計画を作成します。

  • DWCにログインし、「計画」、「予測計画の作成」の順に選択します。
    スクリーンショット 2023-06-07 16.31.51.png

  • 「計画開始」にスケジュールを作成したい日付を設定し(ここでは 2023/7/1に設定)、「計画の生成」ボタンをクリックします。
    スクリーンショット 2023-06-07 16.35.31.png

  • メッセージが表示されるので、「OK」ボタンをクリックして閉じます。
    スクリーンショット 2023-06-07 16.37.18.png

*「モニターおよびレポート」メニューから「ワークロードのモニター」を選択します。
スクリーンショット 2023-06-07 14.55.05.png

  • 「計画のリスト:」でリストを表示し、リストから先の手順で作成した予測計画を選択します。
    スクリーンショット 2023-06-07 16.52.51.png

  • 「実行」ボタンをクリックします。
    スクリーンショット 2023-06-07 16.54.28.png

  • 2023年7月1日のスケジュールが表示され、SAMPLE_JS1、SAMPLE_JS2がスケジュールされていることを確認します。ここで参照しているのはあくまでも予測計画であり、ジョブ・ストリームを実際に実行したりすることはできません。
    スクリーンショット 2023-06-07 16.55.38.png

  • グラフィカル・ビューで参照したい場合は、「モニターおよびレポート」の「計画ビューの表示」を選択後、次の画面で「計画:」フィールドで予測計画を選択して「実行」ボタンをクリックしてください。ブラウザの別タブで2023/7/1の予測計画をベースにした計画ビューが表示されます。なお、ここでも参照しているのはあくまでも予測計画であり、ジョブ・ストリームを実際に実行したりすることはできません。
    スクリーンショット 2023-06-07 17.01.47.png
    スクリーンショット 2023-06-07 17.04.23.png

  • 確認を終えたらそれぞれのビューをクローズします。特にワークロードのモニターは、「計画のリスト:」で選択されている計画を「current-plan」(当日の計画)に戻すのを忘れないようにしてください。
    スクリーンショット 2023-06-07 17.10.11.png

  • 確認後、必要に応じてWorkload Designerでジョブやジョブ・ストリームを編集します。

確認手順は以上です。

まとめ

IWSに実際にジョブを登録して稼働確認し、スケジュールに組み込んで確認するまでの手順をご紹介しました。製品の簡易検証や構築フェーズで初めてIWSに触れる方にとって、手っ取り早く操作を行いたい時のヒントになれば幸いです。

本手順で紹介した入力項目などは、検証や動作確認を行うにあたって必要最小限の項目にとどめています。より詳しい情報をお知りになりたい場合は Dynamic Workload Console ユーザーズ・ガイドも参考にしてください。

以上です。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3