サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
ugya.tripod.com
トランザクションの範囲を小さくする。 システム全体でリソースのアクセス順を同じにする。 A/B/CのリソースがあってP1とP2のプロセスが P1 A→C P2 B→C のようにアクセスすればデッドロックは起きなくなる。 リソースのことを「表」だけだと思うのは間違いである。 表のほかに、インデックス、外部キー、行もリソースの1つである。 外部キー(Foreign Key) 表Aに表Bへの外部キーが定義してある場合 表Aへの行のinsertは表Bのロックも発生する。 低レベルロック 行ロック(Row Level Lock/RLL)とページレベルロックの2種類ある。 DB2ではページレベルロックはないみたい。 行ロック リソースのアクセス順の話しで、ほとんどの人は表のアクセス順で思考停止している。 それぞれの行もリソースの1つになる。 1つの表を2つのトランザクションが複数の行を別の順に更新する
Oracleと違って、DB2を使ったアプリはデッドロックが多発するんだけどね この後Stingerで多くの局面的な解決方法が機能追加された この2003年のころほど致命的にはならない SQLステートメント DECLARE CURSORのWITH HOLDオプション CLOSEカーソルのWITH RELEASEオプション SELECTのFETCH n ROWS ONLY SET CURRENT ISOLATION (V8.1FP2) SET LOCKTIMEOUT (V8.2) SET KEEP UPDATE LOCKS (V8.2) レジストリー変数 DB2LOCK_TO_RB=STATEMENT ロックタイムアウトを起こしたステートメントだけをロールバック DB2_RR_TO_RS DB2_NO_PKG_LOCK DB2_EVALUNCOMMITTED (V8.1FP4) 条件に合致しな
このページを最初にブックマークしてみませんか?
『Bonaponta Software Pirepare』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く