ジョブ実行制御は、ジョブの実行から終了までを効率的に制御し、実行履歴の情報を管理、出力します。
また、デマンドジョブの管理を行います。
この項では、ジョブ実行制御の機能を以下の項目に分けて説明します。
ジョブ実行環境の制御
ジョブの実行環境 【UNIX版】
ネットワークジョブの実行
履歴情報の出力
ジョブ実行制御は、ジョブの実行優先順位の制御、多重度の制御、およびジョブの処理状況の管理を行うために、ジョブをキューで管理します。
ジョブ投入すると、すべてのジョブはキューにキューイングされ、各種の実行制御を受けます。また、デマンドジョブの場合、キューで管理することにより、システムダウンなどの異常が発生した場合でも、ジョブが消去されることなくシステム再起動後に実行されることを保証します。
ジョブ実行制御はジョブを以下の指定内容に従って処理します。
[運用情報の定義]ウィンドウとは、Systemwalker Operation Managerを導入しているサーバにどのようなキューを作って、どのように制御するかを定義するウィンドウです。導入時には標準的な内容が設定されていますが運用方法に応じて任意に変更することができます。[運用情報の定義]ウィンドウについては“Systemwalker Operation Manager 導入手引書”または“Systemwalker Operation Manager オンラインヘルプ”を参照してください。
キューは複数作成することができ、部門別、業務別、または実行時間の長さ別などの属性でキューを作成すると、ジョブのスループットの効率化を図ることができます。例えば、実行時間の長いジョブ用のキューと、実行時間の短いジョブ用のキューを作成し、これをルール化して運用すれば、実行時間の短いジョブが、実行時間の長いジョブのために、何時間も待たされるようなことを防止することができます。
なお、同様の定義は初期化ファイルで指定することもできます。初期化ファイルについては、“Systemwalker Operation Manager 導入手引書”を参照してください。
それぞれのジョブに対しては、その実行方法について各種の指定をすることができます。ジョブ実行制御はその指定内容に従ってジョブの実行を制御します。
ジョブ実行制御の制御内容の主なものを以下に示します。
システム内のジョブの多重度
Systemwalker Operation Managerを導入しているサーバ全体で同時に実行できるジョブ数を制限します。実行中のジョブ数が、制限値に達している場合は、各キューの制限値(キュー内のジョブの多重度)に達していなくてもジョブは実行されません。
複数サブシステム運用を行っている場合は、サブシステム単位でジョブ数を制限できます。
キュー内のジョブの多重度
キュー単位で同時に実行できるジョブ数を制限します。キュー単位での実行中ジョブ数が、制限値に達している場合は、Systemwalker Operation Managerを導入しているサーバ全体の制限(システム内のジョブの多重度)に達していなくてもジョブは実行されません。
キューへの投入可能ジョブ数
キュー単位で、そのキューに投入できるジョブ数を制限します。投入できるジョブ数とは、実行中、実行待ちなどの状態にあるジョブも含めた、そのキューが処理できるジョブの総数です。
実行経過時間によるジョブの打切り
キュー単位で、ジョブを実行できる時間を制限します。ジョブは、この制限時間を超えて実行できません。制限時間に達したジョブは、強制終了されます。
実行待ちジョブの優先順位
実行待ち状態のジョブの中での優先順位を指定できます。指定された優先順位が高いジョブから順番に実行されます。
ジョブの実行優先度
実行中のジョブの中での優先度を指定できます。優先度は、ジョブが実行される際、ジョブとして起動されるプロセスに対するCPUが割り当てられる優先順位を数値で指定します。
接続先のサーバがWindowsの場合、指定できる数値は0から4までです。指定した値が大きいほど実行時のCPU割当て順位が高くなります。指定した値が小さいほど実行時のCPU割当て順位が低くなります。
また、接続先のサーバがUNIXの場合、指定できる数値は-20から19までです。指定した数値はUNIXシステムのナイス値に相当し、指定した値が小さいほど実行時のCPU割当て順位が高くなります。指定した値が大きいほど実行時のCPU割当て順位が低くなります。
なお、接続先のサーバがUNIXの場合、設定を行う画面によっては、指定できる数値は0から39までとなります。その場合は、指定した値が大きいほど実行時のCPU割当て順位が高くなります。指定した値が小さいほど実行時のCPU割当て順位が低くなります。
Windows版とUNIX版の異なるプラットフォーム間でのネットワークジョブの場合、指定した実行優先度は以下のように変換されます。
UNIX版からWindows版へネットワークジョブを投入した場合に設定する実行優先度
投入元 UNIX版 | 実行先 Windows版 | |
---|---|---|
実行優先度 | -20 ~ -13 または、39 ~ 32 | 4 |
-12 ~ -5 または、31 ~ 24 | 3 | |
-4 ~ 3 または、23 ~ 16 | 2 | |
4 ~ 11 または、15 ~ 8 | 1 | |
12 ~ 19 または、 7 ~ 0 | 0 |
Windows版からUNIX版へネットワークジョブを投入した場合に設定する実行優先度
投入元 Windows版 | 実行先 UNIX版 | |
---|---|---|
実行優先度 | 4 | -20 または、39 |
3 | -10 または、29 | |
2 | 0 または、19 | |
1 | 10 または、 9 | |
0 | 19 または、 0 |
ジョブの実行優先度の指定値は、以下の優先順位で採用されます。
採用される 優先順位 | 実行優先度の指定方法 |
---|---|
1 | 投入元のジョブスケジューラで設定した実行優先順位、もしくはqsubコマンドの-dpオプション |
2 | 投入元の運用情報定義で設定されたqueueのdfltdprty |
3 | 実行先の運用情報定義で設定されたqueueのdfltdprty |
注意
実行継続モードを有効(continue)にして運用されている場合は、スケジュールサーバのシステムダウン時にネットワークジョブの実行を継続するため、システムダウン後にスケジュールサーバで再設定したジョブの実行優先度は実行サーバで実行中のジョブに反映されません。
実行継続モードが無効(cancel)の場合は、スケジュールサーバのシステムダウン時にネットワークジョブを強制終了するため、システムダウン後に再設定したジョブの実行優先度は実行サーバで再実行される際に有効となります。
リソースの排他
同一の資源を使用する複数のジョブが同時に実行しないように、排他属性を指定します。
同名ジョブの排他
ジョブ実行制御では、同じジョブ名を持つジョブが同時に実行しないように排他属性を指定できます。
ジョブ実行制御は、ジョブのシェルスクリプトを解釈するためにシェルを起動します。起動するシェルの種別は、ジョブを投入したユーザのログインシェル(パスワードファイル内に定義されたログインシェル)です。
ジョブ実行時には、シェルによってログイン環境を整え(.profile、.login、.cshrcなどのスタートアップファイルを起動して)、シェルスクリプトを解釈します。
Systemwalker Operation Managerでは、ネットワークで接続された、任意のSystemwalker Operation Managerが導入されているサーバでジョブを実行することができます。このように、ネットワークで接続された任意のサーバで実行されるジョブを、“ネットワークジョブ”と呼びます。ジョブ実行結果は、ジョブ投入元サーバで参照できます。ネットワークジョブの実行サーバとして、Windowsサーバ、UXP/DS、Solaris、AIX、HP-UX、Linuxをサポートしています。
ネットワークジョブを実行した場合のイメージ図を以下に示します。この図では、クライアントAからWindowsサーバAにジョブを投入し、UNIXサーバBにジョブの実行を依頼する場合を想定しています。
参考
コード変換について
コード体系の異なるサーバ間でネットワークジョブを実行する場合は、コード変換機能を利用して、コードを変換することができます。ジョブファイル、標準出力ファイルおよび標準エラー出力ファイルのコードを変換(改行コードの変換を含む)します。
コードを変換する場合は、Systemwalker Operation Managerを導入しているジョブ投入元サーバにて、[運用情報の定義]ウィンドウで定義します。
[運用情報の定義]ウィンドウの定義方法については、“Systemwalker Operation Manager 導入手引書”を参照してください。
サーバ上には、ジョブ実行情報として以下のファイルを出力することができます。
ジョブの実行履歴です。
ジョブの稼働実績情報です。
これらのファイルは1日単位で作成され、指定した日数分のファイルが保存されます。