Hitachi

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


2.10.4 確保される排他資源と排他制御モード

確保される排他資源と排他制御モードを次の表に示します。

各排他資源の詳細については,「表2‒14 排他資源の一覧」を参照してください。また,各処理の排他制御の例については,「2.10.7 排他制御の例」を参照してください。

表2‒15 確保される排他資源と排他制御モード

処理内容

排他資源

シングルコネクション※16

ディクショナリ

前処理表

DBエリア

データ用DBエリア

ディクショナリ用DBエリア

システム表用DBエリア

処理対象表

ディクショナリ表

システム表(コスト情報)

システム表(チャンク情報)

システム表(同義語辞書情報)

定義系SQLの実行

次のSQL文以外の定義系SQLを実行する場合

  • CREATE VIEW

  • ALTER VIEW

  • CREATE AUDIT

  • DROP AUDIT

EX(WAIT)

EX

EX

SR

SR

EX

EX

SR

SR※2

CREATE VIEW文を実行する場合

EX(WAIT)

EX※1

SR

SR

SR(WAIT)とEX※14

SR

SR

ALTER VIEW文を実行する場合

EX(WAIT)

SR(WAIT)とEX※1,※18

SR

SR

SR(WAIT)とEX※14

SR

SR

CREATE AUDIT文とDROP AUDIT文を実行する場合

EX(WAIT)

EX

EX

SR

SR

EX

SR

検索系SQLの実行

SR(WAIT)※3

SR(WAIT)※4,※5,※6

SR(WAIT)

SR

SR※7

SR

INSERT文,UPDATE文,およびDELETE文の実行

更新対象表の場合

SR(WAIT)※3

SU※4,※5,※6

SU

SR(WAIT)

SR

SR※7

SR

更新対象表以外の場合

SR(WAIT)※3

SR(WAIT)※4,※5,※6

SR(WAIT)

SR

SR※7

SR

TRUNCATE TABLE文の実行

SR(WAIT)

EX

SR※17

EX

SR(WAIT)

SR

SR※17

PURGE CHUNK文の実行

更新対象表の場合

SR(WAIT)

EX

SR

EX

SR(WAIT)

SR

SR※15

SR

更新対象表以外の場合※8

SR(WAIT)※3

SR

SR(WAIT)

SR

SR※15

SR

adbimportコマンドの実行

バックグラウンドインポート機能を適用する場合

SR

SR(WAIT)

PU

SR

SR(WAIT)

SR(WAIT)

SR

SR

バックグラウンドインポート機能を適用しない場合

SR

SR(WAIT)

EX

SR※9

EX(WAIT)

SR(WAIT)

SR

SR※9

adbidxrebuildコマンドの実行

バックグラウンドインポートの中断後に実行した場合※10

SR

SR(WAIT)

EX

SR

SR(WAIT)

SR(WAIT)

SR

SR

バックグラウンドインポートの中断後以外に実行した場合

SR

SR(WAIT)

EX

EX(WAIT)

SR(WAIT)

SR

adbgetcstコマンドの実行

SR

SR(WAIT)

EX

SR

SR(WAIT)

SR(WAIT)

SR

adbdbstatusコマンドの実行

DBエリアのサマリ情報を出力する場合

SR

SR(WAIT)

--shared-lockオプションを指定して情報を出力する場合,または再編成要否の情報を出力する場合

SR

SR※19

SR※19

SR(WAIT)

上記以外の場合

SR

SR※19

EX

EX

EX

SR(WAIT)

SR

SR

adbmodareaコマンドの実行

EX

SR(WAIT)

adbexportコマンドの実行※11

SR

SR(WAIT)※3

SR(WAIT)

SR(WAIT)

SR

SR※7

SR

adbmergechunkコマンドの実行

SR

SR(WAIT)

EX

SR

SU(WAIT)

SR(WAIT)

SR

SR

adbchgchunkcommentコマンドの実行

SR

SR(WAIT)

EX

SR

SR(WAIT)

SR(WAIT)

SR

SR

adbchgchunkstatusコマンドの実行

SR

EX(WAIT)

EX

SR

EX(WAIT)

SR(WAIT)

SR

SR

adbarchivechunkコマンドの実行

SR

SR(WAIT)とEX(WAIT)※12,※13

SRとEX※12

SR

PUとEX(WAIT)※12,※13

SR(WAIT)

SR

SR

adbunarchivechunkコマンドの実行

SR

SR(WAIT)

EX

SR

EX(WAIT)

SR(WAIT)

SR

SR

adbreorgsystemdataコマンドの実行

SR

SR(WAIT)

EX

PU

SR(WAIT)

SR

adbclientdefmangコマンドの実行

SR

SR(WAIT)

adbsyndictコマンドの実行

同義語辞書の登録,更新,または削除の場合

SR

SR

SR

同義語辞書ファイルの同期,同義語一覧の出力,または不要なファイルの削除の場合

SR

SR

adbaudittrailコマンドの実行

SR

SR(WAIT)

adbconvertaudittrailfileコマンドの実行

SR

SR(WAIT)

adbmodbuffコマンドの実行

SR

(凡例)

−:排他資源を確保しません。

EX:占有モード(EX)で排他資源を確保します。

PU:保護更新モード(PU)で排他資源を確保します。

SU:共有更新モード(SU)で排他資源を確保します。

SR:共有参照モード(SR)で排他資源を確保します。

WAIT:排他資源を確保できるまで待ち状態になります。

注※1

ビュー表の基表に対しては共有参照モード(SR)で排他を取得します。その際,排他資源を確保できない場合は,排他資源を確保できるまで待ち状態(WAIT)になります。

注※2

CREATE TABLE文を実行してマルチチャンク表を作成した場合,および,DROP TABLE文を実行してマルチチャンク表を削除した場合に,排他資源を確保します。

また,DROP SCHEMA文などの定義系SQLを実行して,処理の延長でマルチチャンク表が削除された場合にも,排他資源を確保します。

注※3

処理対象表がアーカイブマルチチャンク表の場合,処理対象表およびシステム表(STATUS_CHUNKS)に対する排他が確保されます。ただし,処理対象表に対してINSERT文を実行する場合は該当しません。

注※4

同一トランザクション内で,保持機能にHOLD_CURSORS_OVER_COMMITを指定して作成したResultSetオブジェクトがある場合,コミットしても排他資源は解放されません。そのResultSetオブジェクトをクローズしたあとに,コミットすると解放されます。なお,ロールバックした場合は排他資源は解放されます。

注※5

SQL文の実行時にエラーが発生した場合,そのトランザクションが確保した排他資源はトランザクションが終了するまで解放されません。

注※6

複数の排他資源を確保するトランザクションが,排他資源の競合によってエラーとなった場合,エラー発生前までに確保していた排他資源はそのトランザクションが終了するまで解放されません。

注※7

処理対象表がアーカイブマルチチャンク表のときだけ,排他資源を確保します。

注※8

PURGE CHUNK文の探索条件に副問合せを指定して実行した場合に,副問合せに含まれる表を指します。

注※9

マルチチャンク表に対して,-dオプションまたは-mオプションを指定してadbimportコマンドを実行したときだけ,排他資源を確保します。

注※10

バックグラウンドインポート機能を適用した(-bオプションを指定した)adbimportコマンドの中断後に,--create-temp-fileオプションを指定してadbidxrebuildコマンドを実行した場合を指します。

注※11

adbexportコマンドを実行すると,処理の延長で検索系SQLが実行されます。そのため,検索系SQLと同様の排他資源も確保されます。

注※12

adbarchivechunkコマンドによる処理の延長で,排他制御モードの遷移が発生します。排他制御モードの遷移後,占有モード(EX)で排他資源が確保されます。

注※13

adbarchivechunkコマンドの実行時に,排他制御モードの遷移が発生した場合は,遷移によって排他資源に対する確保待ちが発生することがあります。確保待ちが発生した場合,ほかのコネクションによる排他資源の確保が優先されることがあります。

注※14

前処理時は,共有参照モード(SR)で排他資源を確保します。その際,排他資源を確保できない場合は,排他資源を確保できるまで待ち状態(WAIT)になります。

また,実行時は,占有モード(EX)で排他資源を確保します。

注※15

更新対象表以外の表にアーカイブマルチチャンク表が含まれる場合は,前処理時に排他資源を確保します。それ以外の場合は,実行時に排他資源を確保します。

注※16

対象のコマンドを実行した場合に,排他資源を確保します。また,APがHADBサーバに接続した場合にも,排他資源を確保します。APがHADBサーバに接続した場合は,共有参照モード(SR)で排他資源を確保します。

注※17

処理対象表がマルチチャンク表のときだけ,排他資源を確保します。

注※18

ALTER VIEW文を実行すると,排他制御モードの遷移が発生します。排他制御モードの遷移後,占有モード(EX)で排他資源が確保されます。

注※19

adbdbstatusコマンドの対象がインデクスである場合は,インデクスが定義された表に対して排他を取得します。

adbdbstatusコマンドの対象がDBエリアである場合は,対象のDBエリアに格納された表,および対象のDBエリアに格納されたインデクスが定義されている表に対して,排他を取得します。

上記の表の見方を,検索系SQLを実行した場合を例にして説明します。

検索系SQLを実行した場合

アーカイブマルチチャンク表に対して検索系SQLを実行すると,次に示す排他資源を共有参照モード(SR)で確保します。

  • 前処理表

  • 処理対象表

  • ディクショナリ表

  • システム表(コスト情報)

  • システム表(チャンク情報)

  • システム表(同義語辞書情報)

上記の排他資源を,共有参照モード(SR),共有更新モード(SU),および保護更新モード(PU)で確保する処理は実行できます。例えば,adbgetcstコマンドは実行できます。

ただし,上記の排他資源を,占有モード(EX)で確保する処理は実行できません。例えば,定義系SQL,TRUNCATE TABLE文などは実行できません。