dポイントプレゼントキャンペーン実施中!

作成したアプリケーション(SELECTを発行するだけ)が*LOCK開放待ち(?)でTimeOutが発生してしまいました。
他のAPPがどうもテーブルロックをしていたらしいのです。
どのAPPがいつからいつまでロックを掛けていたか?を
調査する方法を教えて下さい。
DB2のバージョンは8?OSはAIX5.x?
詳しく教えてもらえない・・・(原因は不明)すいません。

A 回答 (1件)

エラーの内容はSQL0911Nで理由コードは68ですか?


であれば、ロック・タイムアウトが起きていることになります。

他のAPPがテーブルロックをしていたというのは、予期しない動作なのでしょうか?
もしロックエスカレーション(行ロックが表ロックに変換される)が起きているようであれば、
MAXLOCKSやLOCKLISTを調整したほうが良いと思います。
あるいは予期していない分離レベルでアプリケーションが動作しているため、不必要なロックを取得しているかもしれません。
分離レベルはUR、CS、RS、RRのどれでしょうか。
ちなみに分離レベルCS以上であればSELECTがLOCKWAITなのは正しい動きだと思いますよ。

ここまで気になることをずらずらと書いてしまいましたが、以下本題に戻ります。
ロックのことは通常ロック・スナップショットで調査します。

(コマンド実行例)
db2 get snapshot for locks on sample

断続的にこのコマンドを実行することで、ロックの動きがわかると思います。(なれないうちは大変だと思いますが。)
    • good
    • 0
この回答へのお礼

有難うございます。そしてお礼が遅くなってすいませんでした・・・
質問に対しては初心者なんで・・・一気には回答できません、ごめんなさい。
コマンド実行例有難うございます。助かりました。

まだまだ勉強が必要です

お礼日時:2004/12/16 18:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A