ACTIVE_JOB_INFO テーブル関数
ACTIVE_JOB_INFO テーブル関数は、すべてのアクティブ・ジョブに対して 1 行を返します。
- アクティブ・ジョブの全部またはサブセットの詳細を確認するため。オプションのフィルター・パラメーターを使用して、アクティブ・ジョブのサブセットを要求できます。
- アクティブ・ジョブの経過統計を測定するため。WRKACTJOB コマンドの F10 統計の再始動関数と同様に、オプション・パラメーターを使用して統計をリセットできます。測定は、この新規開始点に基づいて計算されます。
>>-ACTIVE_JOB_INFO--(-------------------------------------------> >--+----------------------------------------------+-------------> '-+------------------------+--reset_statistics-' '-RESET_STATISTICS-- => -' >--+-----------------------------------------------------------+--> '-,--+-----------------------------+--subsystem_list_filter-' '-SUBSYSTEM_LIST_FILTER-- => -' >--+-----------------------------------------------+------------> '-,--+-----------------------+--job_name_filter-' '-JOB_NAME_FILTER-- => -' >--+-----------------------------------------------------------------+--> '-,--+--------------------------------+--current_user_list_filter-' '-CURRENT_USER_LIST_FILTER-- => -' >--)-----------------------------------------------------------><
- reset_statistics
- 値として YES または NO が入る文字またはグラフィック・ストリング式。
このパラメーターの値が YES の場合、この照会実行の時刻が新しいベースラインとして使用されるように、統計がリセットされます。この接続内で ACTIVE_JOB_INFO を今後呼び出すと、新しいベースラインに基づいた統計詳細が返されます。このパラメーターの値が NO の場合、subsystem_list_filter または job_name_filter パラメーターの値が前の呼び出しと異なるものでない限り、呼び出しで統計はリセットされません。フィルター値を変更すると、常に統計がリセットされます。このパラメーターが指定されていない場合、デフォルトは NO です。
リセットが明示的に要求されたかどうかに関係なく、接続内の ACTIVE_JOB_INFO の最初の呼び出しは常に暗黙のリセットを実行します。
- subsystem_list_filter
- 単一のコンマで区切られた、最大 25 個のサブシステム名のリストが入った文字またはグラフィック・ストリング式。このフィルターは、ジョブ情報を返すために使用するサブシステムを決定します。
このパラメーターが指定されていないか、空ストリング、または NULL 値の場合、すべてのサブシステムに関する情報が戻されます。
- job_name_filter
- 返すジョブ情報を決定する非修飾ジョブ名を含む文字またはグラフィック・ストリング式。名前は総称にすることができます。このストリングは、次の特殊値のいずれかにすることができます。
- *
- 現行ジョブの情報だけが戻されます。
- *ALL
- すべてのジョブの情報が戻されます。
- *CURRENT
- 現行ジョブと同じジョブ名を持つすべてのジョブの情報が戻されます。
- *SBS
- すべてのアクティブなサブシステム・モニターの情報が戻されます。
- *SYS
- すべてのアクティブなシステム・ジョブの情報が戻されます。この値を使用する場合、subsystem_list_filter は指定しないか、NULL 値でなければなりません。
このパラメーターが指定されていないか、空ストリング、または NULL 値の場合、すべてのジョブに関する情報が戻されます。
- current_user_list_filter
- 単一のコンマで区切られた、最大 10 個のユーザー・プロファイル名のリストが入った文字またはグラフィック・ストリング式。このフィルターは、ジョブ情報を返すために使用する現行ユーザー値を決定します。
このパラメーターが指定されていないか、空ストリング、または NULL 値の場合、すべてのユーザーに関する情報が戻されます。
この関数の結果は、以下の表に示された形式の複数行を含むテーブルです。列はすべて NULL 可能です。
列名 | データ・タイプ | 説明 |
---|---|---|
ORDINAL_POSITION | INTEGER | 各行の固有番号。 |
JOB_NAME | VARCHAR(28) | ジョブの修飾名。 |
INTERNAL_JOB_ID | BINARY(16) | 内部ジョブ ID。 |
SUBSYSTEM | VARCHAR(10) | ジョブが実行されているサブシステムの名前。 ジョブがシステム・ジョブの場合は、NULL 値が入ります。 |
SUBSYSTEM_LIBRARY_NAME | VARCHAR(10) | サブシステム記述が入っているライブラリー。 ジョブがシステム・ジョブの場合は、NULL 値が入ります。 |
AUTHORIZATION_NAME | VARCHAR(10) | この時点で初期スレッドが実行されているユーザー・プロファイル。ユーザー・プロファイルをスワップするジョブの場合、このユーザー・プロファイル名と、ジョブを開始したユーザー・プロファイルは異なることがあります。 |
JOB_TYPE | VARCHAR(3) | アクティブ・ジョブのタイプ。
|
FUNCTION_TYPE | VARCHAR(3) | FUNCTION 列に記述されている機能のタイプ。
これらの値がいずれも該当しない場合は、NULL 値が入ります。 |
FUNCTION | VARCHAR(10) | 初期スレッドによって開始された最後の高水準機能。
FUNCTION_TYPE が NULL でない場合は、FUNCTION_TYPE 列によって定義された値が含まれています。それ以外の場合は、以下のいずれかの値が含まれます。
ログに記録された関数が実行されていない場合は、NULL 値が入ります。 |
JOB_STATUS | VARCHAR(4) | ジョブの初期スレッドの状況。
以下のリストには、ごく一般的な値の一部が含まれています。
値の完全なリストについては、『Work Management API Attribute
Descriptions in Application Programming Interfaces』を参照してください
|
MEMORY_POOL | VARCHAR(9) | 割り振られるジョブの主記憶域が取られるシステム関連プールの ID。 |
RUN_PRIORITY | INTEGER | ジョブの実行優先順位。 |
THREAD_COUNT | INTEGER | ジョブ中で活動状態のスレッドの数。 |
TEMPORARY_STORAGE | INTEGER | 現在このジョブに割り振られている一時記憶域の容量 (メガバイト単位)。 |
CPU_TIME | DECIMAL(20,0) | ジョブが使用している合計処理単位時間 (ミリ秒)。 |
TOTAL_DISK_IO_COUNT | DECIMAL(20,0) | すべての経路指定ステップにわたってジョブが実行したディスク入出力操作の総数。これは、非同期と同期ディスク入出力の合計です。 |
ELAPSED_INTERACTION_COUNT | INTEGER | 対話の数。これは、測定時間間隔中の操作員の対話の数です。 ジョブが対話式でない場合は、NULL 値が入ります。 |
ELAPSED_TOTAL_RESPONSE_TIME | INTEGER | 測定時間間隔における合計応答時間 (秒)。 ジョブが対話式でない場合は、NULL 値が入ります。 |
ELAPSED_TOTAL_DISK_IO_COUNT | DECIMAL(20,0) | 測定時間間隔中にジョブによって実行されたディスク入出力操作の数。これは、非同期と同期ディスク入出力の合計です。 |
ELAPSED_ASYNC_DISK_IO_COUNT | DECIMAL(20,0) | 測定時間間隔中にジョブによって実行された非同期 (物理) ディスク入出力操作の数。この値はデータベースとデータベース以外に対する非同期読み書きの合計です。 |
ELAPSED_SYNC_DISK_IO_COUNT | DECIMAL(20,0) | 測定時間間隔中にジョブによって実行された同期 (物理) ディスク入出力操作の数。この値はデータベースとデータベース以外に対する同期読み書きの合計です。 |
ELAPSED_CPU_PERCENTAGE | DECIMAL(10,1) | 測定時間間隔中にこのジョブに起因した処理装置時間のパーセント。 |
ELAPSED_CPU_TIME | DECIMAL(20,0) | 測定時間間隔中に費やされた合計 CPU 時間 (ミリ秒)。 |
ELAPSED_PAGE_FAULT_COUNT | DECIMAL(20,0) | アクティブ・プログラムが測定時間間隔に指定ジョブの主記憶域にないアドレスを参照した回数。 |
JOB_END_REASON | VARCHAR(60) | ジョブが終了している理由。以下のいずれかの値が含まれます。
|
SERVER_TYPE | VARCHAR (30) | ジョブによって表されているサーバーのタイプ。サーバー・タイプの値のリストについては、『サーバー表』を参照してください。 ジョブがサーバーの一部でない場合は、NULL 値が入ります。 |
ELAPSED_TIME | DECIMAL(20,3) | 測定開始時刻から現在のシステム時刻までに経過した時間 (秒)。 |
例
- 例 1: QZDASOINIT ジョブのみを確認し、経過入出力の上位 10 位までのコンシューマーを検索します。
注: ELAPSED_xxx 列のデータは、照会を再実行するたびに更新されます。SELECT JOB_NAME, AUTHORIZATION_NAME, ELAPSED_TOTAL_DISK_IO_COUNT, ELAPSED_CPU_PERCENTAGE FROM TABLE(QSYS2.ACTIVE_JOB_INFO( JOB_NAME_FILTER => 'QZDASOINIT', SUBSYSTEM_LIST_FILTER => 'QUSRWRK')) X ORDER BY ELAPSED_TOTAL_DISK_IO_COUNT DESC FETCH FIRST 10 ROWS ONLY;
- 例 2: 一時記憶域の使用量が最大のアクティブ・ジョブを検索します。各ターゲット・ジョブ内で最も新しく実行された SQL ステートメントを含めます。
WITH TOP_CONSUMERS (Q_JOB_NAME, AUTHORIZATION_NAME, TEMP_STORAGE_CONSUMED) AS ( SELECT JOB_NAME, AUTHORIZATION_NAME, TEMPORARY_STORAGE FROM TABLE (QSYS2.ACTIVE_JOB_INFO()) X WHERE JOB_TYPE <> 'SYS' ) SELECT Q_JOB_NAME, AUTHORIZATION_NAME, TEMP_STORAGE_CONSUMED, V_SQL_STATEMENT_TEXT, B.* FROM TOP_CONSUMERS, TABLE(QSYS2.GET_JOB_INFO(Q_JOB_NAME)) B ORDER BY TEMP_STORAGE_CONSUMED DESC;
- 例 3: JOB_NAME フィールドを、修飾ジョブ名の各部分の別々の列に分解します。
SELECT SUBSTR(JOB_NAME,1,6) AS JOB_NUMBER, SUBSTR(JOB_NAME,8,POSSTR(SUBSTR(JOB_NAME,8),'/')-1) AS JOB_USER, SUBSTR(SUBSTR(JOB_NAME,8),POSSTR(SUBSTR(JOB_NAME,8),'/')+1) AS JOB_NAME FROM TABLE (QSYS2.ACTIVE_JOB_INFO()) AS X;