2.6.23 初期設定スクリプトファイルを実行する
JP1/Advanced Shellのジョブコントローラがジョブ定義スクリプトファイルを実行する前に,特定の共通スクリプトファイルを実行できます。ジョブ定義スクリプトファイルを実行する前に特定の共通スクリプトファイルを実行すると,システム共通の初期設定(変数への値代入,エイリアスの定義,作業ディレクトリへの移動など)ができます。
(1) 初期設定スクリプトファイルの位置づけ
ジョブコントローラでは,次のファイルをスクリプトファイルとして扱います。
ジョブコントローラが扱うスクリプトファイル |---ジョブ定義スクリプトファイル |---外部スクリプト | |---#-adsh_scriptの外部スクリプトファイル | |---.(ドット)コマンドの外部スクリプトファイル | |---初期設定スクリプトファイル | |---.envファイル |---【Windows限定】UNIX互換コマンド(スクリプト形式)
初期設定スクリプトファイルは,外部スクリプトファイルの一種として位置づけられます。そのため,ジョブコントローラは,初期設定スクリプトファイルを,ジョブの一部である外部スクリプトファイルとして実行します。
(2) 初期設定スクリプトファイル
初期設定スクリプトファイルは,ジョブコントローラがジョブ定義スクリプトを実行する時に実行する初期化用のスクリプトファイルです。環境設定パラメーターINIT_SCRIPT_READを定義すると,ルートジョブを実行する直前に初期化用のスクリプトファイルを読み込み,実行します。ただし,次の場合,ジョブコントローラは初期設定スクリプトを実行しないで,KNAX6504-Eメッセージを出力し,エラー終了します。
-
初期設定スクリプトファイルが存在しない場合
-
実行に必要な権限が割り当てられていない場合
環境設定パラメーターINIT_SCRIPT_READの指定と,初期設定スクリプトファイルの状態の組み合わせを次の表に示します。
項番 |
INIT_SCRIPT_READの指定 |
初期設定スクリプトファイルの状態 |
ジョブコントローラの動作 |
|
---|---|---|---|---|
ファイルの存在 |
読み込み権限 |
|||
1 |
NO,または定義されていない |
- |
- |
初期設定スクリプトファイルを実行しません。 |
2 |
YES |
存在しない |
- |
|
3 |
存在する |
読み込み権限がない |
||
4 |
読み込み権限がある |
初期設定スクリプトファイルを実行します。 |
- (凡例)
-
-:該当なし
初期設定スクリプトファイルは,システム管理者が作成および設定します。作成した初期設定スクリプトファイルは,次の表に示すファイルパスに格納すると有効になります。
項番 |
環境 |
初期設定スクリプトファイルのファイル名 |
---|---|---|
1 |
Windows(開発環境) |
共通アプリケーションフォルダ\HITACHI\JP1AS\JP1ASD\conf\adshinit_root.ash |
2 |
Windows(実行環境) |
共通アプリケーションフォルダ\HITACHI\JP1AS\JP1ASE\conf\adshinit_root.ash |
3 |
UNIX |
/opt/jp1as/conf/adshinit_root.ash |
ジョブコントローラは次の表に示す順序でファイルを読み込みます。そのため,環境ファイルと初期設定スクリプトファイルで同じ環境変数に値を設定すると,初期設定スクリプトファイルで設定した値が有効になります。
順序 |
ファイル種別 |
備考 |
---|---|---|
1 |
システム環境ファイル |
- |
2 |
ジョブ環境ファイル |
- |
3 |
.envファイル |
環境設定パラメーターKSH_ENV_READにYESを指定した場合 |
4 |
初期設定スクリプトファイル |
環境設定パラメーターINIT_SCRIPT_READにYESを指定した場合 |
5 |
ジョブ定義スクリプトファイル |
- |
- (凡例)
-
-:該当なし
初期設定スクリプトファイルにはジョブコントローラ起動時の初期化処理を記述してください。ただし,次のコマンドは使用しないでください。
-
adshappexecを除くシェル運用コマンド
-
シェル拡張コマンドのadshecho,adshread,adshjoberr
-
スクリプト拡張コマンド
初期設定スクリプトファイルに記述したコマンドの実行結果は,ジョブ定義スクリプトファイルに記述したコマンドの実行結果と同様に,ジョブ実行ログに出力します。また,初期設定スクリプトファイルの内容はスクリプトイメージファイルに出力しません。
(3) 注意事項
-
ジョブ稼働中に初期設定スクリプトファイルの内容を変更しないでください。また,初期設定スクリプトファイルからジョブ定義スクリプトファイルの内容を変更する処理を実行しないでください。
-
初期設定スクリプトファイルのエンコーディング,ジョブ定義スクリプトファイルのエンコーディング,およびジョブ定義スクリプトを実行する環境のLANG環境変数の値は,すべて一致させてください。一致していない場合の動作は保証できません。
-
初期設定スクリプトファイル内で継続できないエラーが発生した場合,ジョブコントローラはジョブ定義スクリプトを実行しないで,終了コード1,または環境変数ADSH_JOBRC_FATALに設定した値でエラー終了します。
-
初期設定スクリプトファイルからルートジョブを起動した場合,次のように動作します。
-
初期設定スクリプトファイルから起動したルートジョブは,ジョブ定義スクリプトファイルを実行しないで,終了コード1,または環境変数ADSH_JOBRC_FATALに設定した値でエラー終了します。
-
初期設定スクリプトファイルを実行するジョブコントローラは,処理を継続します。
-
-
初期設定スクリプトファイルはリンクファイルに対応していません。初期設定スクリプトファイル本体をリンクファイルに置き換えないでください。
-
初期設定スクリプトファイルはデバッグ実行の対象外です。初期設定スクリプトファイルをCUIおよびGUIデバッガでデバッグしたい場合は,環境設定パラメーターINIT_SCRIPT_READにNOを指定した環境で,ジョブ定義スクリプトファイルとして実行してください。
-
カバレージ情報の採取の対象は,ジョブ定義スクリプトファイルだけです。そのため,初期設定スクリプトファイルのカバレージ情報を採取したい場合は,ジョブ定義スクリプトファイルとして実行してください。
-
初期設定スクリプトファイルは,文法チェックモードの対象外です。初期設定スクリプトファイルの文法をチェックする場合は,ジョブ定義スクリプトファイルとして実行してください。
-
初期設定スクリプトファイル内で,関数情報配列は使用できません。
(4) 初期設定スクリプトファイルを実行するための準備
初期設定スクリプトファイルは次の手順で実行できます。
-
環境設定パラメーターINIT_SCRIPT_READにYESを指定します。
#-adsh_conf INIT_SCRIPT_READ YES
-
実行する初期設定スクリプトファイルを「初期設定スクリプトファイルのファイル名」に示す場所に格納します。
(5) 使用例
初期設定スクリプトファイルが正常終了するケース
-
初期設定スクリプトファイルの内容
ADSH_SPOOL_JOBNAME=$( "${ADSH_DIR_CMD}basename" ${AJSJOBNAME} ) alias ls='"${ADSH_DIR_CMD}ls" -la' cd 'C:\ExecUser\init'
-
ジョブ定義スクリプトファイルの内容
#-adsh_step_start S01 echo "Job step start" #-adsh_step_end
-
実行結果
KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ちます。 KNAX0724-I ジョブ識別子を割り当てました。Jobid=000003 --------------------------------------------------------------- Advanced Shell 11-10 [ジョブ情報] ジョブ識別子 : 000003 スプールジョブディレクトリパス : C:\ExecUser\result\spool\000003\ 実行日付 : 2016/08/19 システム環境ファイルパス : ジョブ環境ファイルパス : C:\ExecUser\conf.ase ホスト名 : HOST0001 [Automatic Job Management Systemから渡された環境変数] JP1JobName : adshexec.exe" JP1JobID : 0000002362 JP1_USERNAME : jobadmin JP1UNCName : HOST0001 JP1NBQSQueueName: \\HOST0001\@SYSTEM JP1Priority : 64 AJSEXECID : @A665 AJSJOBNAME : /ExecUser/test/ASinit --------------------------------------------------------------- ******** ジョブコントローラのメッセージ出力 ******** 14:51:19 000003 KNAX0091-I ADSH000003 ジョブが開始しました。 14:51:19 000003 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ちます。 14:51:19 000003 KNAX7902-I ジョブコントローラは,"非端末入力モード"で動作します。 14:51:19 000003 KNAX6501-I ジョブは初期設定スクリプトファイル("C:\ProgramData\HITACHI\JP1AS\JP1ASE\conf\adshinit_root.ash")を実行します。 14:51:19 000003 KNAX6126-I コマンド(C:\PROGRA~2\Hitachi\JP1AS\JP1ASE\cmd\basename.exe, コマンド置換)が正常終了しました。rc=0 E-Time=0.015s C-Time=0.015s 14:51:19 000003 KNAX6110-I コマンド(ADSH_SPOOL_JOBNAME=ASinit, 行番号=1)が正常終了しました。rc=0 E-Time=0.000s C-Time=0.000s 14:51:19 000003 KNAX6112-I コマンド(alias, 行番号=2)が正常終了しました。rc=0 E-Time=0.000s C-Time=0.000s 14:51:19 000003 KNAX6112-I コマンド(cd, 行番号=3)が正常終了しました。rc=0 E-Time=0.000s C-Time=0.000s 14:51:19 000003 KNAX6502-I 初期設定スクリプトは終了しました。 14:51:19 000003 KNAX0092-I ADSH000003.S01 ステップが開始しました。 14:51:19 000003 KNAX6112-I コマンド(echo, 行番号=2)が正常終了しました。rc=0 E-Time=0.000s C-Time=0.000s 14:51:19 000003 KNAX6597-I ADSH000003.S01 ジョブステップが正常終了しました。rc=0 E-Time=0.032s C-Time=0.015s 14:51:19 000003 KNAX0098-I ADSH000003 ジョブが終了しました。rc=0 E-Time=0.063s C-Time=0.046s ******** ジョブ定義スクリプトの内容 ******** ***** C:\ExecUser\test.ash ***** 0001 : #-adsh_step_start S01 0002 : echo "Job step start" 0003 : #-adsh_step_end ***** パス変換情報 ***** ******** 実行ジョブのSTDERRファイルの内容 ******** KNAX6597-I ADSH000003.S01 ジョブステップが正常終了しました。rc=0 E-Time=0.032s C-Time=0.015s KNAX0098-I ADSH000003 ジョブが終了しました。rc=0 E-Time=0.063s C-Time=0.046s ******** ジョブステップの出力 ******** KNAX0719-I STEP ステップ番号=0001 ステップ名=S01 出力先=STDERR KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="C:\ExecUser\result\spool\000003-ASinit\" KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。rc=0