1つのプロジェクト内に大量のジョブネットを登録し、かつ同時に起動されるジョブネットが同じプロジェクト内に多数存在する場合、ジョブネットの起動がスケジュール時刻より遅れる場合があります。またこのように負荷が高い場合、ジョブ実行時のジョブスケジューラのログ(jobdb1.log、jobdb2.log、jobdb3.log)に書き込まれるジョブの実行履歴と、mjsview ログファイル出力コマンドで出力されるジョブの実行履歴に時間的なずれが生じる可能性があります。
ジョブスケジューラはプロジェクトごとに、まとまったジョブネットの管理対象として扱っています。特定のプロジェクトにジョブネットを大量に登録することにより、個々のジョブネット、ジョブを検索する際の検索対象範囲が大きくなり、さらに同時に大量のジョブネットが起動された場合、特定の管理簿に大量のアクセスが集中するためです。
大量のジョブネットを登録する場合は、複数のプロジェクトにジョブネットを分散して登録してください。分散して登録することにより、ジョブネット情報の管理簿へのアクセスが分散されるため、スケジュール性能の劣化を防ぐことができます。
また、大量のジョブやジョブネット定義が存在するものの、例えば月に1度しか実行しないジョブネットが大量にあるなど、1日に動作するジョブネット数が限られている場合は、マスタスケジュール管理機能を利用することで、スケジュール性能の劣化を防ぐことができます。マスタスケジュール管理機能では、運用日に必要なデータのみをマスタ情報から抽出して管理簿が作成されるため、ジョブネットを起動する際にアクセスする管理簿は小さくなるためです。
マスタスケジュール管理機能の詳細は、“Systemwalker Operation Manager マスタスケジュール管理 ユーザーズガイド”を参照してください。
大量のジョブネットを登録する場合の指針
ジョブネットの登録量を想定し、スケジュールどおりに問題なくジョブネットが起動されることを検証してください。
例えば、想定されるジョブネットの登録量と起動したい時刻を設定した仮の業務モデルを用意し、スケジュールどおりに問題なくジョブネットが起動できることを事前に検証してください。
[例] 業務モデル
ジョブネット登録数 | 1,000 |
起動予定時刻 | 10:00 |
起動ジョブネット数 | 100 |
上記の業務モデルを実行した結果、ジョブネットの起動が起動予定時刻より遅れた場合、同時刻に起動するジョブネットを複数のプロジェクトに分散して登録するなど、業務モデルを変更して再検証してください。
大量のジョブネットが登録されている場合の対処
すでに大量のジョブネットが登録されている場合、プロジェクトごとのジョブネットの登録数、起動予定時刻を確認し、必要に応じてジョブネットを別のプロジェクトへの分散してください。
登録されているジョブネット数の確認方法
プロジェクトごとのジョブネットの登録数、起動予定時刻を確認するには、jobschprint -Nコマンドを利用します。
jobschprint -Nコマンドの詳細は、“Systemwalker Operation Manager リファレンス集”を参照してください。
ジョブネットの複数プロジェクトへの分散方法
ジョブネットを別のプロジェクトに移動する場合、以下の考慮が必要です。
jobschmsgeventコマンドでメッセージ事象を発生させることによってジョブネットを起動しているような場合は、jobschmsgeventコマンドのプロジェクト名を見直してください。
グループに登録されたジョブネットを移動する場合は、グループに含まれるジョブネットをすべて複写した後に、グループを再構成してください。
ジョブネットを移動する手順は以下のとおりです。
ジョブネットを、以下のいずれかの方法で他のプロジェクトに複写します。
jobschsetnet -ncpyコマンドで複写する
Systemwalker Operation Managerのクライアント画面で、“ジョブネットの複写”を行う
複写元、複写先の先行後続関係にあるジョブネットでメッセージ事象を発生させるようなジョブネットを見直します。また、グループ登録している場合は複写元、複写先のジョブネットのグループを再構成します。
複写元プロジェクトのジョブネットを削除します。
複写先ジョブネットを無効解除します。
ジョブネットが階層化されている場合は、以下の手順で移動します。
第1階層以下のすべてのジョブネットをjobschprint -rコマンドにより、定義文として任意のファイルに出力します。
jobschsetnetコマンドの引数として1.で出力したファイルを指定し、最下層のジョブネットから順に複写先のプロジェクトへ登録します。
複写元のジョブネットを第1階層から順に削除します。
jobschmsgeventコマンド、jobschsetnetコマンド、jobschprintコマンドの詳細は、“Systemwalker Operation Manager リファレンス集”を参照してください。