MON_GET_LATCH 表関数 - 現行メンバー内のすべてのラッチのリスト
MON_GET_LATCH 表関数は、現行メンバー内のすべてのラッチのリストを戻します。
許可
以下のいずれかの権限が必要です。
- ルーチンに対する EXECUTE 特権
- DATAACCESS 権限
- DBADM 権限
- SQLADM 権限
デフォルトの PUBLIC 特権
なし
構文
スキーマは 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 パラメーターで使用する方法を示しています。- すべてのラッチを検索します。
CLOB( '' )
- 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>' )
- 競合するすべてのラッチを検索します。
CLOB('<latch_status>C</latch_status>')
- key は、開始タグを表すストリングです。 開始タグは、不等号括弧、キー名、タグの終わりを示す不等号括弧の順序で構成されます。 スペースは許可されていません。 開始タグの例は
- メンバー
- データを返すメンバーを指定する、タイプ INTEGER の入力引数。 現在のメンバーの場合は -1 を指定します。 すべてのアクティブ・メンバーに -2 を指定します。
戻される情報
列名 | データ・タイプ | 説明 |
---|---|---|
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 表関数を使用して、接続を持つデータベース内の、すべてのメンバーに関するすべてのラッチ情報を取得します。
- 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.
- 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.
- 上記出力は、アプリケーションで競合する 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.