データベースのロック

-nilog: IBM DB2 UDB (PC&Unix) デザイン・ガイド 第5章 ロック。この資料、もう配布されていないのかな。初版は2001年のものなのでだいぶ古いのだけど、いまだにデータベースのロックとISOLATIONレベルについて調べたくなると読んでいる気がする。 (2022-08-30)
--http://www.nilab.info/nilog/?type=twitter&id=1564403999855374338
--

-nilog: ISO定義とDB2での定義は違うらしいので注意が必要。 Lost Updates, Uncommitted Reads, Non Repeatable Reads, Phantom Reads. 『IBM DB2 UDB (PC&Unix) デザイン・ガイド 第5章 ロック』より (2022-08-30)
--http://www.nilab.info/nilog/?type=twitter&id=1564404849554309120
--

-DB2 UDB (PC&Unix) デザイン・ガイド 第5章 ロック
--http://www-06.ibm.com/software/jp/data/db2univ/data/v7dg_lock.pdf
--->1.ロックの必要性
--->2.ロックのしくみ
--->2−1.ロックの対象
--->2−2.ロックの保持期間
--->2−3.ロックの範囲
--->2−4.ロックのモード
--->2−5.ロックの互換性
--->2−6.ロックの変換
--->3.ロック・エスカレーション
--->4.ロック待機とロック・タイムアウト
--->5.デッドロック
--->6.ロックに関するモニタリング
--->7.Next Key Locking
--->8.ユーティリティーにおける排他制御
--->9.ロックを制御する指定
--->10.いろいろな機能とロック
--->11.Quiesce
--->12.ロックのまとめ
--->当資料の内容は、DB2 UDB V7.1を対象としたテスト結果からまとめたものです。
--->ロックの動作が将来にわたって不変であることは保証されないことを、ご了承下さい。

-ISO SQL Isolation Level: IBM DB2
--Serializable: RR (Repeatable Read) 反復可能読み取り
--Repeatable Read: RS (Read Stability) 読み取り固定
--Read Committed: CS (Cursor Stability) カーソル固定
--Read Uncommitted: UR (Uncommitted Read) 未コミット読み取り

-Java (JDBC) での IBM DB2 向けの設定
--Connection.TRANSACTION_READ_UNCOMMITED = Uncommitted Read(非コミット読取り)
--Connection.TRANSACTION_READ_COMMITTED = Cursor Stability(カーソル固定)
--Connection.TRANSACTION_REPEATABLE_READ = Read Stability(読み取り固定)
--Connection.TRANSACTION_SERIALIZABLE = Repeatable Read(反復可能読取り)
--Connection.TRANSACTION_NONE = DB2 UDBでは、サポートされておらず、指定するとエラー

-更新の紛失(Lost Updates)
-未コミットデータへのアクセス
-反復不可能読取り(Non Repeatable Reads)
-幻像読取り(Phantom Reads)