Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


2.9.11 重複するインデクスキー値を格納する際の実行中トランザクション終了待ち合わせ【4V FMB,SD FMB】

HiRDB/SDは,ルートレコードの格納時に,格納しようとしているレコードのインデクスキー値が,SDBデータベース中にすでに存在しないかどうかをチェックします。また,ルートレコードの更新時も,更新後のインデクスキー値が,SDBデータベース中にすでに存在しないかどうかをチェックします。

同じインデクスキー値が存在する場合は,ユニークエラーとすることで,追加されるインデクスキー値または更新後のインデクスキー値が一意であることを保証します。

4V FMBおよびSD FMBのSDBデータベースの場合で,2つのトランザクションから同じインデクスキー値を指定してルートレコードを格納または更新する際に,後発のトランザクションを即時ユニークエラーとしないで,先発のトランザクションが終了してからインデクスキー値が一意であるかどうかをチェックしたいときは,システム共通定義のpd_lock_uncommited_delete_dataオペランドにWAITを指定してください。

表2‒44 重複するインデクスキー値を持つレコードを格納または更新する際の動作(4V FMB,SD FMB)

レコード型の種類

システム共通定義

pd_lock_uncommited_delete_dataオペランド

同じインデクスキー値を指定してレコードを格納または更新する,後発のトランザクション

ルートレコード

NOWAIT

即時,ユニークエラーになります。1

WAIT

先発のトランザクションが終了したあと,ユニークエラーになります。※1,※2

ルートレコード以外

(凡例)

−:該当しません。

注※1

SDBデータベースを操作するAPIまたはDMLの実行を無視します。ただし,HiRDB/SDデータベースアクセスユティリティ(pdsdbexe)の場合,トランザクションを無効にします。

注※2

先発のトランザクションがロールバックした場合,レコードを格納します。

なお,4V AFMのSDBデータベースの場合,システム共通定義のpd_lock_uncommited_delete_dataオペランドの指定値に関係なく,先発のトランザクションの終了を待ち合わせします。