11.3.4 environment文(コマンド実行時の動作環境の指定)
environment文には,pdsdbdefコマンド実行時に必要な動作環境を指定します。
(1) 適用条件
次のどちらかの場合に,environment文を指定します。
-
SDB定義文ファイルの実行結果の出力ファイルを指定する場合
システム定義のpd_tmp_directoryオペランド,および環境変数TMPDIRを指定していない場合,作業用一時ファイル格納ディレクトリ($PDDIR/tmpディレクトリ)の容量不足を発生させないために,environment文のmsglogオペランドをできるだけ指定してください。
-
SDB定義文ファイルの実行時間を監視する場合※
注※ dirinf文の処理は監視対象ではありません。
(2) 形式
environment△〔msglog=実行結果ファイル名〕△〔exectime=実行監視時間〕
△は,空白またはタブを区切り文字として,1つ以上指定できることを示しています。
なお,msglog,exectimeと=の間に空白やタブなどの区切り文字を指定することもできます。
(3) 説明
- ●msglog=実行結果ファイル名
-
〜<パス名>
SDB定義文ファイルの実行結果を出力する,実行結果ファイルの名称を絶対パス名で指定します。実行結果の出力形式については,「11.10 実行結果ファイルの出力形式」を参照してください。
-
source文に指定したSDB定義文ファイルと同じファイル名は指定できません。
-
SDBディレクトリ情報ファイルの格納先ディレクトリにあるファイルと同じファイル名を指定すると,SDBディレクトリ情報ファイルが上書きされることがあるので,指定しないでください。
-
指定したファイル名が存在しない場合,指定したファイル名でファイルが作成されます。ただし,ディレクトリが存在しない場合はエラーとなります。
- 注意事項
-
指定したファイル名が存在する場合,そのファイルは上書きされます。pdsdbdefコマンドが正常終了しなかった場合は,原因を調査するため,必ず実行結果ファイルを退避してください。
なお,このオペランドを省略すると,次に示す形式でファイルが作成されます。ただし,絶対パス名が1,024バイト以上となる場合はエラーとなります。
/ディレクトリ名/SDBDEF-xxxxxxxxx
- ディレクトリ名:
-
pdsdbdefコマンド実行時,SDB制御文ファイルでファイル出力先を指定しない場合,次の表に示すディレクトリにファイルを出力します。
表11‒4 pdsdbdefコマンドがファイルを出力するディレクトリ 指定したディレクトリのアクセス可否
msglogの指定
あり
なし
システム定義のpd_tmp_directoryオペランドの指定
あり
なし
環境変数TMPDIRの指定
あり
なし
アクセス可
msglogに指定したファイル
pd_tmp_directoryに指定したディレクトリ
TMPDIRに指定したディレクトリ※2
$PDDIR/tmpディレクトリ
アクセス不可
エラー
$PDDIR/tmpディレクトリ※1
エラー
- SDBDEF-:
-
実行結果ファイルのプリフィクス
- xxxxxxxxx:
-
ファイル作成時間とプロセスIDを文字列に変換した値
8桁の16進数表記の現在日時+10進数表記のプロセスID(最大10桁)です。
-
- ●exectime=実行監視時間
-
〜<符号なし整数>((0〜3,600))≪0≫
pdsdbdefコマンドの実行時間を監視する場合に,その監視時間を分単位で指定します。
0を指定した場合は,実行時間は監視しません。
指定した監視時間内にpdsdbdefコマンドの処理が終了しなかった場合,pdsdbdefコマンドは強制終了します。その際,タイムアウト発生と強制終了のメッセージが出力され,次に示す原因調査用の障害情報が取得されます。
- 取得される障害情報
-
-
取得される障害情報の内容
pdlsコマンド(-d lck指定)の表示結果
pdlsコマンド(-d rpc -a指定)の表示結果
-
取得される障害情報の格納先
ディレクトリ:$PDDIR/tmp
作成ファイル名:pdsdbdefYYYYMMDDHHMMSSプロセスID.txt
-
このオペランドの値は,システム定義のpd_cmd_exec_timeオペランドの指定値よりも優先されます。
exectimeオペランドとシステム定義のpd_cmd_exec_timeオペランドとの関係を次の表に示します。
表11‒5 exectimeオペランドとシステム定義のpd_cmd_exec_timeオペランドの関係 exectimeオペランドの指定値
システム定義のpd_cmd_exec_timeオペランドの指定値
省略または0
指定値A
省略
−
指定値Aで監視
0
−
−
指定値B
指定値Bで監視
指定値Bで監視
pd_cmd_exec_timeオペランドについては,マニュアル「HiRDB システム定義」を参照してください。
-
実行時間監視(exectimeオペランド)の適用基準
監視時間を設定しておくことで,pdsdbdefコマンド実行中に何らかの障害(通信障害(一時的な障害を含む)やディスク障害など)が発生してpdsdbdefコマンドが無応答状態になった場合,pdsdbdefコマンドが異常終了します。このため,早期に障害を検知でき,回復処理に着手できます。
-
実行時間監視(exectimeオペランド)の指定値の目安
SDBディクショナリ情報やSDBディレクトリ情報の処理時間を基準に余裕を持った値を指定してください。例えば,7,8分程度で終了するpdsdbdefコマンドの実行時間を監視する場合は,exectime=10と指定しないで,exectime=20と指定するなどしてください。