• 締切済み

DB2のロック調査

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

みんなの回答

  • ishi00
  • ベストアンサー率83% (10/12)
回答No.1

エラーの内容はSQL0911Nで理由コードは68ですか? であれば、ロック・タイムアウトが起きていることになります。 他のAPPがテーブルロックをしていたというのは、予期しない動作なのでしょうか? もしロックエスカレーション(行ロックが表ロックに変換される)が起きているようであれば、 MAXLOCKSやLOCKLISTを調整したほうが良いと思います。 あるいは予期していない分離レベルでアプリケーションが動作しているため、不必要なロックを取得しているかもしれません。 分離レベルはUR、CS、RS、RRのどれでしょうか。 ちなみに分離レベルCS以上であればSELECTがLOCKWAITなのは正しい動きだと思いますよ。 ここまで気になることをずらずらと書いてしまいましたが、以下本題に戻ります。 ロックのことは通常ロック・スナップショットで調査します。 (コマンド実行例) db2 get snapshot for locks on sample 断続的にこのコマンドを実行することで、ロックの動きがわかると思います。(なれないうちは大変だと思いますが。)

mo_aries
質問者

お礼

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

関連するQ&A