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