1.3.1 システム定義の作成と確認
(1) dcdefchkコマンドでチェックできる内容
dcdefchkコマンドを実行すると,次に示すチェックが行われます。
(a) システム定義の構文チェック
システム定義の構文チェックでは,次の内容をチェックします。
- 各オペランドに指定した値が指定できる文字かどうか。
- 各オペランドに指定した値が最小値,または最大値を超えていないかどうか。
- 定義コマンドに不正なオプションが指定されていないかどうか。
- 定義コマンドに指定したコマンド引数,およびフラグ引数が指定できる文字かどうか。
- 定義コマンドに指定したコマンド引数,およびフラグ引数が最小値,または最大値を超えていないかどうか。
(b) システム定義の論理チェック
システム定義の論理チェックでは,オペランドまたは定義コマンドに指定した値がOpenTP1を運用する上で問題ないかなどをチェックします。主に次の内容をチェックします。
- 複数のオペランドまたは定義コマンド間にわたる指定内容の相関関係に問題がないかどうか。
- オペランドまたは定義コマンドに指定した値が推奨値かどうか。
- オペランドまたは定義コマンドに指定したファイルおよびディレクトリのアクセス権限に問題がないかどうか。
(c) OpenTP1ファイルのチェック
OpenTP1ファイルのチェックでは,システム定義に指定したOpenTP1ファイルが正しいファイルかどうかをチェックします。
(2) dcdefchkコマンドのチェック処理の流れ
dcdefchkコマンドのチェック処理の流れを次に示します。
- オペランドの構文チェック
定義格納ディレクトリ下のシステム定義ファイルに対して,オペランドの構文チェックを行います。チェックの順序は,次のとおりです。
1. $DCCONFPATH下にあるシステム定義ファイル
2. $DCUAPCONFPATHが指定されている場合,$DCUAPCONFPATH下にあるユーザサービス定義ファイルまたはユーザサービスデフォルト定義ファイル
- KFCA00258-Iメッセージの出力
1.の構文チェックを行った定義ファイルの一覧をKFCA00258-Iメッセージに出力します。このとき,システムサービス定義としてチェックを行ったファイルだけを出力します。ユーザサービス定義としてチェックを行ったファイルは出力しません。
- KFCA00254-Rメッセージの出力
dcdefchkコマンドに-rオプションが指定されている場合に,1.の構文チェックエラーを検出すると,KFCA00254-Rメッセージを出力します。KFCA00254-Rメッセージは,コマンド処理を続行するか停止するかを選択するためのメッセージです。
- システム定義(ユーザサービス定義以外)に指定した定義コマンドの構文チェック(論理チェックを一部含む)
定義格納ディレクトリ($DCCONFPATH,$DCUAPCONFPATHで示されるディレクトリ)下のシステム定義に対して,定義コマンドの構文チェックを行います(論理チェックを一部含む)。
なお,この処理以降では,次に示すメッセージ区分を持ったメッセージを出力します。ただし,一部メッセージ区分を持たないメッセージを出力することもあります。
- メッセージ区分
- ERROR:OpenTP1の起動および停止ができない状態,または動作不完全となる問題を検出した場合に出力します。
- WARNG:推奨しない値が指定されていることを検出した場合に出力します。
- CHECK:指定された定義の妥当性について確認を促す場合に出力します。
- システム定義(ユーザサービス定義以外)の論理チェック
定義格納ディレクトリ下のシステム定義に指定されている定義の論理チェックを行います。
- ユーザサービス定義に指定した定義コマンドの構文チェック(論理チェックを一部含む)
定義格納ディレクトリ下のユーザサービス定義に指定されている定義コマンドの構文チェックを行います(論理チェックを一部含む)。
- ユーザサービス定義の論理チェック
定義格納ディレクトリ下のユーザサービス定義に指定されている定義の論理チェックを行います。
チェック処理の流れの順番を次の表に示します。表内の番号は,チェック処理の流れの順番と対応しています。なお,OpenTP1ファイルのチェックは,dcdefchkコマンドのチェック処理の流れの4.および5.で行っています。
表1-2 dcdefchkコマンドのチェック処理の流れ
チェック種別 | オペランド (set形式) | 定義コマンド(コマンド形式) |
---|
ユーザサービス定義以外 | ユーザサービス定義 |
---|
構文チェック | 1. | 4. | 6. |
論理チェック | 5.および7. | 4.および5. | 6.および7. |
(3) 注意事項
- 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バイト以上のファイルについては,チェックの対象外になります。
- dcdefchkコマンドが定義チェックの対象とするオペランドは,マニュアル「OpenTP1 システム定義」に記載しているオペランドだけです。
- 定義チェックコマンド(dcdefchkコマンド)とOpenTP1ファイルの作成コマンド(jnlinitコマンドなど)を同時に実行しないでください。
- 構文チェックでオペランドの指定値に問題を検出した場合,論理チェックでは,そのオペランドにデフォルト値が指定されていると解釈して論理チェックを行います。
- ファイルやディレクトリのアクセス権限チェックは,コマンドを実行したユーザのUID/GIDに従ったアクセス権限のチェックを行います。
- 待機状態など,OpenTP1ファイルシステムにアクセスできない状態の場合,論理チェック時にメッセージを出力することがあります。
- dcdefchkコマンドの定義チェック時に出力する一部のメッセージには,dcdefchkコマンド専用のメッセージ区分を持たないメッセージがあります。そのため,dcdefchkコマンドに-eオプションを指定しても,メッセージの種類がEであるメッセージを出力することがあります。
- 環境変数(putenv形式およびdcputenv形式の定義)は,正しく論理チェックできないことがあります。