MON_GET_LATCH 表関数 - 現行メンバー内のすべてのラッチのリスト

MON_GET_LATCH 表関数は、現行メンバー内のすべてのラッチのリストを戻します。

許可

以下のいずれかの権限が必要です。
  • ルーチンに対する EXECUTE 特権
  • DATAACCESS 権限
  • DBADM 権限
  • SQLADM 権限

デフォルトの PUBLIC 特権

なし

構文

Read syntax diagramSkip visual syntax diagram MON_GET_LATCH ( search_args , member )

スキーマは SYSPROC です。

ルーチン・パラメーター

SEARCH_ARGS
key-value の組のリストを表すタイプ CLOB(1 K) の入力パラメーター。 リストが空または NULL の場合には、指定されたメンバーのすべてのラッチが返されます。 それ以外の場合は、key-value の組のリストによって表されるすべての条件に一致するすべてのラッチが戻されます。 key-value の組は以下の形式に従う必要があります。
  • key は、開始タグを表すストリングです。 開始タグは、不等号括弧、キー名、タグの終わりを示す不等号括弧の順序で構成されます。 スペースは許可されていません。 開始タグの例は <application_handle> です。
  • value は、開始タグの後ろに置かれます。
  • 終了タグは、タグの始まりを示す不等号括弧、スラッシュ、キー名、タグの終わりを示す不等号括弧の順序で構成されます。 スペースは許可されていません。 </application_handle> は、終了タグの一例です。
以下の例は、key-value ペア全体を示しています。
   '<application_handle>123</application_handle>'

すべてのキーには大/小文字の区別があり、search_args パラメーター内でそれぞれ一度だけ指定できます。

複数のキーの順序は重要ではありません。

無効な key-value ペアの場合、SQLCODE -171 が戻されます。

複数の異なるキーの間に暗黙的 AND 演算子が存在します。

search_args パラメーターを以下のように使用すると、ハンドル 123 のアプリケーションによって保持されている (または取得待機中の) すべてのラッチのリストが返されます。
   CLOB('<application_handle>123</application_handle>') 
search_args パラメーターでは、以下のキーを使用できます。
application_handle
指定されたアプリケーション・ハンドルによって現在保持されているまたは取得中のすべてのラッチのリストを返します。 値は INTEGER として指定します。 以下に例を示します。
   CLOB('<application_handle>145</application_handle>')
latch_name
指定されたラッチ名と一致するすべてのラッチのリストを返します。 値は、最大長 256 文字のストリングとして指定します。 以下に例を示します。
   CLOB('<latch_name>SQLO_LT_SQLB_PTBL__pool_table_latch</latch_name>')
edu_id
指定された edu_id に一致するすべてのラッチのリストを戻します。 以下に例を示します。
   CLOB('<edu_id>28</edu_id>')
latch_status
指定された状況にあるすべてのラッチのリストを戻します。 指定される値は、以下のいずれかの文字になります。
H
保持されているラッチ。
W
待機中のラッチ。
C
競合ラッチ。 競合ラッチは、アプリケーションがラッチを取得し、別のアプリケーションがこのラッチを待機するときに生じます。
以下に例を示します。
   CLOB('<latch_status>W</latch_status>')
以下の例は、key-value の組を search_args パラメーターで使用する方法を示しています。
  1. すべてのラッチを検索します。
       CLOB( '' )
  2. SQLO_LT_SQLB_PTBL__pool_table_latch というラッチを検索します。ハンドルが 123 のアプリケーションがそのラッチを保持または待機しています。
       CLOB('<application_handle>123</application_handle>
          <latch_name>SQLO_LT_SQLB_PTBL__pool_table_latch</latch_name>' )
  3. 競合するすべてのラッチを検索します。
       CLOB('<latch_status>C</latch_status>')
メンバー
データを返すメンバーを指定する、タイプ INTEGER の入力引数。 現在のメンバーの場合は -1 を指定します。 すべてのアクティブ・メンバーに -2 を指定します。

戻される情報

表 1. MON_GET_LATCH 表関数によって戻される情報
列名 データ・タイプ 説明
LATCH_NAME VARCHAR(256) latch_name - ラッチ名 : モニター・エレメント
MEMORY_ADDRESS VARCHAR(32) memory_address - メモリー・アドレス : モニター・エレメント
EDU_ID BIGINT edu_ID - エンジン・ディスパッチ可能単位 ID : モニター・エレメント
EDU_NAME VARCHAR(128) edu_name - エンジン・ディスパッチ可能単位名のモニター・エレメント
APPLICATION_HANDLE BIGINT application_handle - アプリケーション・ハンドル : モニター・エレメント

LATCH_STATUS 列の値が「H」の場合、APPLICATION_HANDLE は、ラッチを保持しているアプリケーションを表します。

LATCH_STATUS 列の値が「W」の場合、APPLICATION_HANDLE は、ラッチを待機しているアプリケーションを表します。

メンバー SMALLINT member - データベース・メンバー・モニター・エレメント
LATCH_STATUS CHAR(1) latch_status - ラッチ状況 : モニター・エレメント
LATCH_WAIT_TIME BIGINT latch_wait_time - ラッチ待機時間 : モニター・エレメント

この例のシナリオでは、MON_GET_LATCH 表関数を使用して、接続を持つデータベース内の、すべてのメンバーに関するすべてのラッチ情報を取得します。
  1. MON_GET_LATCH 表関数を呼び出して、接続を持つデータベース内の、すべてのメンバーに関するすべてのラッチ情報を取得します。
    SELECT SUBSTR(LATCH_NAME,1,40) LATCH_NAME,
          SUBSTR(MEMORY_ADDRESS,1,20) MEMORY_ADDRESS,
          EDU_ID,
          SUBSTR(EDU_NAME,1,20) EDU_NAME,
          APPLICATION_HANDLE,
          MEMBER,
          LATCH_STATUS,
          LATCH_WAIT_TIME
       FROM TABLE ( MON_GET_LATCH( NULL, -2 ) ) ORDER BY LATCH_NAME, LATCH_STATUS 
    この照会は、以下の出力を戻します。
    LATCH_NAME                               MEMORY_ADDRESS       EDU_ID               ...
    ---------------------------------------- -------------------- -------------------- ...
    SQLO_LT_SQLB_POOL_CB__ptfLotch           0x70000005351A440                   36114 ...
    SQLO_LT_SQLB_POOL_CB__readLotch          0x70000005351A3C0                   36114 ...
    SQLO_LT_SQLB_POOL_CB__readLotch          0x70000005351A3C0                   37911 ...
    SQLO_LT_SQLB_PTBL__pool_table_latch      0x70000004108B910                   37911 ...
    SQLO_LT_SQLB_PTBL__pool_table_latch      0x70000004108B910                   37654 ...
    SQLO_LT_SQLB_PTBL__pool_table_latch      0x70000004108B910                   37140 ...
    SQLO_LT_SQLE_KRCB__EDUChainLatch         0x780000000472EAC                   37397 ...
    SQLO_LT_preventSuspendIOLotch            0x7800000046081C0                   36114 ...
    SQLO_LT_sqeWLDispatcher__m_tunerLatch    0x780000001C68440                    1029 ...
    照会の出力 (続き):
    ... EDU_NAME             APPLICATION_HANDLE   MEMBER LATCH_STATUS LATCH_WAIT_TIME     
    ... -------------------- -------------------- ------ ------------ --------------------
    ... db2agent (SAMPLE)                     118      0 H                               -
    ... db2agent (SAMPLE)                     118      0 H                               -
    ... db2agent (SAMPLE)                     124      0 W                           65850
    ... db2agent (SAMPLE)                     124      0 H                               -
    ... db2agent (SAMPLE)                     121      0 W                           50397
    ... db2agent (SAMPLE)                     119      0 W                           30886
    ... db2agent (SAMPLE)                     120      0 H                               -
    ... db2agent (SAMPLE)                     118      0 H                               -
    ... db2wlmt                                 -      0 H                               -
    
          9 record(s) selected.
  2. MON_GET_LATCH 表関数を呼び出して、競合するラッチを判別します。
    SELECT SUBSTR(LATCH_NAME,1,40) LATCH_NAME,
          SUBSTR(MEMORY_ADDRESS,1,20) ADDRESS,
          EDU_ID,
          SUBSTR(EDU_NAME,1,20) EDU_NAME,
          APPLICATION_HANDLE,
          MEMBER,
          LATCH_STATUS,
          LATCH_WAIT_TIME
       FROM TABLE ( MON_GET_LATCH( CLOB('<LATCH_STATUS>C</LATCH_STATUS>'), -2 ) ) 
       ORDER BY LATCH_NAME, LATCH_STATUS
    
    この照会は、以下の出力を戻します。
    LATCH_NAME                               ADDRESS              EDU_ID               ...
    ---------------------------------------- -------------------- -------------------- ...
    SQLO_LT_SQLB_POOL_CB__readLotch          0x70000005351A3C0                   36114 ...
    SQLO_LT_SQLB_POOL_CB__readLotch          0x70000005351A3C0                   37911 ...
    SQLO_LT_SQLB_PTBL__pool_table_latch      0x70000004108B910                   37911 ...
    SQLO_LT_SQLB_PTBL__pool_table_latch      0x70000004108B910                   37654 ...
    SQLO_LT_SQLB_PTBL__pool_table_latch      0x70000004108B910                   37140 ...
    
    照会の出力 (続き):
    ... EDU_NAME             APPLICATION_HANDLE   MEMBER LATCH_STATUS LATCH_WAIT_TIME     
    ... -------------------- -------------------- ------ ------------ --------------------
    ... db2agent (SAMPLE)                     118      0 H                               -
    ... db2agent (SAMPLE)                     124      0 W                           78140
    ... db2agent (SAMPLE)                     124      0 H                               -
    ... db2agent (SAMPLE)                     121      0 W                           62686
    ... db2agent (SAMPLE)                     119      0 W                           43175
    
    
      5 record(s) selected.
  3. 上記出力は、アプリケーションで競合する 2 つのラッチを示しています。 SQLO_LT_SQLB_PTBL__pool_table_latch latch のみを取得するには、search_args 引数に latch_name 値を指定して、このラッチの競合アプリケーションを返します。
    SELECT SUBSTR(LATCH_NAME,1,40) LATCH_NAME,
          SUBSTR(MEMORY_ADDRESS,1,20) ADDRESS,
          EDU_ID,
          SUBSTR(EDU_NAME,1,20) EDU_NAME,
          APPLICATION_HANDLE,
          MEMBER,
          LATCH_STATUS,
          LATCH_WAIT_TIME
       FROM TABLE ( 
          MON_GET_LATCH( CLOB('<LATCH_STATUS>C</LATCH_STATUS>
                               <LATCH_NAME>SQLO_LT_SQLB_PTBL__POOL_TABLE_LATCH</LATCH_NAME>'), -2 ) 
                  ) 
       ORDER BY LATCH_NAME, LATCH_STATUS
    
    この照会は、以下の出力を戻します。
    LATCH_NAME                               ADDRESS              EDU_ID               ...
    ---------------------------------------- -------------------- -------------------- ...
    SQLO_LT_SQLB_PTBL__pool_table_latch      0x70000004108B910                   37911 ...
    SQLO_LT_SQLB_PTBL__pool_table_latch      0x70000004108B910                   37654 ...
    SQLO_LT_SQLB_PTBL__pool_table_latch      0x70000004108B910                   37140 ...
    
    照会の出力 (続き):
    ... EDU_NAME             APPLICATION_HANDLE   MEMBER LATCH_STATUS LATCH_WAIT_TIME     
    ... -------------------- -------------------- ------ ------------ --------------------
    ... db2agent (SAMPLE)                     124      0 H                               -
    ... db2agent (SAMPLE)                     121      0 W                           74956
    ... db2agent (SAMPLE)                     119      0 W                           55446
    
      3 record(s) selected.