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

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

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

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

  

先行トランザクション

独立性水準

SERIALIZABLE

REPEATABLE
READ

READ COMMITTED

READ UNCOMMITTED

SQL文の種類

SELECT

INSERT

UPDATE

DELETE

SELECT

INSERT

UPDATE

DELETE

SELECT

INSERT

UPDATE

DELETE

後続トランザクション

独立性水準

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

SQL文の種類

SELECT

INSERT

UPDATE

DELETE

SELECT

INSERT

UPDATE

DELETE

SELECT

INSERT

UPDATE

DELETE

後続トランザクション

独立性水準

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文と同じになります。