6.4.3 キューレスジョブが戻り値128で異常検出終了となる問題を回避するための設定
キューレスジョブの実行時に,次に示す条件に該当する場合,ジョブが戻り値128で異常検出終了となることがあります。
-
任意のジョブ実行OSユーザーで,ジョブを一切実行していない状態である
-
1と同一のジョブ実行OSユーザーでジョブを実行する
-
2のジョブが終了する瞬間に,2のジョブと同一のジョブ実行OSユーザーで別のジョブを実行する
上記の条件に該当する場合,環境設定パラメーターAJSQL_CREATEWINDOWSTATIONを設定することで,問題を回避してジョブを正常終了させることができます。設定手順を次に示します。
- 〈この項の構成〉
(1) 定義手順
-
Windowsの[コントロールパネル]の[管理ツール]で[サービス]を選択し,次に示すサービスを停止する。
-
JP1/AJS3 Queueless Agentサービス
-
-
メモ帳などのテキストエディターで,「(2) 環境設定パラメーター一覧」の環境設定パラメーターを記述した設定ファイルを作成する。
設定ファイルのファイル名は任意です。
-
ファイルを保存し,次のコマンドを実行する。
jbssetcnf 設定ファイル名
jbssetcnfコマンドのパスは,「JP1/Baseのインストール先フォルダ\bin\jbssetcnf」です。
jbssetcnfコマンドの詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。
-
手順1で停止したサービスを再起動する。
設定した内容が反映されます。
(2) 環境設定パラメーター一覧
定義キー |
環境設定パラメーター |
定義内容 |
---|---|---|
[JP1_DEFAULT\JP1QLAGENT] |
"AJSQL_CREATEWINDOWSTATION"= |
ジョブが戻り値128で異常検出終了となる問題を回避する設定 |
環境設定パラメーターの定義内容の詳細については,「20.10.2(13) AJSQL_CREATEWINDOWSTATION」を参照してください。
(3) 注意事項
-
この設定を有効にした場合,キューレスエージェントサービスは,ジョブ実行OSユーザーごとに,最初にジョブを実行したときにジョブ実行用デスクトップヒープ領域を取得して,ユーザーマッピングキャッシュにキャッシュします。ジョブの実行が終了しても,該当する領域を解放しません。2回目以降に同一ユーザーからジョブを実行する場合は,ユーザーマッピングキャッシュから該当する領域を再利用します。そのため,ジョブ実行OSユーザー数が多い場合,領域不足によってデスクトップヒープ領域の取得に失敗し,次に示すメッセージを出力してジョブが起動失敗になります。
KAVS1829-E キューレスエージェントサービスでシステムコール(CreateDesktop)でエラーが発生しました:xxxxxxxx 8
この場合,ajsqlalterコマンドを実行,またはキューレスエージェントサービスを再起動してユーザーマッピングキャッシュをクリアし,ジョブ実行時に使用するジョブ実行OSユーザー数を少なくしてください。ajsqlalterコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 4. 特別な運用で使用するコマンド ajsqlalter」を参照してください。
ジョブ実行時に使用するジョブ実行OSユーザー数を少なくできない場合は,アプリケーションが使用するデスクトップヒープ領域サイズが小さくなるように,デスクトップヒープ領域サイズを変更してください。デスクトップヒープ領域サイズの変更方法については,各OSのドキュメントを参照してください。
-
この設定を有効にしても,デスクトップヒープ不足によって,ジョブが戻り値128で異常検出終了となる現象は回避できません。