13.1 概要

整合性チェックユティリティ(pdconstck)は,参照制約又は検査制約が定義された表に対して,整合性チェック及び検査保留状態の操作(設定又は解除)をするユティリティです。

<この節の構成>
(1) 前提条件
(2) pdconstck実行時の認可識別子

(1) 前提条件

(a) 動作条件

pdconstck実行時の前提条件を次の表に示します。

表13-1 pdconstck実行時の前提条件

項目前提条件
実行権限DBA権限を持つユーザ,又は表の所有者が実行できます。
RDエリアの状態pdconstckと処理対象RDエリアの状態の関係については,「付録C コマンド実行時のRDエリアの状態」を参照してください。
同時実行同一表に対するpdconstckの同時実行はできません。同時実行した場合,該当する表の資源種別名TABL(資源種別:0002)とDICT(資源種別:3005)間でデッドロックとなることがあります。
対象となる表が異なる場合は,pdconstckを同時実行できます。ただし,検査保留状態を変更する場合,排他待ちとなります。
最大同時実行数pdconstckの最大同時実行数は,pd_max_usersオペランドの指定値÷2となります。
資源数pdconstckは,対象表及び外部キーが参照する被参照表に対して排他を掛けます。そのため,次のシステム定義の指定値に注意してください。
  • 同時アクセス可能実表数
    システム定義のpd_max_access_tablesオペランドには,(対象表の外部キー数+1)以上の値を指定してください。
  • 1サーバ当たりのUNTIL DISCONNECT指定の排他表及びRDエリア数の総和
    システム定義のpd_lck_until_disconnect_cntオペランドには,次の計算式X以上の値を指定してください。
    X=(2+処理対象表の外部キー数+処理対象表の格納RDエリア数
    +外部キーが参照する主キーの表の格納RDエリアの総数)
  • サーバ当たりの排他制御用プールサイズ
    システム定義のpd_lck_pool_sizeオペランドには,↑Y÷x↑キロバイト以上の値を指定してください。
    HiRDB/シングルサーバの場合:
    Y=209+A+f+(a+c+(d×b))
    HiRDB/パラレルサーバの場合:
    ・ディクショナリサーバ
     Y=209+A+(a+c+(d×b))
    ・フロントエンドサーバ
     Y=2+f
    ・バックエンドサーバ
     Y=(d×b)
(凡例)
a:表格納用RDエリア数
b:インデクス格納用RDエリア数
c:LOB列格納用RDエリア数
d:インデクス数
f:処理対象表及び外部キーが参照する主キーの表に定義されたプラグイン数
x:32ビットモードのHiRDBの場合は6,64ビットモードのHiRDBの場合は4
A:MAX(表の列数,表のインデクス数,表格納用RDエリア数,表の外部キー数,表の検査制約数)
検査保留状態の遷移システム定義のpd_check_pendingオペランドの指定に関係なく,pdconstckの実行によって検査保留状態は遷移します。
(b) 動作環境

pdconstckの動作環境を次の表に示します。

表13-2 pdconstckの動作環境

項目動作環境
HiRDB環境コマンド実行場所pdconstckは,シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。
サーバの状態pdconstckを実行する場合,次のサーバが稼働していなければなりません。
HiRDB/シングルサーバの場合:シングルサーバ
HiRDB/パラレルサーバの場合:ディクショナリサーバ,フロントエンドサーバ,及びバックエンドサーバ(マルチフロントエンドサーバの場合,一つ以上のフロントエンドサーバが稼働中である必要があります)
環境変数
PDDIR
PDDIR環境変数に,絶対パス名でHiRDB運用ディレクトリを設定してください。
PDCONFPATHPDCONFPATH環境変数に,絶対パス名でHiRDBシステム定義ファイルを格納するディレクトリを設定してください。
OS環境-oオプションで指定するファイル及びディレクトリpdconstck実行ユーザに対してアクセス権限を与えてください。
なお,-oオプションを省略した場合は,表13-3に示すディレクトリにファイルを作成すると解釈されるため,同様にアクセス権限を与えてください。また,パス名は大文字と小文字を区別しません。このため,大文字と小文字が異なるだけの同じパス名を指定した場合は,上書きされます。

表13-3 pdconstckがファイルを出力するディレクトリ

-oオプションの指定システム定義のpd_tmp_directoryオペランドの指定
ありなし
環境変数TMPの指定
ありなし
あり-oオプションに指定したディレクトリ
なしpd_tmp_directoryに指定したディレクトリTMPに指定したディレクトリ%PDDIR%¥tmpディレクトリ
注※ コマンド実行環境の環境変数の指定

(2) pdconstck実行時の認可識別子

pdconstck実行時には,HiRDBに接続する認可識別子,並びに処理対象表及び制約名称の認可識別子を指定できます。HiRDBに接続する認可識別子,並びに処理対象表及び制約名称の認可識別子を次の表に示します。

表13-4 HiRDBに接続する認可識別子,並びに処理対象表及び制約名称の認可識別子

指定条件HiRDBとの接続処理対象表又は制約名称の認可識別子
HiRDBに接続する認可識別子(-uオプション)環境変数PDUSER処理対象表又は制約名称の認可識別子(-t又は-cオプション)認可識別子パスワード
識別子パスワード
指定あり指定あり指定あり指定あり-uオプションで指定した認可識別子応答付きメッセージに対して入力-t又は-cオプションで指定した認可識別子
指定なし-uオプションで指定した認可識別子
省略指定あり-t又は-cオプションで指定した認可識別子
指定なし-uオプションで指定した認可識別子
環境変数PDUSER省略指定あり-t又は-cオプションで指定した認可識別子
指定なし-uオプションで指定した認可識別子
指定なし指定あり指定あり指定あり環境変数PDUSERに指定した認可識別子環境変数PDUSERに指定したパスワード-t又は-cオプションで指定した認可識別子
指定なし環境変数PDUSERに指定した認可識別子
省略指定あり省略-t又は-cオプションで指定した認可識別子
指定なし環境変数PDUSERに指定した認可識別子
環境変数PDUSER省略指定ありログインウィンドウのユーザ名(認可識別子)応答付きメッセージに対して入力-t又は-cオプションで指定した認可識別子
指定なしログインウィンドウのユーザ名(認可識別子)
注※
パスワード入力要求の応答付きメッセージが表示されます。応答付きメッセージに対して,パスワードを入力してください。なお,応答付きメッセージに対して空送信した場合,パスワードを省略したと解釈されます。