7.4 UNIXジョブ使用時の注意事項
UNIXジョブ使用時の注意事項を次に示します。
なお,UNIXジョブが起動失敗したり,異常終了したりする場合の要因や注意事項については,マニュアル「JP1/Automatic Job Management System 3 トラブルシューティング 2.6.2 標準ジョブ,HTTP接続ジョブ,アクションジョブ,およびカスタムジョブのトラブルへの対処」もあわせて参照してください。
-
UNIXで実行したジョブで設定できる終了コードについて
UNIXで実行したジョブで設定できる終了コードの値は0〜255です。ジョブの起動失敗や,標準出力データまたは標準エラー出力データの取得に失敗した場合は,終了コードは-1となります。
-
ジョブが「起動失敗」状態にならないようにするための注意(UNIXの場合)
エージェントホストがUNIXの場合,JP1/AJS3サービスの起動ユーザーおよびジョブの実行OSユーザーに,次に示すファイルおよび格納先ディレクトリに対する書き込み権限および読み込み権限がないと,ジョブが「起動失敗」状態になることがあります。そのため,JP1/AJS3サービスの起動ユーザーに,次に示すファイルおよび格納先ディレクトリに対する書き込み権限および読み込み権限を設定してください。
-
ジョブの標準出力ファイル
-
ジョブの標準エラー出力ファイル
-
エージェントプロセス実行時のワークディレクトリ
-
ジョブの詳細定義で指定するワークパス※1
-
実行OSユーザーのホームディレクトリ※1
-
ジョブ実行制御のログファイル※2
- 注※1
-
ジョブの詳細定義で指定するワークパスは,ジョブを実行するときのカレントディレクトリです。省略した場合,実行OSユーザーのホームディレクトリが仮定されます。ホームディレクトリが未定義の場合は「/(ルート)」が仮定されます。
- 注※2
-
ジョブ実行制御で使用するログファイルの詳細については,マニュアル「JP1/Automatic Job Management System 3 トラブルシューティング 1.2.5 ログファイルおよびディレクトリ一覧」を参照してください。
-
-
UNIXジョブ実行時のリソース制限値についての注意事項
UNIX版JP1/AJS3では,JP1/AJS3起動時のリソース制限値がジョブ実行時にも有効になります。そのため,リソースの制限値を設定したい場合は,JP1/AJS3の起動ユーザーであるrootユーザーに対して設定してください。ただし,実行するジョブに制限値を指定した場合は,指定した値が有効になります。詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 20.5 ジョブ実行環境設定」を参照してください。
ファイルサイズの制限値を変更する例を次に示します。
-
rootユーザーのログインプロファイル(通常は[/.profile]($HOME/.profile))に次に示す記述を設定する。
fsizeには必要なファイルサイズを設定します。無制限にする場合は,unlimitedを設定してください。
ulimit -f fsize
-
rootユーザーでログインする。
-
JP1/AJS3サービスをrootユーザーで起動する。
fsizeの値が有効になります。
- 注意事項
-
AIXおよびLinuxの場合,OSのリソース設定ファイル(AIXの場合は/etc/security/limits,Linuxの場合は/etc/security/limits.conf)の値は,telnet接続などで起動されるloginコマンド経由のプロセスでだけ有効になります。JP1/AJS3から起動されるジョブは,サービスから起動されるプロセスであるためOSのリソース設定ファイルの設定は有効になりません。
-
-
JP1/AJS3サービスを自動起動している場合の注意
JP1/AJS3サービスを自動起動している場合,rootユーザーのログインプロファイルは読み込みません。そのため,ログインプロファイルでrootユーザーのリソース制限値を変更する設定にしても,手動でログインしてJP1/AJS3サービスを起動した際に設定されるリソース制限値と値が異なることがあります。この場合,ジョブ実行環境の環境設定パラメーターでリソース制限値を設定してください。ジョブ実行環境の環境設定パラメーターについては,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 20.5 ジョブ実行環境設定」を参照してください。
また,リソース制限値はJP1/AJS3の自動起動スクリプト(/etc/opt/jp1ajs2/jajs_start)にも記載できます。その場合は,十分な検証を実施した上で運用してください。
なお,ジョブ実行時のグループIDは,rootユーザーでログインしたときに設定されるグループIDと異なります。詳細については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 5.4.12 ジョブ実行時のグループID(UNIX限定)」を参照してください。
-
ジョブプロセスのumask値をジョブ実行ユーザーのプロファイルや実行シェル内で明示的に設定する
JP1/AJS3サービスから起動するジョブプロセスのumask値は,明示的な指定がなければ,JP1/AJS3サービスを起動するシェルのumask値になります。
/etc/profileや$HOME/.profileなど,ジョブ実行ユーザーのプロファイルで指定している場合は,JP1/AJS3サービス起動シェルのumask値にその値を上書きした値が設定されます。
ジョブプロセスのumask値は,ジョブ実行ユーザーのプロファイルや,実行シェル内で明示的に設定してください。
また,ジョブの定義で指定する「標準出力ファイル」および「標準エラー出力ファイル」のumask値を変更する場合は,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 5.4.7 標準出力ファイル名・標準エラー出力ファイルのumask値(UNIX限定)」を参照してください。
-
環境変数PATHに「/bin:/usr/bin」以外の値を設定したい場合
JP1/AJS3からジョブを起動した場合,JP1/AJS3が明示的に環境変数PATHに「/bin:/usr/bin」を設定しています。それ以外の値を設定したい場合はジョブ定義時に指定したコマンドやスクリプトファイルでの定義,またはローカルログインスクリプトでの定義で設定するようにしてください。
-
端末を必要とするユーザープログラムをジョブとして実行する場合の注意
UNIX版JP1/AJS3で端末を必要とするユーザープログラムをジョブとして実行すると,正しく動作しない(ジョブが異常終了する)場合があります。
-
キューレスジョブ使用時にログインシェルなどのOSユーザー情報を変更する場合の注意
キューレスジョブ使用時にログインシェルなどのOSユーザー情報を変更する場合は,変更後に次のどちらかの手順でキャッシングを消去してください。
-
ajsqlalterコマンドを,-rオプションを指定して実行する。
-
キューレスエージェントサービスを再起動する。
-
-
OSユーザーを登録または更新する場合の注意
ジョブ実行中に,システム管理者権限でpasswdコマンドなどによってOSユーザーを登録または更新しないでください。OSユーザーの登録または更新が終了したあとにジョブを実行してください。
-
バックアップ強化機能を有効にしてUNIXジョブからjajs_dbbackupコマンドを実行する場合
UNIXジョブが定義されている組み込みDBを指定してjajs_dbbackupコマンドを実行した場合,実際はジョブが実行されている状態でもUNIXジョブの状態が次の状態のまま遷移しないことがあります。ただし,jajs_dbbackupコマンドが終了したあと,UNIXジョブの状態は正常に遷移します。
-
実行待ち
-
キューイング
この状態を回避するには,jajs_dbbackupコマンドを実行するUNIXジョブは,バックアップ対象外の組み込みDBで動作するスケジューラーサービス上に定義して実行してください。
バックアップ強化機能の概要については,マニュアル「JP1/Automatic Job Management System 3 設計ガイド(システム構築編) 5.2.5 バックアップ強化機能による組み込みDBのバックアップとリカバリー」を参照してください。
-