CREATE EVENT MONITOR (アクティビティー) ステートメント

CREATE EVENT MONITOR ((アクティビティー)) ステートメントは、データベースの使用中に発生するアクティビティー・イベントを記録するモニターを定義します。 アクティビティー・イベント・モニターの定義には、データベースがイベントを記録するロケーションも指定します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。

許可

このステートメントの許可 ID が保持する特権には、以下のいずれかの権限が含まれている必要があります。
  • DBADM 権限
  • SQLADM 権限

構文

Read syntax diagramSkip visual syntax diagramCREATE EVENT MONITORevent-monitor-name FOR ACTIVITIESWRITE TO TABLEformatted-event-table-infoPIPEpipe-nameFILEpath-namefile-options AUTOSTARTMANUALSTARTON MEMBERmember-numberLOCAL
formatted-event-table-info
Read syntax diagramSkip visual syntax diagram,evm-group(target-table-options) BLOCKED
target-table-options
Read syntax diagramSkip visual syntax diagram1TABLEtable-nameINtablespace-namePCTDEACTIVATE100PCTDEACTIVATEinteger
file-options
Read syntax diagramSkip visual syntax diagramMAXFILESNONEMAXFILESnumber-of-filesMAXFILESIZEpagesNONEBLOCKEDAPPENDREPLACE
Notes:
  • 1 Each clause can be specified only once.
  • 2 Clauses can be separated with a space or a comma.

説明

イベント・モニター名
イベント・モニターの名前。 これは、1 部構成の名前です。 これは、SQL ID です (通常 ID または区切り ID)。 event-monitor-name (イベント・モニター名) は、 既にカタログに存在するイベント・モニターを指定する名前であってはなりません (SQLSTATE 42710)。
FOR
記録するイベント・タイプをこの後に指定します。
ACTIVITIES
アクティビティーが実行を完了したとき、またはイベントが WLM_CAPTURE_ACTIVITY_IN_PROGRESS プロシージャーによって起動された場合は実行完了前に、イベント・モニターがアクティビティー・イベントを記録することを指定します。 アクティビティーは、以下の要件のどちらかを満たさなければなりません。
  • COLLECT ACTIVITY DATA セットを持つサービス・クラスまたはワークロードに属する
  • 関連した作業アクションが COLLECT ACTIVITY DATA である作業クラスに属する
  • COLLECT ACTIVITY DATA 節が指定されたしきい値に違反するアクティビティーであると識別される
  • 完了前に WLM_CAPTURE_ACTIVITY_IN_PROGRESS プロシージャーの呼び出し時に識別されている
WRITE TO
データの出力先をこの後に指定します。
テーブル
イベント・モニターのデータの出力先が一連のデータベース表であることを示します。 イベント・モニターは、データ・ストリームを 1 つ以上の論理データ・グループに分け、 各グループを別個の表に挿入します。 ターゲット表のあるグループのデータは保持されますが、ターゲット表のないグループのデータは破棄されます。 グループに含まれる各モニター・エレメントは、同じ名前の表列にマップされます。 対応する表列を持つエレメントだけが表に挿入されます。 他のエレメントは破棄されます。
formatted-event-table-info
イベント・モニターのターゲット表を定義します。 この節は、記録される各グループごとに指定しなければなりません。 しかし evm-group-info 節が指定されない場合には、 イベント・モニター・タイプのすべてのグループが記録されます。

論理データ・グループについて詳しくは、 論理データ・グループとイベント・モニター出力表 を参照してください。

evm-group
ターゲット表を定義する対象の論理データ・グループを指定します。 以下の表に示されているように、値はイベント・モニターのタイプに基づいて異なります。
イベント・モニターのタイプ evm-group 値
アクティビティー
  • ACTIVITY
  • ACTIVITYMETRICS
  • ACTIVITYSTMT
  • ACTIVITYVALS
  • CONTROL
target-table-options
グループのターゲット表を指定します。
TABLE テーブル名
ターゲット表の名前を指定します。 ターゲット表は、非パーティション表でなければなりません。 名前が非修飾の場合、表スキーマは CURRENT SCHEMA 特殊レジスターの値にデフォルト設定されます。 名前が指定されない場合、 非修飾名は evm-group および event-monitor-name から以下のように派生されます。
   substring(evm-group CONCAT '_'
     CONCAT event-monitor-name,1,128)
IN 表スペース名
表を作成する表スペースの名前を指定します。 表スペース名を指定しない場合、CREATE TABLE を使用して表スペース名を指定しないで表が作成される場合と同じプロセスで表スペースが選択されます。

ページ・サイズは、使用する INLINE LOB の長さに影響を及ぼすため、イベント・モニターの INSERT パフォーマンスを向上させるためには、可能な限り大きなページ・サイズを持つ表スペースを指定してください。

PCTDEACTIVATE 整数
イベント・モニターの表が自動ストレージ (非一時) または DMS 表スペースに作成される場合には、 PCTDEACTIVATE パラメーターは、どの程度表スペースが満たされた時点でイベント・モニターが自動的に非活動化されるかを指定します。 パーセンテージを表す値は、0 から 100 の範囲で指定可能です。この 100 は、表スペースが完全にいっぱいになるときにイベント・モニターが非アクティブになることを意味します PCTDEACTIVATE が指定されていない場合には、デフォルト値は 100 になります。 SMS 表スペースの場合、このオプションは無視されます。
重要: ターゲット表スペースで自動サイズ変更が有効になっている場合は、PCTDEACTIVATE パラメーターを 100 に設定してください。 または、この節全体を省略して、デフォルトの 100 が適用されるようにします。 それ以外の場合、表スペースが自動的にサイズ変更される前に、PCTDEACTIVTATE で指定したしきい値に表スペースが到達すると、イベント・モニターは予期せずに非アクティブになる場合があります。
target-table-options の値が指定されていない場合、CREATE EVENT MONITOR の処理は以下のように続行されます。
  • 派生した表名が使用されます。
  • デフォルトの表スペースが選択されます。
  • PCTDEACTIVATE パラメーターのデフォルトは 100 になります。
BLOCKED
エージェントが 2 つのイベント・バッファーがいっぱいであると判断した場合、 イベントを生成するそのエージェントはイベント・バッファーがディスクへ書き込まれるのを待機しなければならないことを指定します。 イベント・データが失われるのを防止する場合には、BLOCKED を選択する必要があります。 これはデフォルト・オプションです。
PIPE
イベント・モニター・データの出力先が名前付きパイプであることを指定します。 イベント・モニターは、 データを単一のストリーム (単一の無限に長いファイルであるかのように) でパイプに書き込みます。 データをパイプに書き込む時点で、イベント・モニターはブロック化書き込みを行いません。 パイプ・バッファーに空きがない場合、イベント・モニターはそのデータを廃棄します。 データを失いたくない場合、モニターするアプリケーション側でデータを迅速に読み取る必要があります。
パイプ名
イベント・モニターがデータを書き込むパイプの名前 ( AIX®の場合は FIFO)
パイプの命名規則は、プラットフォームごとに異なります。
オペレーティング・システム 命名規則
AIX パイプ名はファイル名と同様に扱われます。 したがって、相対パイプ名を使用することができ、相対パス名と同様に扱われます (path-name を参照)。
Linux® パイプ名はファイル名と同様に扱われます。 したがって、相対パイプ名を使用することができ、相対パス名と同様に扱われます (path-name を参照)。
Windows パイプ名には特殊な構文があるため、結果として絶対パイプ名が必要です。

パイプの存在は、イベント・モニターの作成時には検査されません。 モニター・アプリケーションは、イベント・モニターがアクティブ化される時点までに、読み取り用パイプを作成し、 オープンしておく必要があります。 この時点でパイプが使用不可である場合には、イベント・モニターはオフになり、エラーがログに記録されます。 (つまり、AUTOSTART オプションの結果としてイベント・モニターがデータベースの開始時にアクティブ化された場合、 イベント・モニターはエラーをシステム・エラー・ログに記録します。) SET EVENT MONITOR STATE SQL ステートメントによってイベント・モニターがアクティブ化された場合、 そのステートメントはエラーになります (SQLSTATE 58030)。

ファイル
イベント・モニターのデータの出力先がファイル (または一連のファイル) であることを示します。 イベント・モニターは、拡張子「evt」が付いた一連の 8 文字の番号付きのファイルとして、 データ・ストリームを書き出します (例えば、00000000.evt00000001.evt00000002.evt)。 データが細かく分割されている場合でも、データを 1 つの論理ファイルと見なす必要があります (つまり、データ・ストリームの最初はファイル 00000000.evt の最初のバイトであり、データ・ストリームの最後は、ファイル nnnnnnnn.evt の最後のバイトになります)。

各ファイルの最大サイズとファイルの最大数とを指定することができます。 イベント・モニターは、1 つのイベント・レコードを 2 つのファイルに分割することはありません。 ただしイベント・モニターは、 互いに関連する複数のレコードを 2 つの異なるファイルに記録する場合があります。 そのデータを使用するアプリケーションでは、 イベント・ファイルの処理時にこのような関連する情報を追跡する必要があります。

パス名
イベント・モニターがイベント・ファイルのデータを書き込む先のディレクトリーの名前を指定します。 このパスは、サーバーで既知でなければなりません。ただし、パス自体は別のデータベース・パーティションに存在していてもかまいません (例えば、NFS にマウントされたファイル)。 path-name (パス名) の指定には、ストリング定数を使用する必要があります。

ディレクトリーは、CREATE EVENT MONITOR の時に存在している必要はありません。 ただし、イベント・モニターがアクティブ化される時点で、ターゲット・パスが存在しているかどうかの検査が行われます。 その時点で、ターゲット・パスが存在しない場合は、エラー (SQLSTATE 428A3) になります。

絶対パスを指定すると、そのパスが使用されます。 Db2® pureScale®以外の環境では、相対パス (ルートから始まらないパス) が指定されている場合、データベース・ディレクトリー内の DB2EVENT ディレクトリーからの相対パスが使用されます。 Db2 pureScale 環境では、相対パスが指定されている場合、データベース・ディレクトリー内のデータベース所有ディレクトリーからの相対パスが使用されます。

複数のイベント・モニターに指定するターゲット・パスを同じパスにすることはできます。 ただし、イベント・モニターの 1 つが最初にアクティブ化されると、 ターゲット・ディレクトリーが空でないかぎり、 他のイベント・モニターはいずれもアクティブ化することはできなくなります。

file-options
ファイル形式のオプションを指定します。
MAXFILES NONE
イベント・モニターが作成するイベント・ファイルの数に制限がないことを指定します。 これがデフォルトです。
MAXFILES ファイル数 (number-of-files)
特定の 1 つのイベント・モニターについて、 1 時点で存在するイベント・モニター・ファイルの数に限界があることを指定します。 イベント・モニターがファイルをもう 1 つ作成しなければならない場合、 ディレクトリー内の .evt ファイルの数が number-of-files よりも少ないかどうかが検査されます。 既にこの限界に達している場合、イベント・モニターはオフになります。

書き込み済みのイベント・ファイルを、アプリケーションがディレクトリーから削除した場合は、 イベント・モニターが作成するファイルの合計数が number-of-files を超えることがあります。 このオプションの使用によって、 ユーザーはイベント・データによるディスク・スペースの消費量が指定量を超えないようにすることができます。

MAXFILESIZE ページ
各イベント・モニター・ファイルのサイズに限界があることを指定します。 イベント・モニターは、新しいイベント・レコードをファイルに書き込む場合、 そのファイルが pages (4K ページ単位のページ数) を超えないかどうかを調べます。 結果のファイルが大きすぎる場合、イベント・モニターはその次のファイルに切り替えます。 このオプションのデフォルト値は次のとおりです。
  • Linux -1000 4K ページ
  • UNIX-1000 4K ページ
  • Windows-200 4K ページ

ページ数は、少なくともイベント・バッファーのサイズ (ページ数) よりも大きくなければなりません。 この要件が満たされていない場合、エラー (SQLSTATE 428A4) になります。

MAXFILESIZE NONE
ファイルのサイズに限界を設定しないことを指定します。 MAXFILESIZE NONE を指定すると、MAXFILES 1 も指定する必要があります。 このオプションは、特定のイベント・モニターのイベント・データすべてを 1 つのファイルに入れることを示します。 このような場合、イベント・ファイルは 00000000.evt だけになります。
BLOCKED
エージェントが 2 つのイベント・バッファーがいっぱいであると判断した場合、 イベントを生成するそのエージェントはイベント・バッファーがディスクへ書き込まれるのを待機しなければならないことを指定します。 イベント・データが失われるのを防止する場合には、BLOCKED を選択する必要があります。 これはデフォルト・オプションです。
APPEND
イベント・モニターがオンになった時点でイベント・データ・ファイルが既に存在する場合、 そのイベント・モニターは新しいイベント・データをデータ・ファイルの既存のストリームに付加するように指定します。 イベント・モニターが再活動化されると、それはオフにならなかったかのように、 イベント・ファイルへの書き込みを再開します。 APPEND がデフォルトのオプションです。

新しく作成されたイベント・モニターがイベント・データを書き込むディレクトリーに既存のイベント・データがない場合、 CREATE EVENT MONITOR 時に APPEND オプションは適用されません。

REPLACE
イベント・モニターがオンになった時点でイベント・データ・ファイルが既に存在する場合、そのイベント・モニターが、イベント・ファイルをすべて削除して、ファイル 00000000.evt へのデータの書き込みを開始するように指定します。
MANUALSTART
SET EVENT MONITOR STATE ステートメントを使用してイベント・モニターを手動でアクティブ化しなければならないことを指定します。 アクティブ化された MANUALSTART イベント・モニターは、SET EVENT MONITOR STATE ステートメントを使用するか、インスタンスを停止することによってのみ非活動状態にできます。
AUTOSTART
イベント・モニターを実行するデータベース・パーティションをアクティブ化した時点で、イベント・モニターも自動的にアクティブ化されることを指定します。 これは、アクティビティー・イベント・モニターのデフォルトの動作です。
ON MEMBER メンバー番号
ファイル・イベント・モニターまたはパイプ・イベント・モニターを実行する メンバー を指定します。 モニター有効範囲が LOCAL として定義されている場合、指定された メンバーのデータのみが収集されます。 入出力コンポーネントは、指定された メンバー上で物理的に実行され、指定されたファイルまたはパイプにレコードを書き込みます。

Db2 pureScale フィーチャーが有効になっている場合、-1 がデフォルトです。

値 -1 を指定すると、任意のアクティブな メンバーから入出力コンポーネントを実行できます。 さらに、特定の メンバー上で入出力コンポーネントを実行できなくなった場合、イベント・モニターは、別の使用可能なアクティブ メンバー上で実行されている入出力コンポーネントを使用して再始動されます。

この節は、表イベント・モニターには無効です。 パーティション・データベース環境では、表書き込みイベント・モニターは、 ターゲット表のための表スペースが定義されているすべてのデータベース・パーティションで、イベントの実行と書き込みを行います。

Db2 pureScale 環境では、表書き込みイベント・モニターは、すべてのアクティブな メンバーに関するイベントを記録します。

この節が指定されて おらず、 Db2 pureScale が有効になっていない場合、現在接続されている メンバー (アプリケーション用) が使用されます。

この節が指定されておらず、 Db2 pureScale が有効になっている場合、入出力コンポーネントは現在接続されている任意の メンバーで実行できます。

LOCAL
イベント・モニターは、実行中の メンバー についてのみ報告します。 この報告は、データベース活動の部分的なトレースです。 これがデフォルトです。

この節は、ファイルまたはパイプ・モニターに有効です。 これは、表イベント・モニターには有効ではありません。

GLOBAL は、このタイプのイベント・モニターに対して有効な範囲ではありません。

ルール

  • ACTIVITIES イベント・タイプは、特定のイベント・モニター定義内の他のいずれかのイベント・タイプと組み合わせることはできません。

  • イベント・モニターの定義は、SYSCAT.EVENTMONITORS カタログ・ビューに記録されます。 イベント自体は、SYSCAT.EVENTS カタログ・ビューに記録されます。 ターゲット表の名前は、SYSCAT.EVENTTABLES カタログ・ビューに記録されます。
  • イベント・モニターが実行される メンバー がアクティブでない場合は、その メンバー が再活動化されたときにイベント・モニターの活動化が行われます。
  • イベント・モニターは、アクティブ化の後に、明示的に非アクティブ化されるか、インスタンスがリサイクルされるまで、自動始動のイベント・モニターのように動作します。 つまり、 メンバー が非活動化されたときにイベント・モニターがアクティブであり、その後その メンバー が再活動化されると、イベント・モニターも明示的に再活動化されます。
  • FLUSH EVENT MONITOR ステートメントはこのイベント・モニターには適用されないため、これに対して発行しても何も影響を及ぼしません。
  • 表書き込みイベント・モニター: 一般注意:
    • すべてのターゲット表は、CREATE EVENT MONITOR ステートメントの実行時に作成されます。
    • 何らかの理由により表の作成に失敗すると、エラーがアプリケーション・プログラムに戻され、 CREATE EVENT MONITOR ステートメントは失敗します。
    • 1 つのターゲット表は、1 つのイベント・モニターでのみ使用可能です。 CREATE EVENT MONITOR 処理時に、ターゲット表が別のイベント・モニターによる使用のために既に定義されていることが検出されると、CREATE EVENT MONITOR ステートメントは失敗し、エラーがアプリケーション・プログラムに戻されます。 表名が SYSCAT.EVENTTABLES カタログ・ビューにある値と一致する場合には、その表は別のイベント・モニターによって使用されるよう定義されています。
    • CREATE EVENT MONITOR 処理時に、表が既に存在するものの別のイベント・モニターによって使用されるよう定義されていない 場合には、表は作成されず、処理は続行されます。 警告がアプリケーション・プログラムに出されます。
    • CREATE EVENT MONITOR ステートメントが実行される前に、 すべての表スペースが存在しなければなりません。 CREATE EVENT MONITOR ステートメントは、表スペースを作成しません。
    • LOCAL および GLOBAL キーワードは指定されている場合でも無視されます。 WRITE TO TABLE イベント・モニターを使用すると、インスタンス内の各 メンバー でイベント・モニター出力プロセスまたはスレッドが開始され、これらの各プロセスは、それが実行されているメンバーのデータのみを報告します。
    • フラット・モニター・ログ・ファイルからの以下のイベント・タイプまたはパイプ・フォーマットは、 表書き込みイベント・モニターにより記録されません。
      • LOG_STREAM_HEADER
      • LOG_HEADER
      • DB_HEADER (エレメント db_name および db_path は記録されません。 エレメント conn_time は CONTROL に記録されます。)
    • パーティション・データベース環境では、 表スペースが存在するデータベース・パーティション上のターゲット表だけにデータが書き込まれます。 ターゲット表のための表スペースがいずれかのデータベース・パーティションに存在しない場合は、そのターゲット表についてのデータは無視されます。 この動作によってユーザーは、特定のデータベース・パーティション上にのみ存在する表スペースを作成して、 モニターするデータベース・パーティションのサブセットを選択できます。

      Db2 pureScale 環境では、データはすべての メンバーから書き込まれます。

      パーティション・データベース環境で、 いくつかのターゲット表がデータベース・パーティションに存在しないものの、 その同じデータベース・パーティションに他のターゲット表がある場合には、 そのデータベース・パーティションにあるターゲット表についてのデータだけが記録されます。

    • ユーザーは、すべてのターゲット表を手動で整理する必要があります。
    表列:
    • 表の列名は、イベント・モニター・エレメント ID と一致します。 対応するターゲット表の列がないイベント・モニター・エレメントは無視されます。
    • グループのエレメントの完全なリストを含む CREATE EVENT MONITOR ステートメントを作成するには、db2evtbl コマンドを使用します。
    • モニター・エレメントに使用されている列のタイプは、以下のマッピングに相関します。
      SQLM_TYPE_STRING                     CHAR[n], VARCHAR[n] or CLOB(n)
                                           (If the data in the event monitor
                                           record exceeds n bytes,
                                           it is truncated.)
      SQLM_TYPE_U8BIT and SQLM_TYPE_8BIT   SMALLINT, INTEGER or BIGINT
      SQLM_TYPE_16BIT and SQLM_TYPE_U16BIT SMALLINT, INTEGER or BIGINT
      SQLM_TYPE_32BIT and SQLM_TYPE_U32BIT INTEGER or BIGINT
      SQLM_TYPE_U64BIT and SQLM_TYPE_64BIT BIGINT
      sqlm_timestamp                       TIMESTAMP
      sqlm_time(elapsed time)              BIGINT
      sqlca:
        sqlerrmc                           VARCHAR[72]
        sqlstate                           CHAR[5]
        sqlwarn                            CHAR[11]
        other fields                       INTEGER or BIGINT
    • 列は、NOT NULL になるよう定義されています。
    • 他のターゲット表とは異なり、 CONTROL 表の列はモニター・エレメント ID と一致しません。 列は、以下のように定義されます。
      列名 データ・タイプ NULL 可能 説明
      PARTITION_KEY INTEGER N 分散キー (パーティション・データベースのみ)
      PARTITION_NUMBER INTEGER N データベース・パーティション番号 (パーティション・データベースのみ)
      EVMONNAME VARCHAR(128) N イベント・モニターの名前
      MESSAGE VARCHAR(128) N MESSAGE_TIME 列の性質を記述します。

      詳しくは、 message-コントロール表メッセージ: モニター・エレメント を参照してください。

      MESSAGE_TIME TIMESTAMP N タイム・スタンプ
    • パーティション・データベース環境では、各表の最初の列は名前が PARTITION_KEY で、 NOT NULL であり、INTEGER タイプです。 この列は、表の分散キーとして使用されます。 この列の値は、各イベント・モニター・プロセスが、プロセスが実行されている メンバー にデータを挿入するように選択されます。つまり、挿入操作は、イベント・モニター・プロセスが実行されている メンバー 上でローカルに実行されます。 任意のデータベース・パーティションで、PARTITION_KEY フィールドは同じ値を含みます。 これは、データベース・パーティションがドロップされてデータ再配分が実行される場合に、 ドロップされるデータベース・パーティション上のすべてのデータは、公平に配分されるのではなく、 もう 1 つのデータベース・パーティションに渡されることを意味します。 したがって、データベース・パーティションを除去する前に、 そのデータベース・パーティション上のすべての表行の削除を考慮してください。
    • パーティション・データベース環境では、PARTITION_NUMBER という名前の列を各表で定義できます。 この列は NOT NULL で INTEGER タイプです。 データが挿入されたデータベース・パーティションの番号が含まれています。 PARTITION_KEY 列とは異なり、PARTITION_NUMBER 列は必須ではありません。 PARTITION_NUMBER 列は、非パーティション・データベース環境では使用できません。
    表属性:
    • デフォルトの表属性が使用されます。 分散キーを除き (パーティション・データベースのみ)、表の作成時には追加のオプションは指定されません。
    • 表の索引を作成できます。
    • 別の表属性 (揮発性、RI、トリガー、制約など) を追加できますが、イベント・モニター・プロセス (またはスレッド) はそれらを無視します。
    • 表属性として "not logged initially" (最初はログ記録されない) が追加されると、 最初の COMMIT 時にオフになり、オンに戻すことはできません。
    イベント・モニターのアクティブ化:
    • イベント・モニターをアクティブ化する際、すべてのターゲット表名が SYSCAT.EVENTTABLES カタログ・ビューから取り出されます。
    • パーティション・データベース環境では、インスタンスのすべての メンバー でアクティブ化処理が行われます。 特定の メンバーでは、活動化処理によって、ターゲット表ごとに表スペースとデータベース・パーティション・グループが決定されます。 イベント・モニターは、データベース・パーティションに少なくとも 1 つのターゲット表が存在する場合のみ、 そのデータベース・パーティションでアクティブ化します。 さらに、データベース・パーティションにいずれかのターゲット表が見つからない場合は、 そのターゲット表にはフラグが立てられ、 そのターゲット表を宛先とするデータが実行時処理中にドロップされるようにします。
    • イベント・モニターがアクティブ化する際にターゲット表が存在しない場合 (またはパーティション・データベース環境で、表スペースがデータベース・パーティションにない場合) には、アクティブ化は続行され、この表に挿入されるはずであったデータは無視されます。
    • アクティブ化処理は、各ターゲット表の妥当性検査をします。 妥当性検査がうまくいかないと、イベント・モニターのアクティブ化は失敗し、 管理ログにメッセージが書き込まれます。
    • パーティション・データベース環境におけるアクティブ化の際に、 FIRST_CONNECT および EVMON_START の CONTROL 表行は、 カタログ・データベース・パーティションでのみ挿入されます。 これには、 コントロール表の表スペースがカタログ・データベース・パーティションに存在することが必要です。 カタログ・データベース・パーティションにない場合には、挿入は実行されません。
    • パーティション・データベース環境では、表書き込みイベント・モニターが活動化されたときに メンバー がまだアクティブになっていない場合、 メンバー が次に活動化されるときにイベント・モニターが活動化されます。
    ランタイム:
    • イベント・モニターは DATAACCESS 権限で実行されます。
    • イベント・モニターがアクティブであるときに、ターゲット表への挿入操作が失敗すると、
      • コミットされていない変更がロールバックされます。
      • メッセージが、管理ログに書き込まれます。
      • イベント・モニターが非アクティブになります。
    • イベント・モニターがアクティブである場合には、 イベント・モニター・バッファーの処理を終えるとローカル COMMIT が実行されます。
    • パーティション・データベース または Db2 pureScale 環境以外の環境では、最後のアプリケーションが終了すると (およびデータベースが明示的に活動化されていない場合)、すべての表書き込みイベント・モニターが非活動化されます。

      Db2 pureScale 環境では、表書き込みイベント・モニターは、 メンバー が停止すると所定の メンバー で非アクティブ化され、 メンバー が再始動すると再アクティブ化されます。

      パーティション・データベース環境では、 カタログ・パーティションが非活動化されると表書き込みイベント・モニターが非活動化されます。

    • DROP EVENT MONITOR ステートメントはターゲット表をドロップしません。
    • 表書き込みイベント・モニターがアクティブになると、 イベント・モニターは、それがアクティブである間にターゲット表が変更されることを防ぐため、常に各ターゲット表に対する IN 表ロックを獲得します。 この表ロックは、イベント・モニターがアクティブである間は、すべての表において維持されます。 ターゲット表のいずれかにおいて排他的アクセスが必要である場合 (例えば、ユーティリティーが実行される場合) には、まずイベント・モニターを非アクティブにして、そのようなアクセスを試行する前に表ロックを解放します。
  • 代替構文: Db2 の以前のバージョンおよび他のデータベース製品との互換性のために、以下の代替の構文がサポートされています。 これらの代替は非標準であり、使用すべきではありません。
    • DB2_ENFORCE_MEMBER_SYNTAX レジストリー変数が ON に設定されている場合を除き、DBPARTITIONNUM または NODE を MEMBER の代わりに指定できます。
    • target-table-options 節では、コンマを使って複数のオプションを分離することができます。

DBACTIVITIES という名前のアクティビティー・イベント・モニターを定義します。
   CREATE EVENT MONITOR DBACTIVITIES
       FOR ACTIVITIES
       WRITE TO TABLE
       ACTIVITY (TABLE ACTIVITY_DBACTIVITIES
                 IN USERSPACE1
                 PCTDEACTIVATE 100),
       ACTIVITYMETRICS (TABLE ACTIVITYMETRICS_DBACTIVITIES
                        IN USERSPACE1
                        PCTDEACTIVATE 100),
       ACTIVITYSTMT (TABLE ACTIVITYSTMT_DBACTIVITIES
                     IN USERSPACE1
                     PCTDEACTIVATE 100),
       ACTIVITYVALS (TABLE ACTIVITYVALS_DBACTIVITIES
                     IN USERSPACE1
                     PCTDEACTIVATE 100),
       CONTROL (TABLE CONTROL_DBACTIVITIES
                IN USERSPACE1
                PCTDEACTIVATE 100)
       AUTOSTART;