HISTORY_LOG_INFO テーブル関数

HISTORY_LOG_INFO テーブル関数は、指定されたタイム・スタンプ範囲に基づいて、ヒストリー・ログ内の各メッセージに対して 1 行を返します。 ログ表示 (DSPLOG) CL コマンドおよびヒストリー・ログ・メッセージのリストのオープン (QMHOLHST) API で返される情報と似た情報が返されます。

構文図を読む構文図をスキップする
>>-HISTORY_LOG_INFO--(--+----------------------------------+---->
                        '-+------------------+--start-time-'   
                          '-START_TIME-- => -'                 

>--+---------------------------------+-------------------------->
   '-,--+----------------+--end-time-'   
        '-END_TIME-- => -'               

>--+-----------------------------------------------+------------>
   '-,--+-----------------------+--generate-syslog-'   
        '-GENERATE_SYSLOG-- => -'                      

>--+-----------------------------------+--)--------------------><
   '-,--+-----------------+--eof-delay-'      
        '-EOF_DELAY-- => -'                   

スキーマは QSYS2 です。

許可: 権限は不要です。

start-time
ヒストリー・ログ情報を返す際に使用する開始タイム・スタンプを示したタイム・スタンプ式。

このパラメーターが省略されている場合は、デフォルトの CURRENT DATE - 1 DAY (現行日 - 1 日) が使用されます。

end-time
ヒストリー・ログ情報を返す際に使用する終了タイム・スタンプを示したタイム・スタンプ式。

このパラメーターが省略されている場合は、デフォルトの「9999-12-30-00.00.00.000000」が使用されます。

generate-syslog
ヒストリー・ログ・メッセージを syslog フォーマットの詳細に変換するかどうかを指定する文字またはグラフィック・ストリング式。値は次の通りです。
NO
syslog 情報は返されません。SYSLOG_EVENT、SYSLOG_FACILITY、SYSLOG_SEVERITY、および SYSLOG_PRIORITY の各列には、NULL 値が入ります。
RFC3164
ヒストリー・ログ・メッセージごとに、SYSLOG_EVENT、SYSLOG_FACILITY, SYSLOG_SEVERITY、および SYSLOG_PRIORITY の各列に対して値が返されます。SYSLOG_EVENT 列には、Internet Engineering Task Force (IETF) Request For Comments (RFC) 3164 で規定されている RFC3164 フォーマットに一致する syslog ヘッダーが入ります。
RFC5424
ヒストリー・ログ・メッセージごとに、SYSLOG_EVENT、SYSLOG_FACILITY, SYSLOG_SEVERITY、および SYSLOG_PRIORITY の各列に対して値が返されます。SYSLOG_EVENT 列には、Internet Engineering Task Force (IETF) Request For Comments (RFC) 5424 で規定されている RFC5424 フォーマットに一致する syslog ヘッダーが入ります。

generate-syslog が指定されていないか、NULL 値である場合は、NO が使用されます。

eof-delay
すべてのヒストリー・ログ・メッセージが読み込まれたときにスリープするまでの秒数を指定する整数式。この遅延により、呼び出し元は、すべてのメッセージが処理されるたびに指定間隔の間スリープし、継続的に行を返すポーリング・サービスを設定できます。

値がゼロの場合、遅延が使用されず、有限の行セットが返されることを示します。 値がゼロより大きい場合は、テーブル関数が必要に応じてスリープし、新しいヒストリー・ログ・メッセージを待機し、終了することがないことを示します。eof-delay が指定されていないか、NULL 値である場合は、ゼロが使用されます。

このパラメーターの値がゼロより大きい場合、generate-syslog パラメーターは RFC3164 または RFC5424 でなければならず、end-time パラメーターはデフォルト値以外の値では指定できません。

非ゼロの eof-delay パラメーターを使用する場合は、有限の行数を返すことに依存する照会節を使用しないでください。例えば、FETCH FIRST n ROWS 節を使用すると、要求された数の行が満たされると、照会が終了することがあります。非ゼロの eof-delay パラメーターが指定された HISTORY_LOG_INFO 関数を使用する照会では、データのコピーは許可されません (ALWCPYDTA(*NO))。これは、ORDER BY 節や UNION DISTINCT を使用する照会など、データのコピーを必要とする照会はエラーを出すため、許可されないことを意味します。eof-delay を使用する際には、行のブロック化を回避するためにシンプルな照会を使用することを検討してください。データ転送効率のために行がブロック化されると、ブロックがいっぱいになるまで行は返されません。 そのため、データ転送効率を優先するのか、発生後すぐにイベントを移動するのかを決定する必要があります。

この関数の結果は、以下の表に示された形式の複数行を含むテーブルです。列はすべて NULL 可能です。

表 1. HISTORY_LOG_INFO テーブル関数
列名 データ・タイプ 説明
ORDINAL_POSITION INTEGER ジョブ・ログ内のメッセージの時間的順序を示す、各行の固有の数値。ヒストリー・ログから返される最初 (最古) のメッセージの値は 1 になります。後続のメッセージの値は、前のメッセージに 1 を加えた値になります。 この値はこのカタログの照会時に割り当てられるため、値が飛ぶことはありません。
MESSAGE_ID VARCHAR(7) このメッセージのメッセージ ID。

これが即時メッセージであるか、MESSAGE_TYPE が REPLY の場合は、NULL 値が入ります。

MESSAGE_TYPE VARCHAR(13) メッセージのタイプ。
  • COMPLETION
  • DIAGNOSTIC
  • ESCAPE
  • INFORMATIONAL
  • INQUIRY
  • NOTIFY
  • REPLY
  • REQUEST
  • SENDER
MESSAGE_SUBTYPE VARCHAR(22) メッセージのサブタイプ。

REPLY メッセージで返される値は以下のとおりです。

  • FROM EXIT PROGRAM
  • FROM SYSTEM REPLY LIST
  • MESSAGE DEFAULT USED
  • NOT VALIDITY CHECKED
  • SYSTEM DEFAULT USED
  • VALIDITY CHECKED

一部の REQUEST メッセージで返される値は以下のとおりです。

  • WITH PROMPTING

他のメッセージ・タイプの場合は、NULL 値が入ります。

SEVERITY SMALLINT メッセージに割り当てられている重大度。
MESSAGE_TIMESTAMP TIMESTAMP メッセージが送信されたタイム・スタンプ。
FROM_USER VARCHAR(10) メッセージが送信されたときのジョブの現行のユーザー。
FROM_JOB VARCHAR(28) メッセージが送信されたときの修飾ジョブ名。
FROM_PROGRAM VARCHAR(10) メッセージを送信したプログラム。
MESSAGE_LIBRARY VARCHAR(10) メッセージ・ファイルを含むライブラリーの名前。

MESSAGE_ID が NULL の場合は、NULL 値が入ります。

MESSAGE_FILE VARCHAR(10) メッセージが入っているメッセージ・ファイル。

MESSAGE_ID が NULL の場合は、NULL 値が入ります。

MESSAGE_TOKENS VARCHAR(4096) FOR BIT DATA メッセージ・トークン・ストリング。値が 4096 文字より長い場合、値は警告なしに切り捨てられます。

メッセージ・トークンがない場合は、NULL 値が入ります。

MESSAGE_TEXT VARGRAPHIC(1024) CCSID 1200 トークンを含むメッセージの第 1 レベル・テキスト、または即時メッセージ・テキスト。

MESSAGE_ID が NULL の場合、またはメッセージ・ファイルにアクセスできなかった場合は、NULL 値が入ります。

MESSAGE_SECOND_LEVEL_TEXT VARGRAPHIC(4096) CCSID 1200 トークンを含むメッセージの第 2 レベルのテキスト。

MESSAGE_ID が NULL の場合、メッセージに第 2 レベルのテキストがない場合、またはメッセージ・ファイルにアクセスできなかった場合は、NULL 値が入ります。

SYSLOG_EVENT VARGRAPHIC(2048) CCSID 1200 要求タイプのヘッダーを前に付けた、メッセージの Common Event Format (CEF) syslog イベント。ヘッダー・タイプ RFC3164 が要求された場合、最大長は 1024 文字です。ヘッダー・タイプ RFC5424 が要求された場合、最大長は 2048 文字です。最大長を超えた場合、ストリングは警告なしで切り捨てられます。

ヒストリー・ログ情報について返されるキー名は、「注」セクションにリストしています。

GENERATE_SYSLOG パラメーターに NO が指定された場合は、NULL 値が入ります。

SYSLOG_FACILITY INTEGER イベントに割り当てられた syslog ファシリティー。
1
ユーザー・レベル・メッセージ
4
セキュリティー/許可メッセージ

割り当てられるファシリティーは、「注」セクションで定義しています。

GENERATE_SYSLOG パラメーターに NO が指定された場合は、NULL 値が入ります。

SYSLOG_SEVERITY INTEGER イベントに割り当てられた syslog 重大度。
1
アラート: 即時にアクションを行う必要があります
3
エラー条件
4
警告状態
5
注意: 正常ですが、有意状態です
6
通知メッセージ
7
デバッグ・レベル・メッセージ

割り当てられる重大度は、「注」セクションでリストしています。

GENERATE_SYSLOG パラメーターに NO が指定された場合は、NULL 値が入ります。

SYSLOG_PRIORITY INTEGER イベントに割り当てられた syslog 優先順位番号。

GENERATE_SYSLOG パラメーターに NO が指定された場合は、NULL 値が入ります。

syslog 情報: ヒストリー・ログ内のすべてのメッセージに関する syslog 情報が返されます。 syslog 情報は、監査ジャーナル項目についても使用可能です。詳しくは、DISPLAY_JOURNAL テーブル関数を参照してください。

すべてのヒストリー・ログ・メッセージでは、下記を除き、値が 1 の SYSLOG_FACILITY が返されます。メッセージには、以下のように SYSLOG_SEVERITY 値が割り当てられます。
  • 重大度 1 - アラート: 即時にアクションを行う必要があります
    • MESSAGE_TYPE に値 INQUIRY、NOTIFY、または REPLY が含まれています
  • 重大度 3 - エラー状態
    • MESSAGE_ID に値 CPF1164 が含まれており、MESSAGE_TEXT 列内のジョブ終了コード値が 30 以上です
    • SEVERITY 列の値が 50 以上の場合に、MESSAGE_TYPE に値 ESCAPE が含まれています
  • 重大度 4 - 警告状態
    • MESSAGE_ID に値 CPF1393 が含まれています。SYSLOG_FACILITY 列は 4 に設定されています。
    • MESSAGE_ID に値 CPF1164 が含まれており、MESSAGE_TEXT 列内のジョブ終了コード値が 20 です
    • SEVERITY 列の値が 30 以上 50 未満の場合に、MESSAGE_TYPE に値 ESCAPE が含まれています
  • 重大度 5 - 注意: 正常ですが、有意状態です
    • MESSAGE_ID に値 CPF1164 が含まれており、MESSAGE_TEXT 列内のジョブ終了コード値が 10 です
    • SEVERITY 列の値が 50 以上の場合に、MESSAGE_TYPE に、値 INFORMATIONAL、COMPLETION、DIAGNOSTIC、または REQUEST が含まれています
  • 重大度 6 - 通知メッセージ
    • MESSAGE_ID に値 CPF1164 が含まれており、MESSAGE_TEXT 列内のジョブ終了コード値が 0 です
    • SEVERITY 列の値が 30 未満の場合に、MESSAGE_TYPE に値 ESCAPE が含まれています
    • MESSAGE_TYPE に値 SENDER が含まれています
    • SEVERITY 列の値が 50 未満の場合に、MESSAGE_TYPE に値 INFORMATIONAL、COMPLETION、DIAGNOSTIC、または REQUEST が含まれています
  • 重大度 7 - デバッグ・レベル・メッセージ
    • MESSAGE_ID に値 CPF9897 または CPF9898 が含まれています (重大度やメッセージ・タイプは考慮しない)
SYSLOG_EVENT 列内で生成される Common Event Format キー名:
表 2. Common Event Format キー名
Common Event Format キー名 説明
msg ヒストリー・ログ・メッセージからのメッセージ・テキスト (MESSAGE_TEXT 列)
reason ヒストリー・ログ・メッセージのテキスト記述
sproc ヒストリー・ログ・メッセージからの修飾ジョブ名 (FROM_JOB 列)
suser ヒストリー・ログ・メッセージからの現行のユーザー名 (FROM_USER 列)

  • 昨日と今日のすべてのヒストリー・ログ・メッセージのリストを返します。
    SELECT * FROM TABLE(QSYS2.HISTORY_LOG_INFO()) X
  • 過去 24 時間におけるすべてのヒストリー・ログ・メッセージのリストを返します。
    SELECT * FROM TABLE(QSYS2.HISTORY_LOG_INFO(CURRENT TIMESTAMP - 1 DAY)) X
  • 最後の IPL のタイム・スタンプが LAST_IPL_TIME というグローバル変数に入っているものと想定し、最後の IPL 以降のヒストリー・ログ情報を返します。
    SELECT * FROM TABLE(QSYS2.HISTORY_LOG_INFO(LAST_IPL_TIME, CURRENT TIMESTAMP)) A
  • 今日の開始以降におけるすべてのヒストリー・ログ・メッセージについて、RFC3164 ヘッダー形式に設定した syslog 情報を返します。すべてのヒストリー・ログ・メッセージが呼び出し元に返されると、照会は 5 分 (300 秒) 一時停止してから、メッセージを再度検査します。
    SELECT syslog_facility, syslog_severity, syslog_event
      FROM TABLE (QSYS2.HISTORY_LOG_INFO(START_TIME => CURRENT DATE,
                                         GENERATE_SYSLOG =>'RFC3164',
                                         EOF_DELAY => 300
                  ) ) AS X;