5.1.2 定義の規則
Datareplicatorの定義は,次の三つの形式で記述します。
- set形式
-
抽出システム定義,抽出環境定義,送信環境定義,反映システム定義,反映環境定義
- 構文形式
-
抽出定義,反映定義,更新情報定義
- ファイル独自の形式
-
二重化定義
抽出側HiRDBがパラレルサーバで,さらにHiRDBの環境変数(PDDIR,PDCONFPATH,SHLIB_PATHなど)にサーバマシンごとに異なる指定をしている場合には,抽出側Datareplicatorの定義の抽出システム定義では,環境変数に対するオペランドをサーバマシンごとに個別に定義できます。
抽出側HiRDBがパラレルサーバの場合には,抽出側Datareplicatorの定義の抽出環境定義と送信環境定義では,バックエンドサーバごとに環境を定義できます。
- 〈この項の構成〉
(1) set形式の定義の規則
-
定義文の1行の長さは,半角で80文字以内にしてください。80文字を超える場合は,改行の直前に継続符号「\」を記述し,複数行に分けて記述してください。また,継続行は1カラム目から記述してください。
-
コメントを記述する場合は,コメントの先頭に「#」を記述します。「#」以降から行末までがコメントになります。コメントは複数行に継続して記述できません。
-
各オペランドの記述順序に制限はありません。
-
同じオペランドを複数個指定すると,定義ファイルの中の最後に出現するオペランドが有効になります。
-
パラメタ名称だけを指定して,パラメタ値を指定していない場合は,パラメタ値不正のエラーとなります。
(2) 構文形式の定義の規則
-
コメントを記述する場合は,コメントの先頭に「 /* 」,末尾に「 */ 」を記述します。
-
コメントは複数行にわたって記述できます。ただし,「 / と * 」又は「 * と / 」は連続して記述してください。
-
文字列定数として「 ' 」(アポストロフィ)を記述する場合は,「 ' ' 」とアポストロフィを二つ記述することで一つの「 ' 」を表します。
-
Datareplicatorの予約語と同名の識別子を指定する場合は,識別子を「 " 」(ダブルクォーテーション)と「 " 」(ダブルクォーテーション)で囲んで指定してください。Datareplicatorの予約語については,「付録B Datareplicator定義の予約語」を参照してください。
-
最後に記述した定義文の文末には「;」(セミコロン)を指定してください。
(3) ファイル独自の形式の定義の規則
二重化定義の定義形式については,「5.7 二重化定義(抽出側)」又は「5.12 二重化定義(反映側)」を参照してください。
(4) サーバマシンごとの定義(抽出システム定義)
抽出側HiRDBがパラレルサーバで,さらにHiRDBの環境変数(PDDIR,PDCONFPATH,SHLIB_PATHなど)にサーバマシンごとに異なる指定をしている場合には,環境変数に対するオペランドをサーバマシンごとに個別に定義できます。サーバマシンごとの個別の定義を省略すると,そのサーバマシン下の抽出側Datareplicatorは,抽出側Datareplicatorのコマンドを実行するユーザの環境に対して設定した環境変数に従います。サーバマシンごとの定義の形式と規則を次に示します。
抽出側Datareplicatorは定義ファイルの解析時に,HDEPATH下に「定義ファイル名_tmp」という名称のワークファイルを,一時的に作成します。
(a) サーバマシンごとの定義形式
サーバマシンごとの定義形式を次の図に示します。
(b) サーバマシンごとの定義の規則
サーバマシンごとの定義の規則を次に説明します。
-
commondefで定義を開始する共通定義部とnodedef(ホスト名)で定義を開始する個別定義部で構成してください。共通定義部,個別定義部に定義できるオペランドについては,「5.2 抽出システム定義」を参照してください。
-
抽出側HiRDBがパラレルサーバで,さらにHiRDBの環境変数にサーバマシンごとに異なる指定をしている場合には,サーバマシンごとの環境変数に対するオペランドを個別定義部で定義してください。それ以外の場合は,個別定義部を省略できます。
-
共通定義部は定義ファイルの先頭に記述してください。
-
commondefは省略できます。commondefを指定しても省略しても,定義ファイルの先頭から最初のnodedefの前までが,共通定義部とみなされます。nodedef(ホスト名)の指定がない場合は,すべてが共通定義部になります。ただし,commondefを省略しても,省略できないオペランドは共通定義部に指定する必要があります。
-
同じnodedef(ホスト名)を指定した場合には,先に指定したnodedef(ホスト名)が有効になります。
-
nodedef(ホスト名)に,抽出側HiRDBの構成(系切り替え構成では,現用系の構成)に含まれないホスト名を指定した場合には,定義解析時にエラーになります。
-
commondefとnodedef(ホスト名)は,小文字の半角にしてください。
-
nodedef(ホスト名)のホスト名には,抽出対象HiRDBのシステム共通定義に指定されているpdunit文,又はpdstart文の-xオプションに指定されているホスト名のうち,個別定義の対象とするホスト名を指定してください。nodedef(ホスト名)を指定するときに,スペースを使わないでください。
(5) バックエンドサーバごとの定義(抽出環境定義,送信環境定義)
抽出側HiRDBがパラレルサーバの場合には,抽出環境定義と送信環境定義でバックエンドサーバごとに環境を定義できます。バックエンドサーバごとの定義の形式と規則を次に示します。
抽出側Datareplicatorは,定義ファイルの解析時にHDEPATH下に「定義ファイル名_tmp」という名称のワークファイルを,一時的に作成します。
(a) バックエンドサーバごとの定義の形式
バックエンドサーバごとの定義形式を次の図に示します。
(b) バックエンドサーバごとの定義の規則
バックエンドサーバごとの定義の規則を次に説明します。
-
commondefで定義を開始する共通定義部とbesdef(サーバ名)で定義を開始する個別定義部で構成してください。共通定義部では,各バックエンドサーバで共通の指定値にするオペランドを定義し,個別定義部では,バックエンドサーバごとに個別の指定値にするオペランドを定義してください。
-
すべてのバックエンドサーバに対する定義を同じにする場合には,共通定義部だけを指定してください。
-
共通定義部は定義ファイルの先頭に記述してください。
-
commondefは省略できます。commondefを指定しても省略しても,定義ファイルの先頭から最初のbesdef(サーバ名)の前までが,共通定義部になります。besdef(サーバ名)の指定がない場合は,すべてが共通定義部になります。
-
共通定義部と個別定義部の両方で,すべてのオペランドを定義できます。共通定義部と個別定義部の両方で同じオペランドを定義した場合,個別定義部に対応するバックエンドサーバは,個別定義部の指定値に従います。個別定義部に対応しないバックエンドサーバは,共通定義部の指定値に従います。個別定義部で定義されていないオペランドが共通定義部で定義されている場合,個別定義部に対応するバックエンドサーバでは,共通定義部での指定値に従います。
-
同じbesdef(サーバ名)を指定した場合には,先に指定したbesdef(サーバ名)が有効になります。
-
besdef(サーバ名)に,抽出側HiRDBの構成に含まれないサーバ名を指定した場合には,定義解析時にエラーになります。
-
commondefとbesdef(サーバ名)は,小文字の半角にしてください。
-
besdef(サーバ名)のサーバ名には,定義の対象とするバックエンドサーバのサーバ名を指定してください。besdef(サーバ名)を指定するときに,スペースを使わないでください。