システム・モニター 手引きおよび解説書

出力レコード

イベント・モニターの出力は 2 進ストリームの論理データ・グループで、 パイプ・イベント・モニターでもファイル・イベント・モニターでも全く同じです。 db2evmon 生産性向上ツールを使ってこのトレースをフォーマットすることができます。

次の表では、 イベント・モニター出力中に表示される異なるグループを示しています。 イベント・レコードの書き込みをトリガーするイベントのリストについては、 イベント・モニターによって使用できる情報を参照してください。 トレース内のレコードは、以下の 4 つのタイプに分けられます。

  1. モニター情報 - イベント・モニターのバージョン・レベルを示します。
  2. プロローグ情報 - イベント・モニターが活動化すると生成されます。
  3. 実内容情報 - イベントが発生すると生成されます。
  4. エピローグ情報 - データベースが非活動化されると生成されます。

イベント・タイプ 論理データ・グループ 戻される情報
モニター
モニター・レベル
event_log_stream_header
(SQLM_EVENT_LOG_STREAM_HEADER)

イベント・モニターのバージョン・レベルおよびバイトの並び順を識別する。 アプリケーションはこのヘッダーを使用して、 evmon 出力ストリームを処理できるかどうかを判別できる。
プロローグ
ログ・ヘッダー
log_header_event
(EVENT_LOG_HEADER)

トレースの特性、たとえば、サーバーのタイプおよびメモリーのレイアウト。
データベース・ヘッダー
db_header_event
(EVENT_DB_HEADER)

データベース名、パスおよび活動化時間。
イベント・モニター開始
start_event
(EVENT_START)

モニターが開始されるか再始動された時間。
接続ヘッダー
connheader_event
(EVENT_CONNHEADER)

現行接続のヘッダーごとに 1 つ。接続時間とアプリケーション名を含む。
実内容
ステートメント・イベント
stmt_event
(EVENT_STMT)

ステートメント・レベル・データ。動的ステートメントのテキストを含む。 ステートメント・イベント・モニターは、取り出しを記録しません。
サブセクション・イベント
subsection_event
(EVENT_SUBSECTION)

サブセクション・レベル・データ。
トランザクション・イベント
xaction_event
(EVENT_XACT)

トランザクション・レベル・データ。
接続イベント
conn_event
(EVENT_CONN)

接続レベル・データ。
デッドロック・イベント
deadlock_event
(EVENT_DEADLOCK)

デッドロック・レベル・データ。
デッドロック接続イベント
dlconn_event
(EVENT_DLCONN)

デッドロックに関係している接続ごとに 1 つ。 関係するアプリケーションと競合しているロックを含む。
オーバーフロー
overflow_event
(EVENT_OVERFLOW)

脱落したレコードの数。書き込み装置が (ブロック化されていない) イベント・モニターに追い付かないときに生成される。
エピローグ
データベース・イベント
db_event
(EVENT_DB)

データベース・レベル・データ。
バッファー・プール・イベント
bufferpool_event
(EVENT_BUFFERPOOL)

バッファー・プール・レベル・データ。
表スペース・イベント
tablespace_event
(EVENT_TABLESPACE)

表スペース・レベル・データ。
表イベント
table_event
(EVENT_TABLE)

表レベル・データ。

イベント・レコードはどの接続についても生成されることがあるため、 ストリーム中にいろいろな順序で現れる場合があります。 すなわち、接続 1 のトランザクション・イベントの直後に接続 2 の接続イベントを取得することがあるということです。 しかし、単一の接続または単一のイベントに属するレコードは、 論理順序で現れます。 たとえば、ステートメント・レコード (ステートメントの終わり) は、 トランザクション・レコード (UOW の終わり) があれば、必ずその前に来ます。 同様に、デッドロック・イベント・レコードは、 必ずデッドロックに関係する各接続のデッドロック接続イベント・レコードの前に来ます。 アプリケーション ID またはアプリケーション・ハンドル (agent_id) を使って、 レコードと接続を一致させることができます。

たとえば、以下のイベント・モニターを使うと、




figure sqlf0114

以下の作業負荷と




figure sqlf0115

以下のトレースが生成されます。 この例では、トレースに含まれる情報のタイプを詳しく説明するために、 各イベント・レコード内のいくつかのフィールドがリストされています。 デッドロック・イベントの例については、イベント・モニターを参照してください。 なお、この例の中の数字は、レコードが書き込まれた順序を示しています。

モニター

モニター情報はすべてのイベント・モニターに対して生成されます。 SQLM_DBMON_VERSION6 または SQLM_DBMON_VERSION7 のバージョンを戻すイベント・モニターのみが、 自己記述型データ・ストリームを使用します。

バージョン 6 以前の出力はバージョン 5 の方式で読み取る必要があります。 このようなサイズが静的な構造については、 sqlmon.h ファイルを参照してください。

プロローグ

プロローグ情報は、 set event monitor all state 1 が実行されると生成されます。 このイベント・モニターがすでに自動開始 (AUTOSTART) されている場合は、 データベースの活動化時に生成されているはずです。

1) event_log_stream_header
      byte_order:         SQLM_BIG_ENDIAN      - a UNIX or AIX box 
      size:               400                  - not used, for compatibility only
      version:            SQLM_DBMON_VERSION7  - trace was produced by UDB V7
 
2) log_header_event
      version:            SQLM_DBMON_VERSION7  - Trace was produced by UDB V7
      num_nodes_in_db2_instance: 1             - for a standalone system,
      byte_order:         SQLM_BIG_ENDIAN      - on a UNIX or AIX box,
      event_monitor_name: ALL                  - by event monitor: 'ALL'
                                                                                
3) dbheader_event
      db_name:            SAMPLE               - for database 'SAMPLE'
                                                                                
4) connheader_event
      agent_id: 14                             - Application 1 - handle
      appl_id:  *LOCAL.bourbon.970602180712    - Application 1 - id with timestamp

内容

アプリケーション 1 が select name from syscat.eventmonitors を発行すると生成されます。 イベント・モニターがオンにされた時点では、 アプリケーション 2 はまだ接続されていません。

5) stmt_event                                                              
      agent_id: 14                                                              
      appl_id:  *LOCAL.bourbon.970602180712                                     
      operation:         SQLM_PREPARE                                           
      package_name: SQLC2BA4                                               
      cursor:            SQLCUR201                                              
      @stmt_text_offset: SELECT EVMONNAME FROM SYSCAT.EVENTMONITORS             
                                                                                
6) stmt_event                                                              
      agent_id: 14                                                              
      appl_id:  *LOCAL.bourbon.970602180712                                     
      operation:         SQLM_OPEN                                              
      package_name: SQLC2BA4                                               
      cursor:            SQLCUR201                                              
      @stmt_text_offset: SELECT EVMONNAME FROM SYSCAT.EVENTMONITORS             
                                                                                
7) stmt_event                                                              
      agent_id: 14                                                              
      appl_id:  *LOCAL.bourbon.970602180712                                     
      operation:         SQLM_FETCH                                             
      package_name: SQLC2BA4                                               
      cursor:            SQLCUR201                                              
      @stmt_text_offset: SELECT EVMONNAME FROM SYSCAT.EVENTMONITORS             
      fetch_count:       2                                                      
      sqlca.sqlcode:     100  - (all rows in the SYSCAT.EVENTMONITORS table)
      SQL0100W  No row was found for FETCH, UPDATE or DELETE; or the result of a
      query is an empty table.  SQLSTATE=02000
NOTE - A fetch event is generated only if the fetch fails or encounters end of table
                                                                                
8) stmt_event                                                              
      agent_id: 14                                                              
      appl_id:  *LOCAL.bourbon.970602180712                                     
      operation:         SQLM_DESCRIBE                                          
      package_name:      SQLC2BA4
      cursor:            SQLCUR201                                              
      @stmt_text_offset: SELECT EVMONNAME FROM SYSCAT.EVENTMONITORS             
                                                                                
9) stmt_event                                                              
      agent_id: 14                                                              
      appl_id:  *LOCAL.bourbon.970602180712                                     
      operation:         SQLM_CLOSE                                             
      package_name:      SQLC2BA4
      cursor:            SQLCUR201                                              
      @stmt_text_offset: SELECT EVMONNAME FROM SYSCAT.EVENTMONITORS             
      fetch_count:       2                                                      
                                                                                
10) stmt_event                                                              
      agent_id: 14                                                              
      appl_id:  *LOCAL.bourbon.970602180712                                     
      operation:    SQLM_STATIC_COMMIT       - generated by CLP after the SELECT
      package_name: SQLC2BA4                                                    
11) xaction_event                       
      agent_id: 14                           
      appl_id:  *LOCAL.bourbon.970602180712  
      status:    SQLM_UOWCOMMIT              
      rows_read: 7                           

アプリケーション 2 がデータベースに接続しようとしています。 以下のように、DB2 エージェントが同時に実行しているため、 出力にインターリーブが生じます。

12) connheader_event                                                       
      agent_id: 15                             - Application 2 - handle         
      appl_id:  *LOCAL.bourbon.970602180714    - Application 2 - id with timestamp
                                                                                
13) stmt_event                                                             
      agent_id: 15                                                              
      appl_id:  *LOCAL.bourbon.970602180714                                     
      operation:  SQLM_STATIC_COMMIT          - generated by CLP on CONNECT     
                                                                                
14) xaction_event                                                          
      agent_id: 15                                                              
      appl_id:  *LOCAL.bourbon.970602180714                                     
      status:    SQLM_UOWCOMMIT                                                 
                                                                                
15) stmt_event                                                             
      agent_id: 15                                                              
      appl_id:  *LOCAL.bourbon.970602180714                                     
      operation:    SQLM_STATIC_COMMIT       - generated on CONNECT RESET      
                                                                                
16) xaction_event                                                          
      agent_id: 15                                                              
      appl_id:  *LOCAL.bourbon.970602180714                                     
      status:    SQLM_UOWCOMMIT
                                                 
17) conn_event                                                      
      agent_id: 15                                                       
      appl_id:  *LOCAL.bourbon.970602180714                              
      commit_sql_stmts:    2                                             
                                                                         
18) stmt_event                                                      
      agent_id: 14                                                       
      appl_id:  *LOCAL.bourbon.970602180712                              
      operation:    SQLM_STATIC_COMMIT       - generated on CONNECT RESET
      package_name: SQLC2BA4                                             
                                                                         
19) xaction_event                                                   
      agent_id: 14                                                       
      appl_id:  *LOCAL.bourbon.970602180712                              
      status:    SQLM_UOWCOMMIT                                          
      rows_read: 2                                                       
      locks_held_top: 7                                                  
                                                                         
20) conn_event                                                      
      agent_id: 14                                                       
      appl_id:  *LOCAL.bourbon.970602180712                              
      select_sql_stmts: 1                                                
      rows_selected:    2                                                

EPILOG

エピローグ情報は、データベースが非活動化状態にあるとき (最後のアプリケーションが切断を終了したとき) に生成されます。

21) table_event                     
      table_schema: SYSIBM               
      table_name:   SYSTABLES            
      table_type:   SQLM_CATALOG_TABLE   
      rows_read: 2                       
                                         
22) table_event                     
      table_schema: SYSIBM               
      table_name:   SYSDBAUTH            
      table_type:   SQLM_CATALOG_TABLE   
      rows_read: 3                       
                                         
23) tablespace_event                
      tablespace_name: SYSCATSPACE       
                                         
24) tablespace_event                
      tablespace_name: TEMPSPACE1        
                                         
25) tablespace_event                
      tablespace_name: USERSPACE1        
                                         
26) bufferpool_event                
      bp_name: IBMDEFAULTBP              
                                         
27) db_event                        
      connections_top: 2                 
注:CREATE EVENT MONITOR SQL ステートメントの WHERE 文節を使って、 イベントを生成するアプリケーションを制限することができます。 詳細については、付録 A, データベース・システム・モニター・インターフェースを参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]