2.9.8 SDB用UAP環境定義の指定による無排他検索機能【SD FMB】
SDB用UAP環境定義の指定によって,ページまたはサブページに排他を掛けないでレコードの検索および位置指示子の位置づけを実行できます。この機能をSDB用UAP環境定義の指定による無排他検索機能といいます。
SDB用UAP環境定義の指定による無排他検索機能は,次の指定をしてレコードの検索,または位置指示子の位置づけを実行した場合に適用されます。
-
SDB用UAP環境定義のsubschemaオペランドの-eオプションにnonprotectedを指定し,かつ-aオプションにretrieveを指定した場合
SDB用UAP環境定義の指定による無排他検索機能が適用されると,ページまたはサブページに対して排他を掛けないため,排他自動解除機能は適用されません。
SDB用UAP環境定義の指定による無排他検索機能は,SD FMBのSDBデータベースの場合に適用されます。
- 〈この項の構成〉
(1) SDB用UAP環境定義の指定による無排他検索機能の適用条件
SDB用UAP環境定義の指定による無排他検索機能は,レコードを参照した時点での,データの整合性を重視しない検索で使用するようにしてください。
(2) SDB用UAP環境定義の指定による無排他検索機能で排他を掛けない資源
SDB用UAP環境定義の指定による無排他検索機能で排他を掛けない資源は,レコードを格納するデータページ(ページまたはサブページ)だけです。それ以外の上位の排他資源については,「表2-37 排他制御のモードの組み合わせの例(SD FMBのSDBデータベースの場合)」に従って排他が掛けられます。
(3) SDB用UAP環境定義の指定による無排他検索機能を適用する際の留意事項
SDB用UAP環境定義の指定による無排他検索機能を適用する際の留意事項を次に示します。
-
SDB用UAP環境定義の指定による無排他検索機能を使用した場合,ほかのユーザが占有しているデータでも,排他解除を待たないで参照できます。一方で,同一トランザクション内で同じレコードを2度検索しても,結果が同じにならないことがあります。また,レコードを更新したユーザがそのトランザクションを取り消すと,データの整合性が取れていない状態のレコードを参照したことになります。
-
システム共通定義のpd_lock_uncommited_delete_dataオペランドにWAITを指定した場合でも,NOWAIT(省略値)を指定した場合と同様の動作となります。
-
ほかのトランザクションによるデータの更新との同時実行のタイミングによっては,検索が続行できなくなり,ロールバックされることがあります(システムからSQLCODEに-63005が返されます)。この場合は,トランザクションを再実行してください。