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

スナップショット・モニター

スナップショット・モニターを使用すると、 個々のモニター・レベルにおいて以下の 2 つのカテゴリーの情報が得られます。

たとえば、 データベース・ロック・スナップショットを取ると、 あるデータベースに接続しているアプリケーションが保持しているロックのリストを得ることができます。 最初に、LOCK スイッチをオンにして (UPDATE MONITOR SWITCHES)、 ロックのために待機した時間を収集します。




figure sqlf0110

注:sqllib/misc/db2sampl を実行すると、 サンプル・データベースを作成して移すことができます。

GET SNAPSHOT コマンドを発行すると以下の内容が戻されます。

          Database Lock Snapshot
 
 Database name                              = SAMPLE
 Database path                              = /home/bourbon/bourbon/NODE...
 Input database alias                       = SAMPLE
 Locks held                                 = 5
 Applications currently connected           = 1
 Applications currently waiting on locks    = 0
 Snapshot timestamp                         = 03-17-1999 15:40:29.976539
 
 Application handle                         = 0
 Application ID                             = LOCAL.bourbon.970411143813
 Sequence number                            = 0001
 Application name                           = db2bp_32
 Authorization ID                           = BOURBON
 Application status                         = UOW Waiting
 Status change time                         = Not Collected
 Application code page                      = 850
 Locks held                                 = 5
 Total wait time (ms)                       = 0
 
List of Locks
 Lock Object Name            = 4
 Node number lock is held at = 0
 Object Type                 = Row
 Tablespace Name             = SYSCATSPACE           Granted
 Table Schema                = SYSIBM
 Table Name                  = SYSTABLES
 Mode                        = NS
 Status                      = Granted
 Lock Escalation             = NO
 
 Lock Object Name            = 2
 Node number lock is held at = 0
 Object Type                 = Table
 Tablespace Name             = SYSCATSPACE           Granted
 Table Schema                = SYSIBM
 Table Name                  = SYSTABLES
 Mode                        = IS
 Status                      = Granted
 Lock Escalation             = NO
 
 Lock Object Name            = 259
 Node number lock is held at = 0
 Object Type                 = Row
 Tablespace Name             = SYSCATSPACE           Granted
 Table Schema                = SYSIBM
 Table Name                  = SYSTABLES
 Mode                        = NS
 Status                      = Granted
 Lock Escalation             = NO
 
 Lock Object Name    = 7
 Object Type         = Table
 Tablespace Name     = SYSCATSPACE           Granted
 Table Schema        = SYSIBM
 Table Name          = SYSTABLES
 Mode                = IS
 Status              = Granted
 Lock Escalation     = NO
 
 Lock Object Name    = 0
 Object Type         = Internal P Lock
 Tablespace Name     =
 Table Schema        =
 Table Name          =
 Mode                = S
 Status              = Granted
 Lock Escalation     = NO

このスナップショットを見ると、 現在 1 つのアプリケーションが SAMPLE データベースに接続しており、 5 つのロックを保持していることが分かります。

     Locks held                                 = 5
     Applications currently connected           = 1

UOW スイッチが OFF なので、 Application statusUOW Waiting になった時刻 (Status change time) は Not Collected として戻されることに注意してください。

ロック・スナップショットは、 このデータベースに接続しているアプリケーションがロックのために待機している (現在までの) 合計時間も戻します。

     Total wait time (ms)                       = 0

これは累積カウンターの場合の例です。 モニター・データのリセットでは、 カウンターをゼロにリセットする方法を説明しています。

スナップショット・モニターに必要な権限

スナップショット・モニターの作業を実行するには、 監視したいデータベース・マネージャー・インスタンスについての SYSMAINT、 SYSCTRL、または SYSADM 権限が必要です。

スナップショット・モニター・インターフェース

スナップショット・モニターを呼び出すには、 以下のアプリケーション・プログラム・インターフェース (API) を使用します。

db2GetSnapshot()
スナップショットを取ります。

db2MonitorSwitches()
モニター・スイッチの設定値を設定または照会します。

db2ResetMonitor()
システム・モニターのカウンターをリセットします。

db2GetSnapshotSize()
特定の db2GetSnapshot() 呼び出しで戻されるデータのサイズを見積もります。

db2ConvMonStream()
バージョン 6 の自己記述型データ・ストリームを、 バージョン 6 以前の固定サイズ・データ構造に変換します。

コマンド行プロセッサー (CLP) は、 スナップショット API に対するコマンドを使うことを主体とした入出力ユーザー・インターフェースを備えています。 たとえば、GET SNAPSHOT コマンドは db2GetSnapshot() API を呼び出します。

付録 A, データベース・システム・モニター・インターフェースでは、データベース・システム・モニターに関連したコマンドおよび API についての詳細情報を説明しています。

図 1. スナップショット・モニター・インターフェース


sqlf0301


スナップショットを取得することにより使用可能になる情報

次の表に、サポートされているスナップショット要求のタイプをすべてリストします。 いくつかの要求タイプの場合、一部の情報は、 関連したモニター・スイッチが ON に設定されている場合にだけ戻されます。 スイッチで必須カウンターを制御できるかどうか判別するには、 データベース・システム・モニター・データ要素を参照してください。

表の中で、 「API 要求タイプ」の列は db2GetSnapshot() スナップショット API ルーチン中で SQLMA 入力構造に対する入力として指定される値を示しています。
API 要求タイプ CLP コマンド 戻される情報
接続のリスト
SQLMA_APPLINFO_ALL アプリケーションのリスト [詳細表示] スナップショットが取られたノード上の DB2 インスタンスが管理するデータベースに現在接続している、 すべてのアプリケーションの識別情報。
SQLMA_DBASE_APPLINFO データベース dbname に関係するアプリケーションのリスト [詳細表示] 指定のデータベースに現在接続されている各アプリケーションについて、 SQLMA_APPLINFO_ALL と同じ働きをします。
SQLMA_DCS_APPLINFO_ALL DCS アプリケーションのリスト スナップショットが取られたノード上の DB2 インスタンスが管理するデータベースに現在接続されている、 すべての DCS アプリケーションのアプリケーション識別情報。
データベース・マネージャーのスナップショット
SQLMA_DB2 DBM のスナップショットの取得 内部モニター・スイッチの設定値を含む、 データベース・マネージャー・レベルの情報。
DBM のモニター・スイッチの取得 内部モニター・スイッチの設定値を戻します。
データベースのスナップショット
SQLMA_DBASE データベース dbname のスナップショットの取得 データベースのデータベース・レベル情報およびカウンター。 情報が戻されるのは、 最低 1 つのアプリケーションがデータベースに接続している場合だけです。
SQLMA_DBASE_ALL すべてのデータベースのスナップショットの取得 ノード上の活動状態の各データベースについて、SQLMA_DBASE と同じ働きをします。
活動状態のデータベースのリスト 個々の活動状態のデータベースに対する接続数。 ACTIVATE DATABASE コマンドを使用して開始したものの、 接続されていないデータベースを含みます。
SQLMA_DCS_DBASE DCS データベース dbname のスナップショットの取得 特定の DCS データベースのデータベース・レベル情報およびカウンター。 情報が戻されるのは、 最低 1 つのアプリケーションがデータベースに接続している場合だけです。
SQLMA_DCS_DBASE_ALL すべてのデータベースのスナップショットの取得 ノード上の活動状態の各データベースについて、 SQLMA_DCS_DBASE と同じ働きをします。
SQLMA_DBASE_REMOTE 連合システム・データベースのスナップショットの取得 特定の連合システム・データベースのデータベース・レベル情報およびカウンター。 情報が戻されるのは、 最低 1 つのアプリケーションがデータベースに接続している場合だけです。
SQLMA_DBASE_REMOTE_ALL すべての連合システム・データベースのスナップショットの取得 ノード上の活動状態の各データベースについて、SQLMA_DBASE_REMOTE と同じ働きをします。
アプリケーション・スナップショット
SQLMA_APPL アプリケーションのアプリケーション ID appl-id のスナップショットの取得 アプリケーション・レベルの情報。累積カウンター、状況情報、 および最後に実行された SQL ステートメント (ステートメント・スイッチが設定されている場合) が含まれます。
SQLMA_AGENT_ID アプリケーションのエージェント ID appl-handle のスナップショットの取得 SQLMA_APPL と同じです。
SQLMA_DBASE_APPLS dbname に関係するアプリケーションのスナップショットの取得 ノード上のデータベースに接続されている各アプリケーションについて、 SQLMA_APPL と同じ働きをします。
SQLMA_APPL_ALL すべてのアプリケーションのスナップショットの取得 ノード上にある活動状態の各アプリケーションについて、 SQLMA_APPL と同じ働きをします。
SQLMA_DCS_APPL DCS アプリケーションのアプリケーション ID appl-id のスナップショットの取得 アプリケーション・レベルの情報。累積カウンター、状況情報、 および最後に実行された SQL ステートメント (ステートメント・スイッチが設定されている場合) が含まれます。
SQLMA_DCS_APPL_ALL すべての DCS アプリケーションのスナップショットの取得 ノード上にある活動状態の各 DCS アプリケーションについて、 SQLMA_DCS_APPL と同じ働きをします。
SQLMA_DCS_APPL_HANDLE DCS アプリケーションのエージェント ID appl-handle のスナップショットの取得 SQLMA_DCS_APPL と同じです。
SQLMA_DCS__DBASE_APPLS dbname に関係する DCS アプリケーションのスナップショットの取得 ノード上のデータベースに接続された各 DCS アプリケーションについて、 SQLMA_DCS_APPL と同じ働きをします。
SQLMA_DBASE_APPLS_REMOTE dbname 上の連合システム・アプリケーションのスナップショットの取得 アプリケーション・レベルの情報。累積カウンター、状況情報、 および最後に実行された SQL ステートメント (ステートメント・スイッチが設定されている場合) が含まれます。
SQLMA_APPL_REMOTE_ALL すべての連合システム・アプリケーションのスナップショットの取得 ノード上にある活動状態の各連合システム・アプリケーションについて、 SQLMA_DBASE_APPLS_REMOTE と同じ働きをします。
表スナップショット
SQLMA_DBASE_TABLES dbname に関係する表のスナップショットの取得 データベースに接続された各アプリケーションのデータベース・レベルとアプリケーション・レベルの表活動情報。 およびデータベースに接続されたアプリケーションがアクセスした各表の表レベルの表活動情報。 表スイッチが必要です。
ロック・スナップショット
SQLMA_APPL_LOCKS アプリケーションのアプリケーション ID appl-id に関するロックのスナップショットの取得 アプリケーションによって保持されているロックのリスト。 また、ロック・スイッチが ON でロック待機情報がある場合は、その情報。
SQLMA_APPL_LOCKS_AGENT_ID アプリケーションのエージェント ID appl-handle に関するロックのスナップショットの取得 SQLMA_APPL_LOCKS と同じです。
SQLMA_DBASE_LOCKS dbname に関するロックのスナップショットの取得 データベースに接続された各アプリケーションについての、 データベース・レベルおよびアプリケーション・レベルのロック情報。 ロック・スイッチが必要です。
表スペース・スナップショット
SQLMA_DBASE_TABLESPACES dbname に関する表スペースのスナップショットの取得 データベース・レベルの表スペース活動に関する情報。また、 データベースに接続された各アプリケーションのアプリケーション・レベル、 およびデータベースに接続された各アプリケーションがアクセスしている各表スペースの表スペース・レベルの情報も含みます。 バッファー・プール・スイッチが必要です。
バッファー・プール・スナップショット
SQLMA_BUFFERPOOLS_ALL すべてのバッファー・プールのスナップショットの取得 バッファー・プール活動カウンター。 バッファー・プール・スイッチが必要です。
SQLMA_DBASE_BUFFERPOOLS dbname に関するバッファー・プールのスナップショットの取得 SQLMA_BUFFERPOOLS_ALL と同じですが、指定のデータベース専用です。
動的 SQL スナップショット
SQLMA_DYNAMIC_SQL dbname に関する動的 SQL のスナップショットの取得 データベースの SQL ステートメント・キャッシュからの時刻指定ステートメント情報。

スナップショットではインスタンス接続が使用される

スナップショット・モニターでは、インスタンス接続が必要です。 インスタンス接続とは、 アプリケーションと DB2 データベース・マネージャーのインスタンスとの接続です。

インスタンスへの接続がない場合、デフォルトのインスタンス接続が作成されます。 インスタンス接続は、 初めてデータベース・システム・モニター API を呼び出す時に、 DB2INSTANCE 環境変数で指定されたインスタンスに対して暗黙的に行われます。 また、ATTACH TO コマンドを使用して明示的に接続することもできます。

一度アプリケーションが接続されると、 そのアプリケーションが呼び出すシステム・モニター要求は、 すべて接続先のインスタンスに宛てられます。 したがって、クライアント上のインスタンスに接続するだけで、 そのクライアントからリモート・サーバーをモニターできるようになります。

動的 SQL スナップショット

DB2 ステートメント・キャッシュには、 頻繁に使われる SQL ステートメントのパッケージおよび統計が保管されます。 このキャッシュのスナップショットを取ることにより、SQL の活動を調査できます。 そのようなスナップショットから戻されるレコードの量は大きくなる可能性があるため、 内容を表示する表機能があります (SQLCACHE_SNAPSHOTを参照してください)。

ステートメント・キャッシュのスナップショットは、 以下のものを使用して取ることができます。

ファイルへの書き込みを行う場合は、データベースに接続しなければなりません。 インスタンス接続を介してファイルの書き込みを試みる場合、要求は拒否されます。

ノード・スナップショットとグローバル・スナップショット

区分データベース環境では、スナップショットは、インスタンスの任意のノードで取ることも、 単一のインスタンス接続を使用してグローバルに取ることもできます。 グローバル・スナップショットは、 それぞれのノードで収集されたデータを統合して単一の値を戻します。 詳細については、グローバル・スナップショットを取るを参照してください。

スナップショット・モニター・データの使用可能度

データベースからすべてのアプリケーションが切断して、 データベースが非活動化すると、 そのデータベースのシステム・モニター・データは入手不能になります。 任意の期間内に起こるすべてのデータベース活動について、 モニター・データを取得するには、イベント・モニターを使用できます。 または、ACTIVATE DATABASE コマンドを使用してデータベースを開始するか、 データベースに対する永続接続を保守することにより、最後のスナップショットが取られるまでデータベースを活動状態にしておくこともできます。


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