JP1を使ったジョブ管理をしているシステムでは、ジョブの実行時間を定期的に計測し、パフォーマンスの変化を監視することが重要です。この記事では、JP1のマネージャーサーバ上で ajsshow コマンドを使って、ジョブの実行時間を一括取得する方法を紹介します。
1. JP1でジョブ実行時間を取得する目的
担当しているシステムでは、JP1を使って定期的にジョブを実行しています。毎月、対象ジョブの実行時間をグラフ化し、パフォーマンスに問題がないかを確認・報告しています。
2. ajsshowコマンドとは?
JP1のマネージャーサーバで使用できる ajsshow コマンドは、ジョブの実行履歴を取得するための便利なツールです。ジョブネットやジョブグループ単位で実行結果を一括取得できるため、ログ収集や分析に最適です。
3. 実行バッチの作成例
以下は、毎日決まった時間に当日分のジョブ実行結果を取得するバッチファイルの例です。
rem ==============================================================
rem 名称:JP1実行結果ログ取得
rem 処理:毎日特定の時間に当日分のジョブネットの実行結果を毎日取得する
rem 実行時間:基準時刻が終わるタイミング
rem ==============================================================
rem 1日の定義は(基準時刻で決まる)
rem 取得開始日と取得終了日の設定(1日分なので当日を取得)
SET vdate=%date%
rem 結果ファイルのタイムスタンプ(yyyymmdd)
SET yyyyMMdd=%date:/=%
rem 結果ファイルの格納先(JP1サーバで決められた場所)
set copy_from="C:\test"
rem 結果ファイルの格納先をフルパスで指定(JP1サーバでのファイル出力先を指定)
SET KEKKAFILE=%copy_from%\jp1result_%yyyyMMdd%.txt
rem =====ここからJP1コマンド======
rem -Rで指定したジョブネットまたはジョブグループの配下すべての実行結果が出力される。
ajsshow -v %vdate% -w %vdate% -f "%%s %%e %%R %%J" -R AJSROOT:XXXXXXXXXX >%KEKKAFILE%
4. ajsshowの主なオプション
| 引数 | 説明 |
|---|---|
| -v | 出力対象の実行開始日指定 |
| -w | 出力対象の実行終了日指定 |
| -f | フォーマット指示子 |
| %s | ジョブネット,またはジョブの実行開始日時(-fのフォーマット指示子) |
| %e | ジョブネット,またはジョブの実行終了日時(-fのフォーマット指示子) |
| %R | 戻り値(-fのフォーマット指示子) |
| %J | ジョブネット完全名(-fのフォーマット指示子) |
| -R | ジョブネット,またはジョブの実行開始日時(-fのフォーマット指示子) |
※バッチファイル内では % を %% にエスケープする必要があります。
5. 出力される内容の解説
ジョブネットの場合の出力例:
2021/06/01 08:30:00 2021/06/01 08:30:10 *** ジョブネットのフルパスジョブの場合の出力例:
2021/06/01 08:30:00 2021/06/01 08:30:10 0 ジョブネットのフルパス- 実行開始日時、終了日時、リターンコード、ジョブネット名がスペース区切りで出力されます。
- ジョブネットのリターンコードは
***になります。
6. 実行時間の算出方法
ジョブの実行時間は以下のように算出できます:
実行時間 = 実行終了日時 - 実行開始日時
この出力内容をpythonなどで取得すると簡単に日別や月別の実行時間などを出力することが可能です。興味のある方は以下に記載していますので参考にしていただければと思います。
7. まとめ
- JP1のジョブ実行時間は
ajsshowコマンドで簡単に取得可能。 - バッチ化することで毎日自動でログ収集が可能。
- 実行時間の分析にはPythonなどのスクリプトが便利。


コメント