2017-09-11 18 views
0

enter image description hereOracle Databaseのドキュメント・ロック・モードの例

Oracle Databaseドキュメントでは、明示的なロックを確実に取得するこの2つのトランザクションの例を示します。私は間違いがあると信じています。第1(左側)のトランザクションがRSロックを取得してもボトム(右)トランザクションがSRXロックを取得できるはずです。

あなたの意見は?確かにエラーであることを確認したいだけです。ただ、テストを行って

Documentation link

答えて

1

、あなたの意見は正しいです。以下のように結果:

セッション1:

lock mode |  lock name    | permit | exclusion 
--------------|-------------------------------|----------|-------------- 
     2  |  Row Share    | 2,3,4,5 |  6 
     3  |Row Exclusive Table Lock  | 2,3  | 4,5,6 
     4  |  Share Table Lock   | 2,4  | 2,5,6 
     5  |Share Row Exclusive Table Lock | 2  | 3,4,5,6 
     6  | Exclusive Table Lock  |   | 2,3,4,5,6 

SQL> LOCK TABLE CENZHGL.LOCK_TEST IN ROW SHARE MODE; 
Table(s) locked 

セッション2:以下のように

SQL> LOCK TABLE CENZHGL.LOCK_TEST IN EXCLUSIVE MODE NOWAIT; 
ORA-00054 
SQL> LOCK TABLE CENZHGL.LOCK_TEST IN SHARE ROW EXCLUSIVE MODE NOWAIT; 
Table(s) locked 

Oracleのロックモデルミューテックスの関係

関連する問題