スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)
- 実行者 HiRDB管理者
pd_lck_deadlock_infoオペランドにYを指定している場合,排他資源管理テーブル不足が発生すると,HiRDBはKFPS00443-Iメッセージと,排他資源管理テーブル情報を出力します。排他資源管理テーブル情報は,排他資源管理テーブル不足が発生したユニットのディレクトリ($PDDIR/spool/pdlckinf)に出力されます。HiRDB管理者はその情報を参照して,排他資源管理テーブル不足解消のための対策を立ててください。
注 排他制御処理の分散を適用している場合は,「排他資源管理テーブル」を「排他制御用プールパーティション」に読み替えてください。
- <この節の構成>
- (1) 排他資源管理テーブル情報のファイル名は
- (2) 排他資源管理テーブル情報の出力内容
- (3) 調査方法
- (4) 対策方法
排他資源管理テーブル情報は,排他資源管理テーブル不足が発生するたびにファイルに出力されます。出力ファイル名は,「出力日時.mem」となります。memはファイル記述子です。例えば,10月3日9時16分2秒に,排他資源管理テーブル不足が発生すると,その出力ファイル名はOct3091602.memとなります。ファイル名は,KFPS00447-Iメッセージに表示されます。
- ●不要な排他資源管理テーブル情報ファイルを削除しましょう
- HiRDBは排他資源管理テーブル情報ファイルを削除しません。したがって,HiRDB管理者は不要となった排他資源管理テーブル情報ファイルを(OSのrmコマンドなどで)削除してください。rmコマンドについては,OSのマニュアルを参照してください。
排他資源管理テーブル情報の出力内容を次の図に示します。
図8-12 排他資源管理テーブル情報の出力内容
- 〔説明〕
- (1)排他資源管理テーブル不足の検知日時(月 日 時:分:秒 西暦)
- (2)不足した排他資源管理テーブルの種別(次のどちらかを出力します)
- RESOURCE
使用する資源名称を管理するときに使用するテーブルです。複数ユーザで共有します。そのため,全ユーザの使用しているテーブルの合計数がテーブルの総数を超えることがあります。
- OCP/WAIT
共有,待ちの状態を管理するときに使用するテーブルです。複数ユーザで共有しません。
- RESOURCEとOCP/WAITの違いを次に示します。
- (3)使用できる排他資源管理テーブルの総数
- 排他資源管理テーブル不足が発生したユーザの情報
- (4)UAP識別情報 ※1
- (5)サーバ名
- (6)プロセスID
- (7)トランザクション識別子
- (8)ユーザ識別通番
- (9)デッドロックプライオリティ値
- (10)クライアントのIPアドレス ※3
- (11)クライアントのプロセスID ※2,※3
- (12)現在使用しているテーブル数
- 排他資源管理テーブル不足が発生したときのほかのユーザの情報(排他資源管理テーブル使用率が10%以上のユーザ)
- (13)UAP識別情報 ※1
- (14)サーバ名
- (15)プロセスID
- (16)トランザクション識別子
- (17)ユーザ識別通番
- (18)デッドロックプライオリティ値
- (19)クライアントのIPアドレス ※3
- (20)クライアントのプロセスID ※2,※3
- (21)現在使用しているテーブル数
- 排他資源管理テーブル不足が発生したときのほかのユーザの情報(排他資源管理テーブル使用率が10%未満のユーザ)
- (22)排他資源管理テーブルの使用率が10%に満たないユーザの数
- 注※1
- CONNECTしていたクライアントUAPの名称を30バイトで表示します。
- ここで表示する情報はpdls -d prcやpdls -d trnで出力されるPROGRAMに該当します。ただし,一部のユティリティは表示できません。この場合,「********」が表示されます。また,再開始処理でトランザクションを回復中のときは"Rerun"を表示します。
- 注※2
- CONNECTしていたクライアントUAPがリンケージしているクライアントライブラリのバージョンがHiRDB Version 4.0 04-00より前の場合,及びType4 JDBCドライバから接続している場合は,プロセスIDに0が表示されます。
- 注※3
- バックエンドサーバ及びディクショナリサーバでは,表示できないことがあります。表示できない場合,クライアントのIPアドレスは「*.*.*.*」,プロセスIDは0を表示します。
排他資源管理テーブル情報の次の情報を参照します。
- (3)使用できる排他資源管理テーブルの総数
- (21)現在使用しているテーブル数
この情報から,どのUAPがどれだけの排他資源管理テーブルを使用しているかが分かります。排他資源管理テーブルの使用数は,UAPが行う排他要求数と一致します。したがって,「(21)現在使用しているテーブル数」の値が大きいUAPは,不当に多くの排他要求をしている可能性があります。UAPが行う排他要求数はSQLによって異なります。各SQLの排他要求数(排他資源数の見積もり)については,マニュアル「HiRDB Version 8 システム定義」を参照してください。
(a) 不当に多くの排他要求を行っているUAPがある場合
多くの排他要求をしないようにUAPを修正してください。
また,クライアント環境定義のPDLOCKLIMITオペランドを指定すると,1UAPの排他要求数の上限を設定できます。
(b) 不当に多くの排他要求を行っているUAPがない場合
排他資源管理テーブル数が少な過ぎると思われます。次に示すどちらかの対策をとってください。
- ●ユニットで使用する共用メモリに余裕がない場合(共用メモリを大きくできない場合)
- 排他資源管理テーブル数をたくさん使用するUAPを同時に実行しないでください。
- ●ユニットで使用する共用メモリに余裕がある場合(共用メモリを大きくできる場合)
- HiRDBシステム定義を修正します。修正するオペランドはサーバの種類によって異なります。排他資源管理テーブルが不足したサーバは,排他資源管理テーブル情報の「(5)サーバ名」を参照すれば分かります。
- 排他資源管理テーブルが不足したサーバがフロントエンドサーバの場合は,エラーが発生したフロントエンドサーバ定義のpd_fes_lck_pool_sizeオペランドの値を大きくしてください。
- 排他資源管理テーブルが不足したサーバがフロントエンドサーバ以外の場合は,エラーが発生したサーバ定義のpd_lck_pool_sizeオペランドの値を大きくしてください。
- 注意
- HiRDBシステム定義を変更する場合は,HiRDB全体又は変更する定義があるユニットを正常終了させてください。その後,HiRDBシステム定義を変更してください。pdstop -sで該当するサーバだけを正常終了させても変更した定義は有効になりません。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.