ジオデータベースを格納するために設定する IBM Db2 パラメーターのほとんどは、ロックを処理する必要があります。
クライアント アプリケーションやデータベース設定によっては、デッドロックはめずらしい現象ではありません。ステート系統が深いと、この問題が悪化する場合があることに注意してください。Db2 には、ロックリストのサイズ (LOCKLIST)、アプリケーションのロックがロック リストに占める割合 (MAXLOCKS)、リクエストがロックの取得を待つ時間の長さ (LOCKTIMEOUT)、デッドロック検知の間隔 (DLCHKTIME)、およびデッドロックのロールバック (DB2LOCK_TO_RB) を制御するチューニング パラメーターがあります。
LOCKLIST および MAXLOCKS のデフォルト値は AUTOMATIC であり、これらのパラメーターはセルフ チューニングされます。そのため、Db2 のメモリ チューナでは、メモリ消費が異なるときにメモリ リソースのサイズが動的に決定されます。自動チューニングが動作するのは、データベースでセルフ チューニング メモリが有効 (SELF_TUNING_MEM=ON) な場合だけです。
ロック リストの設定を表示するには、次のコマンドを実行します。
db2 get db cfg
Max storage for lock list (4KB) (LOCKLIST) = 50
Interval for checking deadlock (ms) (DLCHKTIME) = 10000
Percent. of lock lists per application (MAXLOCKS) = 22
Lock time out (sec) (LOCKTIMEOUT) = -1
Max number of active applications (MAXAPPLS) = AUTOMATIC
- LOCKTIMEOUT
ロックの取得を試行する際に Db2 が待機する時間を設定するには、LOCKTIMEOUT を変更します。
- DLCHKTIME
デッドロックの検知間隔を調整するには、DLCHKTIME を変更します。
- DB2LOCK_TO_RB
DB2LOCK_TO_RB は、ロックを待機する時間が LOCKTIMEOUT を過ぎたときのトランザクションの動作を指定します。デフォルトでは、ロックがタイムアウトすると、リクエストされたトランザクションがロールバックします。Db2 のジオデータベースでは、このデフォルトの動作で十分です。
DB2LOCK_TO_RB レジストリ変数を確認するには、db2set を使用して「DB2LOCK_TO_RB=」を検索します。
これらのパラメーターの設定については、IBM Knowledge Center で Db2 のドキュメントをご参照ください。