Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


2.10.1 排他制御モード

排他制御モードの種類や同時実行の関係などについて説明します。

〈この項の構成〉

(1) 排他制御モードの種類

HADBサーバの排他制御モードには,複数の種類があります。

(2) 排他制御モードの同時実行の関係性(排他資源の確保の競合が発生したときの動作)

複数のトランザクションが同一の排他資源を確保しようとした場合,排他資源の確保の競合が発生します。競合が発生した場合,先発のトランザクションの排他制御モードと,後発のトランザクションの排他制御モードの組み合わせによって,トランザクションの同時実行可否が決まります。

同一の排他資源に対する,トランザクションと排他制御モードの同時実行の関係性について,次の表に示します。

表2‒12 トランザクションと排他制御モードの同時実行の関係性

先発のトランザクションの排他制御モード

後発のトランザクションの排他制御モード

SR

SU

PU

EX

共有参照モード(SR)

×

共有更新モード(SU)

×

×

保護更新モード(PU)

×

×

×

占有モード(EX)

×

×

×

×

(凡例)

○:先発のトランザクションと後発のトランザクションを同時に実行できます。

×:後発のトランザクションは実行できません。

上記の表で×の組み合わせの場合,後発のトランザクションは排他資源を確保できません。そのため,後発のトランザクションの動作は,次のどちらかになります。

詳細については,「2.10.4 確保される排他資源と排他制御モード」を参照してください。

注※

排他資源を確保できるまで待つ場合に,同一トランザクション内で確保中の排他資源に対して,次に示す事象が発生したときはエラーになります。

  • 確保中の排他資源に対する排他制御モードの遷移が発生したが,ほかのトランザクションと排他の競合が発生したため,排他制御モードの遷移ができないとき

なお,adbarchivechunkコマンドによるチャンクのアーカイブ処理の延長で,次に示す場合はエラーになりません。排他制御モードの遷移が完了するまで処理を待ちます。

  • 前処理表に対する排他を取得している際に,共有参照モード(SR)から占有モード(EX)に排他制御モードを遷移する場合

  • 処理対象表に対する排他を取得している際に,保護更新モード(PU)から占有モード(EX)に排他制御モードを遷移する場合

(3) 排他制御モードの遷移

1つのトランザクション内で同じ排他資源に対して,異なる種類の排他制御モードで続けて排他を取得した場合,次に示す表のとおりに排他制御モードが遷移します。

表2‒13 排他制御モードの遷移

最初に確保した排他制御モード

次に確保した排他制御モード

SR

SU

PU

EX

共有参照モード(SR)

SUに遷移する

PUに遷移する

EXに遷移する※1,※2

共有更新モード(SU)

PUに遷移する

EXに遷移する※2

保護更新モード(PU)

EXに遷移する※2

占有モード(EX)

SRに遷移する※3

PUに遷移する※4

(凡例)

−:遷移しません。

注※1

ALTER VIEW文の処理の延長で,次に示す排他資源を確保する場合に,占有モード(EX)に遷移します。それ以外の場合は,排他資源を確保するときにエラーになります。

  • 前処理表

注※2

adbarchivechunkコマンドの処理の延長で,次に示す排他資源を確保する場合に,占有モード(EX)に遷移します。それ以外の場合は,排他資源を確保するときにエラーになります。

  • 前処理表

  • DBエリア(処理対象表およびインデクスの格納処理)

  • 処理対象表

注※3

adbarchivechunkコマンドの処理の延長で,次に示す排他資源を確保する場合に,共有参照モード(SR)に遷移します。それ以外の場合は,排他制御モードは遷移しません。

  • 前処理表

  • DBエリア(処理対象表およびインデクスの格納処理)

注※4

adbarchivechunkコマンドの処理の延長で,次に示す排他資源を確保する場合に,保護更新モード(PU)に遷移します。それ以外の場合は,排他制御モードは遷移しません。

  • 処理対象表