概要
■テーブル関数名:QSYS2.ACTIVE_JOB_INFO
■カテゴリ:実行管理サービス
■サポート:IBM i 7.2以降
■参照URL(IBM i 7.5):https://www.ibm.com/docs/ja/i/7.5?topic=services-active-job-info-table-function
・IBM i OS上のすべて・または一部の実行中ジョブのリストを取得できます。WRKACTJOBコマンドに類似
・活動中ジョブの統計情報を取得できます。WRKACTJOBのF10キーと同様に統計情報をリセットすることもできます。
QSYS2.ACTIVE_JOB_INFO実行例
SELECT * FROM TABLE ( QSYS2.ACTIVE_JOB_INFO(JOB_NAME_FILTER => 'QPADEV*')) ;
5250の端末名が QPADEV*** という名前のジョブ一覧が取得されます。
業務利用ユースケース
従来5250端末で実行監視していた場合、SQLに置換してIBM i 外部の監視ツールや端末デバイスから監視させることができます。
また、以下のように実行中のジョブのリストを取得後に、後続処理をCLPなどで投入することもできます。
■QCMDXCプロシージャー 参考
https://www.ibm.com/docs/ja/i/7.5?topic=services-qcmdexc-procedure
Navigator for iでもこのIBM i サービスは使われています
Navigator for i でアクティブジョブ画面を表示させて、画面右上のSQLを表示で確認すると、ACTIVE_JOB_INFOテーブル関数が呼び出されていることがわかります。
Navigator for iのアクティブジョブの画面で色々なフィルターを指定できますが、フィルター条件を含めてACTIVE_JOB_INFOのSQLを取得できます。
以下の例はジョブ名を 'SAMPLE*' とした際の例です。
SELECT *
FROM TABLE ( QSYS2.ACTIVE_JOB_INFO(
RESET_STATISTICS => 'NO’,
SUBSYSTEM_LIST_FILTER => ‘’,
JOB_NAME_FILTER => '*ALL’,
CURRENT_USER_LIST_FILTER => ‘’,
DETAILED_INFO => 'ALL' ) )
WHERE UPPER(JOB_NAME_SHORT) LIKE '%SAMPLE%’
LIMIT 100 OFFSET 0 ;