CREATE EVENT MONITOR (統計) ステートメント

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

呼び出し

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

許可

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

構文

Read syntax diagramSkip visual syntax diagramCREATE EVENT MONITORevent-monitor-name FOR STATISTICSWRITE 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) BUFFERSIZE4BUFFERSIZEpages BLOCKEDNONBLOCKED
target-table-options
Read syntax diagramSkip visual syntax diagram1TABLEtable-nameINtablespace-namePCTDEACTIVATE100PCTDEACTIVATEinteger
file-options
Read syntax diagramSkip visual syntax diagramMAXFILESNONEMAXFILESnumber-of-filesMAXFILESIZEpagesNONE BUFFERSIZE4BUFFERSIZEpages BLOCKEDNONBLOCKEDAPPENDREPLACE
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
記録するイベント・タイプをこの後に指定します。
STATISTICS
イベント・モニターが以下のタイミングでサービス・クラス、ワークロード、または作業クラスのイベントを記録することを指定します。
  • period 分ごと (periodwlm_collect_int データベース構成パラメーターの値)
  • mon_collect_stats プロシージャーが呼び出されたとき
WRITE TO
データの出力先をこの後に指定します。
テーブル
イベント・モニターのデータの出力先が一連のデータベース表であることを示します。 イベント・モニターは、データ・ストリームを 1 つ以上の論理データ・グループに分け、 各グループを別個の表に挿入します。 ターゲット表のあるグループのデータは保持されますが、ターゲット表のないグループのデータは破棄されます。 グループに含まれる各モニター・エレメントは、同じ名前の表列にマップされます。 対応する表列を持つエレメントだけが表に挿入されます。 他のエレメントは破棄されます。
formatted-event-table-info
イベント・モニターのターゲット表を定義します。 この節は、記録される各グループごとに指定しなければなりません。 しかし evm-group-info 節が指定されない場合には、 イベント・モニター・タイプのすべてのグループが記録されます。

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

evm-group
ターゲット表を定義する対象の論理データ・グループを指定します。 以下の表に示されているように、値はイベント・モニターのタイプに基づいて異なります。
イベント・モニターのタイプ evm-group 値
統計 (Statistics)
  • CONTROL
  • HISTOGRAMBIN
  • OSMETRICS
  • QSTATS
  • SCMETRICS
  • SCSTATS
  • SUPERCLASSMETRICS
  • SUPERCLASSSTATS
  • WCSTATS
  • WLMETRICS
  • WLSTATS
target-table-options
グループのターゲット表を指定します。
TABLE テーブル名
ターゲット表の名前を指定します。 ターゲット表は、非パーティション表でなければなりません。 名前が非修飾の場合、表スキーマは CURRENT SCHEMA 特殊レジスターの値にデフォルト設定されます。 名前が指定されない場合、 非修飾名は evm-group および event-monitor-name から以下のように派生されます。
   substring(evm-group CONCAT '_'
     CONCAT event-monitor-name,1,128)
IN 表スペース名
表を作成する表スペースの名前を指定します。 表スペース名を指定しない場合、CREATE TABLE を使用して表スペース名を指定しないで表が作成される場合と同じプロセスで表スペースが選択されます。
PCTDEACTIVATE 整数
イベント・モニターの表が自動ストレージ (非一時) または DMS 表スペースに作成される場合には、 PCTDEACTIVATE パラメーターは、どの程度表スペースが満たされた時点でイベント・モニターが自動的に非活動化されるかを指定します。 パーセンテージを表す値は、0 から 100 の範囲で指定可能です。この 100 は、表スペースが完全にいっぱいになるときにイベント・モニターが非アクティブになることを意味します PCTDEACTIVATE が指定されていない場合には、デフォルト値は 100 になります。 SMS 表スペースの場合、このオプションは無視されます。
重要: ターゲット表スペースの自動サイズ変更が有効になっている場合は、PCTDEACTIVATE パラメーターを 100 に設定してください。 または、この節全体を省略して、デフォルトの 100 が適用されるようにします。 それ以外の場合、表スペースが自動的にサイズ変更される前に、PCTDEACTIVTATE で指定したしきい値に表スペースが到達すると、イベント・モニターは予期せずに非アクティブになる場合があります。
target-table-options の値が指定されていない場合、CREATE EVENT MONITOR の処理は以下のように続行されます。
  • 派生した表名が使用されます。
  • デフォルトの表スペースが選択されます。
  • PCTDEACTIVATE のデフォルトは 100 になります。
BUFFERSIZE ページ
イベント・モニター・バッファーのサイズを指定します (4K ページ単位)。 表イベント・モニターはバッファーからのすべてのデータを挿入し、 バッファーが処理されると COMMIT を発行します。 バッファーが大きいほど、イベント・モニターによって使用されるコミット有効範囲は大きくなります。 活動頻度の高いイベント・モニターには、 比較的活動頻度の低いイベント・モニターよりも大きいバッファーを用意する必要があります。 モニターが開始されると、指定したサイズの 2 つのバッファーが割り振られます。 イベント・モニターは、二重バッファリングを使用して、非同期入出力を可能にします。

各バッファーのデフォルト・サイズは 4 ページです (16K バッファーが 2 個割り振られます)。 最小サイズは 1 ページです。 バッファーはモニター・ヒープから割り振られるので、バッファーの最大サイズはこのヒープのサイズによって制限されます。 多くのイベント・モニターを同時に使用する場合は、mon_heap_sz データベース・マネージャー構成パラメーターのサイズを大きくしてください。

注: このキーワードは、統計イベント・モニターではサポートされません。 コンパイラーはこのキーワードを受け入れますが、そのキーワードはイベント・モニターの動作には影響ありません。
BLOCKED
エージェントが 2 つのイベント・バッファーがいっぱいであると判断した場合、 イベントを生成するそのエージェントはイベント・バッファーがディスクへ書き込まれるのを待機しなければならないことを指定します。 イベント・データが失われるのを防止する場合には、BLOCKED を選択する必要があります。 これはデフォルト・オプションです。
注: このキーワードは、統計イベント・モニターではサポートされません。 コンパイラーはこのキーワードを受け入れますが、そのキーワードは統計イベント・モニターに影響を与えません。 BLOCKED キーワードが指定された場合のように、イベント・モニターが作成されます。
NONBLOCKED
エージェントが 2 つのイベント・バッファーがいっぱいであると判断した場合、 イベントを生成するそのエージェントは イベント・バッファーがディスクへ書き込まれるのを待機しないことを指定します。 NONBLOCKED の指定を伴うイベント・モニターは、BLOCKED の指定を伴うイベント・モニターほどには、 データベース操作の速度を低下させません。 ただし、NONBLOCKED のイベント・モニターは、活動頻度の高いシステムではデータの消失の可能性が高くなります。
PIPE
イベント・モニター・データの出力先が名前付きパイプであることを指定します。 イベント・モニターは、 データを単一のストリーム (単一の無限に長いファイルであるかのように) でパイプに書き込みます。 データをパイプに書き込む時点で、イベント・モニターはブロック化書き込みを行いません。 パイプ・バッファーに空きがない場合、イベント・モニターはそのデータを廃棄します。 データを失いたくない場合、モニターするアプリケーション側でデータを迅速に読み取る必要があります。
パイプ名 (pipe-name)
イベント・モニターがデータを書き込むパイプの名前 ( AIX®の場合は FIFO)
パイプの命名規則は、プラットフォームごとに異なります。
オペレーティング・システム 命名規則
AIX パイプ名はファイル名と同様に扱われます。 したがって、相対パイプ名を使用することができ、相対パス名と同様に扱われます (path-name を参照)。
Linux® パイプ名はファイル名と同様に扱われます。 したがって、相対パイプ名を使用することができ、相対パス名と同様に扱われます (path-name を参照)。
< パイプ名には特殊な構文があるため、結果として絶対パイプ名が必要です。

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

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

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

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

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

絶対パスを指定すると、そのパスが使用されます。

Db2® pureScale® 環境では、相対パスが指定されている場合、データベース・ディレクトリー内のデータベース所有ディレクトリーへの相対パスが使用されます。

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

同じターゲット・パスを持つ複数のイベント・モニターを指定することができます。 ただし、イベント・モニターの 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 だけになります。
BUFFERSIZE ページ
イベント・モニター・バッファーのサイズを指定します (4K ページ単位)。 イベント・モニターのパフォーマンスを向上させるために、 すべてのイベント・モニターのファイル入出力はバッファーに入れられます。 バッファーが大きいほど、イベント・モニターによって行われる入出力は少なくなります。 活動頻度の高いイベント・モニターには、 比較的活動頻度の低いイベント・モニターよりも大きいバッファーを用意する必要があります。 モニターが開始されると、指定したサイズの 2 つのバッファーが割り振られます。 イベント・モニターは、二重バッファリングを使用して、非同期入出力を可能にします。

各バッファーのデフォルト・サイズは 4 ページです (16K バッファーが 2 個割り振られます)。 最小サイズは 1 ページです。 バッファーの最大サイズは、MAXFILESIZE パラメーターの値の他に、モニター・ヒープのサイズによっても制約されます。バッファーはそのヒープから割り振られるからです。 多くのイベント・モニターを同時に使用する場合は、mon_heap_sz データベース・マネージャー構成パラメーターのサイズを大きくしてください。

データをパイプに書き込むイベント・モニターにも、 それぞれサイズが 1 ページの 2 つの内部 (構成不可) バッファーがあります。 これらのバッファーも、モニター・ヒープ (MON_HEAP) から割り振られます。 出力先がパイプである各アクティブ・イベント・モニターごとに、 データベース・ヒープのサイズを 2 ページ分大きくしてください。
注: このキーワードは、統計イベント・モニターではサポートされません。 コンパイラーはこのキーワードを受け入れますが、そのキーワードはイベント・モニターの動作には影響ありません。
BLOCKED
エージェントが 2 つのイベント・バッファーがいっぱいであると判断した場合、 イベントを生成するそのエージェントはイベント・バッファーがディスクへ書き込まれるのを待機しなければならないことを指定します。 イベント・データが失われるのを防止する場合には、BLOCKED を選択する必要があります。 これはデフォルト・オプションです。
NONBLOCKED
エージェントが 2 つのイベント・バッファーがいっぱいであると判断した場合、 イベントを生成するそのエージェントは イベント・バッファーがディスクへ書き込まれるのを待機しないことを指定します。 NONBLOCKED の指定を伴うイベント・モニターは、BLOCKED の指定を伴うイベント・モニターほどには、 データベース操作の速度を低下させません。 ただし、NONBLOCKED のイベント・モニターは、活動頻度の高いシステムではデータの消失の可能性が高くなります。
注: このキーワードは、統計イベント・モニターではサポートされません。 コンパイラーはこのキーワードを受け入れますが、そのキーワードは統計イベント・モニターに影響を与えません。 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 が有効になっている場合、I/O コンポーネントは現在接続されている任意の メンバーで実行できます。

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

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

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

ルール

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

  • イベント・モニターの定義は、SYSCAT.EVENTMONITORS カタログ・ビューに記録されます。 イベント自体は、SYSCAT.EVENTS カタログ・ビューに記録されます。 ターゲット表の名前は、SYSCAT.EVENTTABLES カタログ・ビューに記録されます。
  • イベント・モニターが実行される メンバー がアクティブでない場合、その メンバー が次に活動化されるときにイベント・モニターの活動化が行われます。
  • イベント・モニターは、アクティブ化の後に、明示的に非アクティブ化されるか、インスタンスがリサイクルされるまで、自動始動のイベント・モニターのように動作します。 つまり、 メンバー が非活動化されたときにイベント・モニターがアクティブであり、その後その メンバー が再活動化されると、イベント・モニターも明示的に再活動化されます。
  • イベント・モニターの出力に論理データ・グループ event_scstats または event_wlstats を含んでいるようなイベント・モニターを作成した場合、 メトリックが、イベント・モニターの出力に含まれている 2 つの XML 文書内に報告されます。 報告されるモニター・エレメントmetrics最後に統計が収集されてからのモニター・エレメントの値の変化が文書に示されています。 報告されたエレメントdetails_xml同じモニター・エレメントですが、データベースが活動化されてからの値を示します。 つまり、これらはデータベースが非アクティブになるまで増え続けます。
    重要: 統計イベント・モニターの XML 文書 details_xml は非推奨となっており、将来のリリースで除去される可能性があります。 詳しくは、 統計イベント・モニターによる details_xml でのメトリック・レポート作成の非推奨化を参照してください。
  • 表書き込みイベント・モニター: 一般注意:
    • すべてのターゲット表は、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 節では、コンマを使って複数のオプションを分離することができます。

DBSTATISTICS という名前の統計イベント・モニターを定義します。
   CREATE EVENT MONITOR DBSTATISTICS
       FOR STATISTICS
       WRITE TO TABLE
       SCSTATS (TABLE SCSTATS_DBSTATISTICS
                IN USERSPACE1
                PCTDEACTIVATE 100),
       SCMETRICS (TABLE SCMETRICS_DBSTATISTICS
                IN USERSPACE1
                PCTDEACTIVATE 100),
       SUPERCLASSSTATS (TABLE SUPERCLASSTATS_DBSTATISTICS
                IN USERSPACE1
                PCTDEACTIVATE 100),
       SUPERCLASSMETRICS (TABLE SUPERCLASSMETRICS_DBSTATISTICS
                IN USERSPACE1
                PCTDEACTIVATE 100),
       WCSTATS (TABLE WCSTATS_DBSTATISTICS
                IN USERSPACE1
                PCTDEACTIVATE 100),
       WLSTATS (TABLE WLSTATS_DBSTATISTICS
                IN USERSPACE1
                PCTDEACTIVATE 100),
       QSTATS (TABLE QSTATS_DBSTATISTICS
                IN USERSPACE1
                PCTDEACTIVATE 100),
       HISTOGRAMBIN (TABLE HISTOGRAMBIN_DBSTATISTICS
                IN USERSPACE1
                PCTDEACTIVATE 100),
       OSMETRICS (TABLE OSMETRICS_DBSTATISTICS
                IN USERSPACE1
                PCTDEACTIVATE 100),
       CONTROL (TABLE CONTROL_DBSTATISTICS
                IN USERSPACE1
                PCTDEACTIVATE 100)
       AUTOSTART;