ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 アプリケーション開発ガイド(共通編)

1.1.8 資源の競合が起きた場合の制御

資源の競合が起きた場合に、どのタイミングまで占有待ちとなるのかは、トランザクションモードの指定によって異なります。以下に、トランザクションモードの指定と資源の占有について示します。

DSO定義でPRECEDENCE(1)が指定されたSEQUENTIAL構造の表の競合時の制御については、“1.1.12 PRECEDENCE(1)を指定したSEQUENTIAL構造の特徴と注意事項”を参照してください。

表1.13 占有の単位が行の場合

  

先行トランザクション

独立性水準

SERIALIZABLE

REPEATABLE
READ

READ COMMITTED

READ UNCOMMITTED

S
Q
L文の種類

S
E
L
E
C
T

I
N
S
E
R
T

U
P
D
A
T
E

D
E
L
E
T
E

S
E
L
E
C
T

I
N
S
E
R
T

U
P
D
A
T
E

D
E
L
E
T
E

S
E
L
E
C
T

I
N
S
E
R
T

U
P
D
A
T
E

D
E
L
E
T
E

後続トランザクション

独立性水準

SQL文
の種類

  

  

SERIALIZABLE

REPEATABLE READ

READ COMMITTED

SELECT

  

×

×

×

×

×

×

×

×

×

INSERT

UPDATE

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

READ UNCOMMITTED

SELECT

INSERT

UPDATE

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

○ : 待つことなく動作する

△ : 先行トランザクションのSQL文が以下のいずれかの場合は、先行トランザクションのSQL文の終了を待つ

× : トランザクションの終了を待つ

表1.14 占有の単位がページまたはDSIの場合

  

先行トランザクション

独立性水準

SERIALIZABLE

REPEATABLE
READ

READ COMMITTED

READ UNCOMMITTED

S
Q
L文の種類

S
E
L
E
C
T

I
N
S
E
R
T

U
P
D
A
T
E

D
E
L
E
T
E

S
E
L
E
C
T

I
N
S
E
R
T

U
P
D
A
T
E

D
E
L
E
T
E

S
E
L
E
C
T

I
N
S
E
R
T

U
P
D
A
T
E

D
E
L
E
T
E

後続トランザクション

独立性水準

SQL文の種類

  

  

SERIALIZABLE

REPEATABLE READ

READ COMMITTED

SELECT

  

×

×

×

×

×

×

×

×

×

INSERT

×

×

×

×

×

×

×

×

×

×

UPDATE

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

READ UNCOMMITTED

SELECT

INSERT

×

×

×

×

×

×

×

×

×

×

UPDATE

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

○ : 待つことなく動作する

△ : 先行トランザクションのSQL文が以下のいずれかの場合は、先行トランザクションのSQL文の終了を待つ

× : トランザクションの終了を待つ


先行トランザクションがカーソルのOPEN文を実行した場合は、カーソル宣言の更新可能性句の指定によって占有待ちの制御が異なります。

更新可能性句がREAD ONLYの場合は、SELECT文と同じになります。更新可能性句がFOR UPDATEの場合は、UPDATE文と同じになります。