8.1.10 標準出力ファイル・標準エラー出力ファイルの注意事項

<この項の構成>
(1) 標準出力ファイル・標準エラー出力ファイルを定義する場合の注意事項
(2) 標準出力ファイル・標準エラー出力ファイルに大量データを出力する場合の注意事項と回避方法
(3) その他の注意事項

(1) 標準出力ファイル・標準エラー出力ファイルを定義する場合の注意事項

ジョブ(キューレスジョブを含むPCジョブ・UNIXジョブ)の実行時に出力する標準出力ファイル・標準エラー出力ファイルを定義する場合,次の注意事項があります。

(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の場合)を参照してください。

上記のように,標準出力ファイルや標準エラー出力ファイルのファイルサイズに上限値を設定していない状態で,ジョブが正常に動作しない場合は,次に示す点に注意して確認した上,それぞれの対処方法で対応してください。

補足事項
  • この現象が発生すると,次のフォルダに「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) その他の注意事項