7.2.5 排他制御に関するオペランド(set形式)
- [32] adb_sys_lck_conflict_behavior ={NOWAIT|WAIT}
-
次に示す排他資源が確保できなかったときの排他制御を指定します。
-
前処理表(処理対象表が実表の場合に限ります)
-
処理対象表を格納しているデータ用DBエリア(adbdbstatusコマンドの場合,ディクショナリ用DBエリアおよびシステム表用DBエリアも該当します)
-
処理対象表
- ・NOWAIT
-
このオペランドの対象となる処理で上記の排他資源が確保できなかった場合,排他資源の競合によるエラー(KFAA40005-Eメッセージが出力)となります。
バージョン05-07以前と同じ排他制御にしたい場合は,NOWAITを指定してください。
なお,バージョン05-07以前から上記の排他資源をWAITモードがWAITで確保していた処理については,このオペランドにNOWAITを指定してもWAITモードがWAITのままとなります。
- ・WAIT
-
このオペランドの対象となる処理で上記の排他資源を確保できなかった場合,上記の排他資源を確保するまで処理が待ち状態になります。この場合,排他資源の競合によるエラーが発生しないため,このオペランドの対象となる処理を同時に実行することができます。
次のSQL文およびコマンドの処理がこのオペランドの対象となる処理です。このオペランドの指定値によって排他制御が変わります。
-
CREATE TABLE文,CREATE INDEX文
-
ALTER TABLE文
-
DROP TABLE文,DROP INDEX文,DROP SCHEMA文,DROP USER文
-
INSERT文,UPDATE文,DELETE文
-
PURGE CHUNK文
-
TRUNCATE TABLE文
-
adbimportコマンド(バックグラウンドインポートの実行時に限る)
-
adbdbstatusコマンド
-
adbchgchunkcommentコマンド,adbchgchunkstatusコマンド
上記以外のSQL文およびコマンドについては,このオペランドの指定値に関係なく同じ排他制御(バージョン05-07以前と同じ排他制御)が行われます。
- 重要
-
このオペランドにWAITを指定した場合,排他資源を確保できなかったときは上記のSQL文またはコマンドの処理が待ち状態になるため,SQL文またはコマンドの処理時間が長くなるおそれがあります。そのため,上記のSQL文またはコマンドの処理のタイムアウト時間の指定を検討してください。SQL文の場合は,クライアント定義のadb_clt_rpc_sql_wait_timeオペランドでタイムアウト時間を指定します。コマンドの場合は,各コマンドの--timeoutオプションでタイムアウト時間を指定します。
- [マルチノード機能]
-
マルチノード機能を使用する場合は,全ノードのHADBサーバでこのオペランドの指定値を同じにしてください。
-