jp1exec(Windows限定)
形式
jp1exec
コマンドライン
機能
コマンドラインに指定されたプログラム(コマンド)を実行し,実行したプログラム(コマンド)の終了コードを一時ファイルに退避します(一時ファイルについては,後述の「補足事項」を参照してください)。
このコマンドは,実行ホストでジョブとして実行されるバッチファイル(拡張子がBAT,またはCMDのファイル)内で使用します。通常,ジョブを強制終了した場合,ジョブとして実行したバッチファイルは強制終了されますが,バッチファイルから実行したプログラムまでは強制終了されません。しかし,バッチファイルから実行するプログラムをjp1execコマンドに指定すると,ジョブを強制終了した場合,jp1execコマンドから実行されたプログラムも強制終了されます。
また,バッチファイルの最後にjp1exitコマンドを記述すると,jp1execコマンドから実行されたプログラムの終了コードをそのバッチファイルの終了コードにできます。
実行権限
なし
引数
コマンドライン
実行ホスト上にあるジョブとして実行したいファイル名をフルパスで指定します。実行したいファイル名の引数(パラメーター)も指定できます。指定できるファイル名は,拡張子がEXEのファイルだけです。EXE以外のファイルを指定した場合は,該当するジョブが異常検出終了となるおそれがあります。
指定できる文字数は,1~259(単位:バイト)です。
第1引数の文字数が最大文字数を超えた場合,およびコマンドラインのトータルの文字数が最大文字数を超えた場合で動作が異なります。
- 第1引数の文字数が最大文字数を超えた場合
コマンドはエラーとなります。
- コマンドラインのトータルの文字数が最大文字数を超えた場合
スペースで区切られた個所で,コマンドラインのトータルの文字数を超えた個所以降を切り捨てて実行します。
- (例)
- jp1exec C:¥test.exe aaa...a
- C:¥test.exe aaa...aが最大文字数を超える場合は,aaa...aを切り捨てて,C:¥test.exeで実行します。
注意事項
- このコマンドはWindowsだけで実行できます。UNIXでは実行できません。
- このコマンドは,JP1/AJS2だけで使用できます。JP1/NQSEXECやJP1/OJE for VOS3など,他システムとの連携には使用できません。
- 一つのバッチファイル内に複数のjp1execコマンドを記述している場合,最後にjp1execコマンドから実行されたプログラムの終了コードが,そのバッチファイルの終了コードとして一時ファイルに退避されます。
- このコマンドに指定できるファイルは,拡張子がEXEのファイルだけです。EXE以外のファイルを指定した場合は,ジョブが異常終了するおそれがあります。バッチファイルから別のバッチファイルを呼び出す場合は,次のように記述してください。
jp1exec CMD.EXE /C ファイル名
ただし,上記のバッチファイルを強制終了(CMD.EXEを強制終了)しても,バッチファイル内で起動されるプログラムは強制終了されません。このバッチファイル内で起動されるプログラムを強制終了したい場合,jp1execコマンドからプログラムを実行してください。
jp1execコマンドから呼び出すEXEファイルやバッチファイルは,標準出力ファイル,標準エラー出力ファイルに結果をリダイレクトすることはできません。
- ジョブとして実行しているバッチファイルの中でさらにバッチファイルを実行し,その中でjp1execコマンドを使用している場合は,ジョブとして実行しているバッチファイルを強制終了することで,そのバッチファイル内のjp1execコマンドで実行しているプロセスを強制終了できます。
- jp1exitコマンドを記述しないと,jp1execコマンドの終了コードがバッチファイルの終了コードとなります。jp1execコマンドの終了コードは,jp1execコマンドから実行されたプログラムの終了コードではなくjp1execコマンド自身の終了コードです。jp1execコマンドから実行されたプログラムの終了コードはjp1exitコマンドで取得できます。jp1exitコマンドの詳細については,「1. コマンド jp1exit(Windows限定)」を参照してください。
- バッチファイルの中でTMP,TEMP,JP1から始まる環境変数,およびAJSから始まる環境変数を変更しないでください。
- jp1execコマンドに指定するファイルのパス名に空白が含まれるときは,パス名を「"(ダブルクォーテーションマーク)」および「¥"」で囲んでください。囲まない場合,コマンドが異常終了するおそれがあります。
実行ファイル名が「C:¥Program Files¥test.exe」の場合の例を次に示します。
jp1exec "¥"C:¥Program Files¥test.exe¥""
- このコマンドを実行する場合は,次のフォルダにジョブを実行するOSユーザーの書き込み権限および読み取り権限を設定してください。
Windows Server 2008の場合
- %ALLUSERSPROFILE%¥HITACHI¥JP1¥JP1_DEFAULT¥JP1AJS2¥log¥jpqagent
- %ALLUSERSPROFILE%¥HITACHI¥JP1¥JP1_DEFAULT¥JP1AJS2¥log¥jpqclient
「%ALLUSERSPROFILE%」のデフォルトは「システムドライブ¥ProgramData」です。
Windows Server 2003の場合
- JP1/AJS2のインストール先フォルダ¥log¥jpqagent
- JP1/AJS2のインストール先フォルダ¥log¥jpqclient
クラスタ運用時は,次のフォルダに設定してください。
- 共有フォルダ¥jp1ajs2¥log¥jpqagent
- 共有フォルダ¥jp1ajs2¥log¥jpqclient
補足事項
jp1execコマンドを使用する場合は,jp1exitコマンドを必ず記述してください。jp1exitコマンドを記述しなかった場合,ジョブ実行終了後,ジョブの実行ホスト上にファイル名がAJSJP1EXECで始まるファイルが残ります。このファイルは不要であるため,削除してください。
このファイルは,次の順序で各環境変数の最初に設定されているパス内に作成されます。どの環境変数にもパスが設定されていない場合は,Windowsのインストール先フォルダに作成されます。
- JP1/AJS2サービスを起動したユーザーの環境変数tmp
- システム環境変数tmp
- JP1/AJS2サービスを起動したユーザーの環境変数temp
- システム環境変数temp
これらのパスに対しては,ジョブ実行OSユーザーがアクセスできるように,書き込み権限および読み取り権限を設定してください。