dcdefchk
形式
dcdefchk 〔-r〕 〔-l〕 〔-c〕 〔-w〕 〔-e〕
機能
定義格納ディレクトリ($DCCONFPATHおよび$DCUAPCONFPATH)下のシステム定義ファイル(ドメイン定義ファイルを含む)に指定した値をチェックします。チェックする項目と処理の流れについては,「1.3.1 システム定義の作成と確認」を参照してください。
なお,定義チェックを行った結果,次に示すメッセージ区分を持ったメッセージが出力されます。ただし,出力される一部のメッセージについては,次の区分を持たない場合もあります。
- メッセージ区分
-
-
ERROR:OpenTP1の起動および停止ができない状態,または動作不完全となる問題を検出した場合に出力されます。
-
WARNG:推奨しない値が指定されていることを検出した場合に出力されます。
-
CHECK:オペランド値の妥当性について確認を促す場合に出力されます。
-
オプション
●-r
システム定義ファイルの構文チェックで誤りを検出した場合,コマンド処理を続行するかどうかを確認するメッセージ(KFCA00254-R)を出力します。
●-l
システム定義ファイルの論理チェックを実行します。
このオプションを指定してコマンドを実行する場合,事前にこのオプションを指定しないでコマンドを実行することをお勧めします。このときエラーメッセージ(メッセージの種類がE)が出力された場合は,そのエラーの対策を実施してください。対策を実施しないまま,このオプションを指定してコマンドを実行すると,エラーメッセージが複数回出力されることがあります。
●-c
システム定義ファイルの定義チェックで問題を検出した場合,メッセージ区分がCHECKに該当するメッセージは出力しません。
●-w
システム定義ファイルの定義チェックで問題を検出した場合,メッセージ区分がWARNGに該当するメッセージは出力しません。
●-e
システム定義ファイルの定義チェックで問題を検出した場合,メッセージ区分がERRORに該当するメッセージは出力しません。
出力メッセージ
メッセージID |
内容 |
出力先 |
---|---|---|
KFCA00200-E |
指定できないオプションを指定しています |
標準エラー出力 |
KFCA00253-I |
定義チェックコマンドを開始します |
標準出力 |
KFCA00254-R |
定義指定値にエラーがあります |
標準出力 |
KFCA00255-E |
コマンド実行中にエラーが発生しました |
標準エラー出力 |
KFCA00256-I |
ヘルプメッセージ |
標準出力 |
KFCA00257-E |
定義ファイル名と同じディレクトリがあります |
標準エラー出力 |
KFCA00258-I |
システムサービス定義としてset形式オペランドの構文チェックを行いました |
標準出力 |
KFCA00283-W |
定義チェック中にエラーが発生しました |
標準エラー出力 |
KFCA00284-W |
定義チェック中に軽度エラーが発生しました |
標準エラー出力 |
KFCA00285-W |
必須定義オペランドが指定されていません |
標準エラー出力 |
KFCA00286-W |
必須定義ファイルがありません |
標準エラー出力 |
注意事項
-
dcdefchkコマンドは,OpenTP1の動作中でも実行できます。その場合,確認するシステム定義の指定値は動作中のOpenTP1で有効な値ではなく,コマンド実行時にシステム定義に指定した値です。例えば,プロセスサービス定義に指定したprcsvpathの値をprcpathコマンドで変更しても,チェック対象の値はプロセスサービス定義に指定した値となります。
-
コマンドを実行する環境に設定した環境変数$DCDIRをOpenTP1ディレクトリとして使用します。そのため,dcstartコマンドを実行する環境に設定したOpenTP1ディレクトリパス名と異なる値を設定している場合,正しく定義チェックできません。
-
$DCCONFPATH,および$DCUAPCONFPATHに指定したディレクトリパスが50バイト以上の場合,構文チェックでエラーを検出したときに出力するメッセージ(KFCA00242-E)に出力される定義ファイル名が途中までしか出力されません。チェック対象の定義ファイルを50バイト以下のディレクトリパス名で示されるディレクトリにコピーし,$DCDIR/conf/envにputenv形式で指定する環境変数DCCONFPATHにコピー先ディレクトリを指定してdcdefchkコマンドを実行してください。
-
定義チェック対象としないファイルを定義格納ディレクトリに格納しないでください。システム定義格納ディレクトリ($DCCONFPATHおよび$DCUAPCONFPATH)下にシステム定義ファイル,ユーザサービス定義ファイル,およびユーザサービスデフォルト定義ファイル以外のファイルがあると正しく定義チェックできません。ただし,ドメイン定義ファイル格納ディレクトリ,およびドメイン定義ファイルは除きます。
-
システム定義格納ディレクトリ($DCCONFPATH,および$DCUAPCONFPATH)下にあるシステムサービス定義ファイル以外のファイルで,ファイル名が「.」や「_」で始まるファイル,およびファイル名が9バイト以上のファイルについては,チェックの対象外になります。
-
定義チェックの対象とする定義は,マニュアル「OpenTP1 システム定義」に記載している定義だけです。
-
OpenTP1ファイルの作成コマンド(jnlinitコマンドなど)を同時に実行しないでください。
-
構文チェックで定義の指定値に問題を検出した場合,論理チェックでは,該当する定義にデフォルト値が指定されていると解釈してチェック処理を進めます。
-
ファイルやディレクトリのアクセス権限チェックでは,dcdefchkコマンドを実行したユーザのUID/GIDに従ったアクセス権限をチェックします。
-
待機状態など,OpenTP1ファイルシステムにアクセスできない状態の場合,論理チェック時にメッセージを出力することがあります。
-
dcdefchkコマンドの定義チェック時に出力する一部のメッセージには,dcdefchkコマンド専用のメッセージ区分を持たないメッセージがあります。そのため,dcdefchkコマンドに-eオプションを指定しても,メッセージの種類がEであるメッセージを出力することがあります。
-
環境変数(putenv形式およびdcputenv形式の定義)は,正しく論理チェックできないことがあります。
-
dcdefchkコマンドは,定義チェックの対象とする定義をすべてコマンド内で解析し,チェックします。そのため,次のどちらかの場合に,システム定義ファイルの論理チェック(-lオプション指定)をすると,大量のメモリ(数百メガバイト)を消費するおそれがあります。
-
定義チェックの対象とするファイルが多い
-
チェックする定義オペランドが多い
dcdefchkコマンドの実行時にメモリ不足が発生した場合は,次に示す対策を実施してください。
定義格納ディレクトリ($DCCONFPATHおよび$DCUAPCONFPATH)に格納する定義チェック対象のファイル数を減らし,dcdefchkコマンドを実行してください。その後,定義チェックの対象とするファイルを複数回入れ替えて,dcdefchkコマンドを実行し,すべての定義をチェックしてください。
-