EVMON_FORMAT_UE_TO_XML 表関数 - 未フォーマット・イベントの XML への変換

EVMON_FORMAT_UE_TO_XML 表関数は、バイナリー・イベントを未フォーマット・イベント表から抽出し、XML 文書にフォーマットします。

構文

Read syntax diagramSkip visual syntax diagramEVMON_FORMAT_UE_TO_XML(options ,FOR EACH ROW OF(fullselect-statement ))

スキーマは SYSPROC です。

表関数パラメーター

OPTIONS
この表関数でサポートされるキーワード・オプションのリストを表す、タイプ VARCHAR (1024) の入力引数。
ログ・ファイル (LOG_TO_FILE)
XML 文書が 100 MB より大きい場合、表関数が XML 文書をファイルに書き込むことを示します。 XML 文書が 100 MB を超える場合は、LOG_TO_FILE オプションを使用して文書全体を取得できます。 ファイルは、<xml_document_id>.xml ファイルに書き込まれます。ここで、<xml_document_id> は文書ごとに生成されるユニーク ID です。 出力ファイルは、診断パス・ディレクトリーに書き込まれます。
LOG_PARTIAL_EVENTS
表関数がすべての部分的な (不完全な) イベントをファイルに書き込むことを示します。 部分的なイベントについて詳しくは、このトピックの「 使用上の注意 」セクションを参照してください。
SUPPRESS_PARTIAL_EVENTS_ERR
部分的または不完全なイベントが未フォーマット・イベント (UE) 表に存在するときに、SQL443N 警告メッセージを抑止します。 部分的なイベントについて詳しくは、 「使用上の注意」 セクションを参照してください。
NULL
オプションが選択されていません。
全選択ステートメント
全選択ステートメントは、SELECT ステートメントの規則に準拠する照会です。 この照会は、以下の規則に従っていなければなりません。
  • この照会は、"*" 節を使用するか、未フォーマット・イベント表のすべての列を指定する必要があります。 それ以外の場合、エラーが戻されます。 列は、未フォーマット・イベント表の DESCRIBE ステートメントで戻されたのと同じ順序で指定されている必要があります。
  • この照会は、フォーマットされていないイベント表からのみ選択を行う必要があります。
  • WHERE 節は、フォーマットされていないイベント表の非 LOB 列のいずれかを使用して、イベントをフィルターで除外することができます。
  • SELECT ステートメントは、大括弧で囲まれたキーワード FOR EACH ROWS OF で指定されている必要があります。

許可

EVMON_FORMAT_UE_TO_XML 関数に対する EXECUTE 特権。

フォーマットされていないイベント表に対する SELECT 特権。

デフォルトの PUBLIC 特権

制限のないデータベースでは、この関数が自動的に作成されると、EXECUTE 特権が PUBLIC に付与されます。

例 1: 不定様式のイベント表 MYLOCKS からすべてのイベントを照会します。
SELECT evmon.* FROM TABLE ( 
  EVMON_FORMAT_UE_TO_XML ( 
    NULL,
    FOR EACH ROW OF ( 
      select * from MYLOCKS 
        order by EVENT_TIMESTAMP )))
  AS evmon;
例 2: 不定様式のイベント表 LOCK から過去 5 時間以内に発生したタイプ LOCKWAIT のすべてのイベントを照会します。
SELECT evmon.* FROM TABLE ( 
  EVMON_FORMAT_UE_TO_XML ( 
    NULL,
    FOR EACH ROW OF ( 
      select * from LOCK order by EVENT_TIMESTAMP
        where EVENT_TYPE = 'LOCKWAIT'
        and EVENT_TIMESTAMP >= CURRENT_TIMESTAMP - 5 hours )))
  AS evmon;
例 3: 不定様式のイベント表 UOW から、過去 32 時間に発生したワークロード PAYROLL に属するすべてのイベントを取得します。 任意の文書が 100 MB より大きい場合、結果をファイルに書き込みます。
SELECT evmon.* FROM TABLE ( 
  EVMON_FORMAT_UE_TO_XML( 
    'LOG TO FILE',
    FOR EACH ROW OF ( 
      select * from UOW order by EVENT_TIMESTAMP
        where WORKLOAD_NAME = 'PAYROLL'
        and EVENT_TIMESTAMP = CURRENT_TIMESTAMP - 32 hours )))
  AS evmon;
例 4: UOWEVMON 表からすべての作業単位イベントを照会し、XMLTABLE 表関数を使用して、UOW ID、UOW の開始時刻と停止時刻、および作業単位を発行したユーザーのユーザー ID を提示します。
SELECT EVENT.UOW_ID, EVENT.APPLICATION_ID, EVENT.SESSION_AUTHID,
  EVENT.START_TIME, EVENT.STOP_TIME
  FROM TABLE( 
    EVMON_FORMAT_UE_TO_XML(
      'LOG TO FILE', 
      FOR EACH ROW OF( 
        select * from UOWEVMON ))) 
    AS UEXML, 
    XMLTABLE( 
      XMLNAMESPACES( DEFAULT 'http://www.ibm.com/xmlns/prod/db2/mon' ),
      '$uowevent/db2_uow_event' 
      PASSING XMLPARSE( DOCUMENT UEXML.XMLREPORT ) as "uowevent"
      COLUMNS UOW_ID INTEGER PATH 'uow_id',
      MEMBER SMALLINT PATH '@member', 
      APPLICATION_ID VARCHAR(128) PATH 'application_id',
      SESSION_AUTHID VARCHAR(128) PATH 'session_authid',
      START_TIME TIMESTAMP PATH 'start_time',
      STOP_TIME TIMESTAMP PATH 'stop_time'
    )
    AS EVENT

使用上の注意

メモリー使用量に対する EVMON_FORMAT_UE_TO_XML 表関数の影響

UE 表を生成したイベント・モニターのタイプに応じて、EVMON_FORMAT_UE_TO_XML 表関数は未フォーマット・イベント表の複数のレコードを単一イベントにマップする場合があります。 この場合、イベントを構成するすべてのレコードを受け取るまで、レコードはメモリー内にキャッシュされます。 表関数に渡されるレコードが、作成されて表に挿入された順序になっていない場合、大量のメモリーが必要になる可能性があります。 レコードがそのようにソートされていない場合、表関数は複数のイベントのレコードをキャッシュに入れる必要があります。 この問題を回避するには、 fullselect-statement パラメーターを、列 EVENT_ID、EVENT_TIMESTAMP、EVENT_TYPE、および MEMBER を含む ORDER BY 節で修飾します。 表関数は、常に単一イベントからのレコードのみを処理およびキャッシュするため、メモリー消費量は削減されます。

UE 表のレコードと EVMON_FORMAT_UE_TO_XML 表関数の出力の関係

UE 表に書き込まれるレコードと EVMON_FORMAT_UE_TO_XML 表関数の出力の間のマッピングは、1 対 1 ではありません。 UE 表に複数のレコードを生成するイベントもありますし、1 つのレコードだけが追加されるものもあります。 EVMON_FORMAT_UE_XML 表関数は、単一イベントを記述する UE 表のすべてのレコードを常に 1 つの XML 文書に結合します。

部分的なイベント

部分的な (不完全な) イベントが UE 表に存在する場合、LOG_PARTIAL_EVENTS オプションの指定の有無に関係なく、EVMON_FORMAT_UE_TO_XML を実行すると、メッセージ (SQL443N) が戻されます。 SUPPRESS_PARTIAL_EVENTS_ERR オプションを使用することによって、このメッセージを抑止できます。 不完全なイベントは、イベント・レコード全体を UE 表に挿入できるようになる前にエージェントが処理を完了すると発生することがあります。 この状況は、特にパーティション・データベース環境で、ロッキングが関係する場合に発生する可能性があります。 例えば、LOCKWAIT しきい値を超えたとき、ロックの保有者に関する詳細が UE 表に書き込まれます。 しかし、同じオブジェクトに対するロックを待機しているエージェントに関する詳細は、ロックがタイムアウトになるか、またはウェイターがロックを獲得するまで取り込まれません。 ロックを待機しているエージェントがその情報を書き込む前に EVMON_FORMAT_UE_TO_XML が実行された場合、ロックに関する情報の一部しか UE 表に存在しない可能性があります。

LOG_PARTIAL_EVENTS オプションを指定すると、UE 表の中の不完全なイベントは別個の XML 文書に書き込まれます。 また、不完全なイベントが発生したことを示すメッセージが db2diag ログ・ファイルに書き込まれます。 そのメッセージには、不完全なイベントに関する詳細を記述する XML 文書のファイル名が明記されます。 生成される XML 文書は、db2evmonfmt ツールを使用してフォーマット設定できます。

戻される情報

表 1. EVMON_FORMAT_UE_TO_XML について戻される情報
列名 データ・タイプ 説明または対応するモニター・エレメント
XMLID VARCHAR(1024) xmlid - XML ID モニター・エレメント
XMLREPORT BLOB(100M) 単一の完全イベントを含む XML 文書。 各文書の最大サイズは 100 MB です。