JP1/Automatic Job Management System 3 設計ガイド(業務設計編)
標準出力ファイルおよび標準エラー出力ファイルについての注意事項を次に示します。
- <この項の構成>
- (1) 標準出力ファイル・標準エラー出力ファイルを定義する場合
- (2) 標準出力ファイル・標準エラー出力ファイルに大量データを出力する場合
- (3) その他の注意事項
(1) 標準出力ファイル・標準エラー出力ファイルを定義する場合
ジョブ(キューレスジョブを含むPCジョブ・UNIXジョブ)の実行時に出力する標準出力ファイル・標準エラー出力ファイルを定義する場合,次の注意事項があります。
- ジョブネットから実行するジョブはデフォルトで標準エラー出力をジョブの実行結果として取得します。標準出力はジョブの実行結果として取得されません。標準エラー出力の内容は,[JP1/AJS3 - View]ウィンドウの[実行結果詳細]ダイアログボックスで表示できます。なお,[JP1/AJS3 - View]ウィンドウの[実行結果詳細]ダイアログボックスには,JP1/AJS3が標準エラー出力に出力するエラーメッセージも表示されます。
- 標準出力・標準エラー出力の内容を任意のファイルに出力したい場合は,ジョブを定義する際に標準出力ファイル名・標準エラー出力ファイル名を指定してください。
- [JP1/AJS3 - View]ウィンドウの[実行結果詳細]ダイアログボックスに標準出力の内容も表示する場合は,[標準出力ファイル名]と[標準エラー出力ファイル名]に同じファイル名を指定してください。
- [標準出力ファイル名]および[標準エラー出力ファイル名]に同じファイル名を指定する場合は,追加書きオプションの設定を一致させてください。一方に新規作成,もう一方に追加書きを設定すると,パラメーターエラーになり,ジョブが起動失敗します。
- [詳細定義-[アイコン名]]ダイアログボックスの[環境変数ファイル名],[標準入力ファイル名],[標準出力ファイル名],および[標準エラー出力ファイル名]に,[スクリプトファイル名]または[実行ファイル名]と同じファイル名を指定している場合,ジョブが起動失敗または異常検出終了となるおそれがあります。これらの項目には,[スクリプトファイル名]または[実行ファイル名]と同じファイル名を指定しないでください。
- 同時に実行する複数のジョブの定義に,同じ標準出力ファイルや標準エラー出力ファイルを指定してジョブを実行すると,標準出力や標準エラー出力の出力結果が上書きされます。また,標準出力や標準エラー出力を指定したジョブを多重起動して同時に実行した場合も,標準出力や標準エラー出力の出力結果が上書きされます。
同時に実行するジョブの[標準出力ファイル名],[標準エラー出力ファイル名]には,それぞれ別のファイルを指定してください。
- ジョブの[標準出力ファイル名]または[標準エラー出力ファイル名]に,アクセスできないネットワークファイル名を指定した場合,ジョブが起動失敗または異常検出終了します。正しいネットワークファイル名を指定してください。
- [標準出力ファイル名]または[標準エラー出力ファイル名]にネットワークファイル名を指定している場合,指定したファイルには,次に示す権限が必要です。
- Windowsの場合
- 実行ホストのJP1/AJS3サービス(キューレスジョブの場合はJP1/AJS3 Queueless Agentサービス)に設定されているアカウントで作成,参照および更新する権限
- UNIXの場合
- ジョブの実行OSユーザーに指定されているアカウントで作成,参照および更新する権限
- [標準出力ファイル名]を指定した場合,指定しなかった場合に比べてジョブネットの処理性能に影響することがあります。
- 補足事項
- jpqjobsubコマンドから実行するサブミットジョブの場合はデフォルトでは標準出力・標準エラー出力を保存しません。jpqjobsubコマンドのオプションに任意のファイル名を指定してください。
(2) 標準出力ファイル・標準エラー出力ファイルに大量データを出力する場合
JP1/AJS3では,ジョブ(キューレスジョブを除く標準ジョブ,アクションジョブ,またはカスタムジョブ)の終了時にエージェントホストからマネージャーホストに標準出力ファイルまたは標準エラー出力ファイルを転送しています。標準出力ファイルまたは標準エラー出力ファイルに数メガバイトを超えるような大量データを出力するジョブを実行すると,ファイルのデータ解析処理またはファイルのデータ転送で負荷が掛かり,CPU使用率の増加やJP1/AJS3が使用するメモリー使用量の増加など,ジョブの実行が遅延するだけでなく,システム全体の処理に影響を与えるおそれがあります。これらの問題は,マネージャーホストとエージェントホストの両方で発生します。
また,追加書きオプションを設定すると,ジョブ実行のたびに出力データが蓄積され,転送するファイルのサイズが単調増加します。この場合も,ファイルのデータ解析処理またはファイルのデータ転送で負荷が掛かり,ジョブが異常終了したり,エージェントホストからマネージャーホストに対するデータ転送が遅延したりすることがあります。この場合,追加書きオプションの設定を無効にするか,または標準出力データファイルや標準エラー出力データファイルを定期的に削除,退避するようにしてください。
標準出力ファイルや標準エラー出力ファイルのファイルサイズが原因となって発生する問題を回避する方法として,JP1/AJS3では標準出力ファイルや標準エラー出力ファイルのファイルサイズに上限値を設定できます。この設定を行うことで,マネージャーホストでファイルサイズの上限値を超えたデータの破棄や,上限値に達したことを示す警告メッセージを出力できます。これによって,一部のジョブの処理でJP1/AJS3のジョブ実行全体に影響が出ないようにすることができます。設定方法の詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド1 6.2.7 ファイル受信制限をするための設定」(Windowsの場合)またはマニュアル「JP1/Automatic Job Management System 3 構築ガイド1 15.2.7 ファイル受信制限をするための設定」(UNIXの場合)を参照してください。
上記のように,標準出力ファイルや標準エラー出力ファイルのファイルサイズに上限値を設定していない状態で,ジョブが正常に動作しない場合は,次に示す点に注意して確認した上,それぞれの対処方法で対応してください。
- 標準出力データが大量に出力される
PCジョブやUNIXジョブの場合,ジョブの定義で[標準出力ファイル名]を明示的に指定している場合にだけファイルの転送を行っており,標準出力データを大量に出力するとジョブが異常終了することがあります。この場合,ジョブの定義の[標準出力ファイル名]には何も指定しないでください。ジョブのバッチファイルやシェルスクリプト内で,標準出力をリダイレクトしてください。
ジョブの定義の[標準出力ファイル名]に何も指定しなければ,標準出力ファイルはマネージャーホストに転送されません。
- 標準エラー出力データが大量に出力される
PCジョブやUNIXジョブの場合,ジョブ定義の[標準エラー出力ファイル名]にNULLデバイスを指定してください。UNIX上で実行するジョブの場合は"/dev/null"を記述し,Windows上で実行するジョブの場合は"NUL"を記述してください。ジョブ定義の[標準エラー出力ファイル名]にファイル名を明示的に指定している場合は,バッチファイルやシェルスクリプト内で標準エラー出力をリダイレクトしてください。
この設定をすると,標準エラー出力ファイルはマネージャーホストに転送されません。その場合は,JP1/AJS3 - Viewの[実行結果詳細]ダイアログボックスで標準エラー出力ファイルの内容を参照できなくなります。
- 補足事項
- この現象が発生すると,次のフォルダ(デフォルト時)に「A_JPQ*_ジョブ番号」というファイルが残ることがあります。
Windows Server 2008でインストール先フォルダがデフォルトまたはシステムで保護されたフォルダ配下の場合:
%ALLUSERSPROFILE%\HITACHI\JP1\JP1_DEFAULT\JP1AJS2\tmp
「%ALLUSERSPROFILE%」のデフォルトは「システムドライブ\ProgramData」です。
「システムで保護されたフォルダ」とは,次のパスを指します。
・「システムドライブ\Windows」配下
・「システムドライブ\Program Files」配下
・「システムドライブ\Program Files (x86)」配下(64ビット版のWindowsの場合)
Windows Server 2003,またはWindows Server 2008でインストール先フォルダが上記以外の場合:
JP1/AJS3のインストール先フォルダ\tmp
UNIXの場合:
/var/opt/jp1ajs2/tmp
異常検出終了したジョブと同じジョブ番号のファイルは削除しても問題ありません。
なお,クラスタ構成などでフォルダを変更したときは,変更後のフォルダにあるファイルを確認してください。
- サブミットジョブで標準出力データ,または標準エラー出力データを大量に出力する場合,マネージャーホストのジョブ実行環境のワークディレクトリに作成される一時ファイル(M_JPQSTDE_ジョブ番号,またはM_JPQSTDO_ジョブ番号)のデータも大量になります。通常は,ジョブ情報削除処理実行時に保存日数を経過しているジョブの一時ファイルは,自動的に削除されます。しかし,一時ファイルによるディスク容量不足などが発生した場合には,ジョブの終了後に手動で削除できます。また,ディスク容量不足が慢性的に発生する場合には,ジョブ情報保存日数の縮小や,ジョブのスクリプトファイル内で標準出力・標準エラー出力のリダイレクトを検討してください。
なお,一時ファイルを削除した場合には,jpqjobgetコマンドを使用して標準出力・標準エラー出力ファイルを参照できなくなります。
ジョブの詳細定義の[パラメーター]にリダイレクトを指定する方法とその例を,次に示します。
表7-7 ジョブの詳細定義の[パラメーター]にリダイレクトを指定する方法と例(Windowsの場合)
定義内容 指定方法 指定例 標準出力ファイル,標準エラー出力ファイルが異なる場合(実行ファイルがexeの場合) 実行ファイル名:test.exe
パラメーター:なし
標準出力ファイル:out.txt
標準エラー出力ファイル:err.txt実行ファイル名:cmd.exe
パラメーター:
/C test.exe >out.txt 2>err.txt
標準出力ファイル:なし
標準エラー出力ファイル:なし標準出力ファイル,標準エラー出力ファイルが異なる場合(実行ファイルがbatの場合) 実行ファイル名:test.bat
パラメーター:なし
標準出力ファイル:out.txt
標準エラー出力ファイル:err.txt実行ファイル名:test.bat
パラメーター:>out.txt 2>err.txt
標準出力ファイル:なし
標準エラー出力ファイル:なし標準出力ファイル,標準エラー出力ファイルが同名の場合 実行ファイル名:test.bat
パラメーター:なし
標準出力ファイル:out.txt
標準エラー出力ファイル:out.txt実行ファイル名:test.bat
パラメーター:>out.txt 2>&1
標準出力ファイル:なし
標準エラー出力ファイル:なし表7-8 ジョブの詳細定義の[パラメーター]にリダイレクトを指定する方法と例(UNIXの場合)
定義内容 指定方法 指定例 標準出力ファイル,標準エラー出力ファイルが異なる場合 スクリプトファイル名:test.sh
パラメーター:なし
標準出力ファイル:out.txt
標準エラー出力ファイル:err.txtスクリプトファイル名:test.sh
パラメーター:>out.txt 2>err.txt
標準出力ファイル:なし
標準エラー出力ファイル:なし標準出力ファイル,標準エラー出力ファイルが同名の場合 スクリプトファイル名:test.sh
パラメーター:なし
標準出力ファイル:out.txt
標準エラー出力ファイル:out.txtスクリプトファイル名:test.sh
パラメーター:>out.txt 2>&1
標準出力ファイル:なし
標準エラー出力ファイル:なし
(3) その他の注意事項
- 標準出力データや標準エラー出力データの出力先に指定できるファイルは,テキスト形式のファイルだけです。
- 標準出力データや標準エラー出力データには,外字・機種依存文字を使用しないでください。これらの文字を使用した場合,JP1/AJS3 - Viewでは正しく表示できません。
- 標準出力データ・標準エラー出力データは,エージェントホスト上に一時的にファイルとして作成され,ジョブ終了時にマネージャーホストに転送されます。これらの一時ファイルはマネージャーホスト,エージェントホストのジョブ実行環境のワークディレクトリに,それぞれ次に示す名前で作成されます。
- マネージャーホスト(サブミットジョブを実行した場合)
- M_JPQSTDE_ジョブ番号
- M_JPQSTDO_ジョブ番号
それぞれのホストで削除されるタイミングは,次のとおりです。
- エージェントホスト
- A_JPQSTDE_*_ジョブ番号
- A_JPQSTDO_*_ジョブ番号
- マネージャーホスト
- 標準構成の場合:QUEUEジョブ・サブミットジョブについての一時ファイルはジョブ情報削除処理の実行時に削除され,それ以外のジョブの一時ファイルはジョブ終了時に削除されます。
- 互換用ISAM構成の場合:ジョブ情報削除処理の実行時に削除されます。
なお,キューレスジョブの場合は,標準エラー出力データだけが一時的にファイルとしてエージェントホスト上に保存されます。このファイルの内容は,キューレスジョブ終了時にマネージャーホストへ転送されます。このファイルは,キューレスジョブ終了時,またはキューレスエージェントサービス起動時に自動的に削除されます。
- エージェントホスト
- 一時ファイルはジョブ終了時に自動的に削除されます。
- [標準エラー出力ファイル名]を指定し,[追加書き]を選択しているジョブの実行後にJP1/AJS3 - Viewで[実行結果詳細]ダイアログボックスの内容を表示した場合,ジョブの実行先サービスによって次の違いがあります。
- [実行先サービス]に[標準]を指定したジョブの場合
[標準エラー出力ファイル名]に指定したファイルの内容が表示されます。
- [実行先サービス]に[キューレス]を指定したジョブの場合
ジョブ実行時に標準エラー出力に出力された内容が表示されます。
Copyright (C) 2009, 2014, Hitachi, Ltd.
Copyright (C) 2009, 2014, Hitachi Solutions, Ltd.