JP1/Automatic Job Management System 3 - SOA Option ジョブ・ジョブネット呼び出し機能編

[目次][用語][索引][前へ][次へ]


4.2.2 ジョブ制御クラスAjsWsSubjob

ジョブ制御クラスは,サブミットジョブを制御するクラスです。JP1/AJS3 - SOA Option専用のマネージャーホストのキューへ,サブミットジョブを実行登録します。ジョブの実行登録に成功した場合,ジョブ実行状況を監視します。ジョブの実行を強制的に終了することもできます。

注意
サブミットジョブの実行登録先がJP1/AJS3の場合,JP1/AJS3 - Managerのデータベース構成に制限があります。詳細は,「2.2.2 ジョブの操作」を参照してください。

このクラスのインスタンスを作成して使用してください。

ジョブ制御クラスインターフェースの詳細を次に示します。

クラス定義
public class AjsWsSubjob

パッケージ名
jp.co.Hitachi.soft.ajs2.ws.jobcontrol

メソッド一覧
メソッド名 説明
AjsWsSubjob ジョブ制御クラスのコンストラクタです。
subJobEntry サブミットジョブの実行登録をします。
subJobGet サブミットジョブの実行状況を監視します。
subJobKill 実行中のサブミットジョブを強制終了します。

各メソッドの詳細を説明します。

参考
ジョブ制御クラスのメソッドは,JP1/AJSのコマンドに対応しています。例えば,AjsWsSubjobメソッドが持つ引数は,JP1/AJSのjpqjobsubコマンドの引数に対応しています。ジョブ制御クラスのメソッドとJP1/AJSのコマンドとの対応については,「付録C JP1/AJS3 - SOA Optionで使用できるJP1/AJSコマンドの対応一覧」を参照してください。
<この項の構成>
(1) AjsWsSubjobメソッド
(2) subJobEntryメソッド
(3) subJobGetメソッド
(4) subJobKillメソッド
(5) ジョブ制御クラスの実装例
(6) ジョブ制御クラスの注意事項
(7) ジョブ制御クラスで,標準入力データ・標準出力データ・標準エラー出力データを指定する場合の注意事項
(8) ジョブ制御クラスで,環境変数ファイルを指定する場合の注意事項

(1) AjsWsSubjobメソッド

説明
AjsWsSubjobのコンストラクタです。ジョブの実行登録に必要な情報をクラス内に保持します。

形式
public AjsWsSubjob(
        jp.co.Hitachi.soft.ajs2.ws.jobcontrol.AjsWsClient client,
        java.lang.String manager,
        java.lang.String queueName,
        java.lang.String userName,
        java.lang.String jobName,
        int priority,
        java.lang.String execFile,
        java.lang.String[] args,
        java.lang.String workPath,
        java.lang.String shellPath,
        java.lang.String exclusiveResourceName,
        java.lang.String startTime,
        int execLimitTime,
        int recoverStatus,
        java.lang.String stdinFilePath,
        java.lang.String stdoutFilePath,
        int stdoutWriteMode,
        java.lang.String stderrFilePath,
        int stderrWriteMode,
        java.lang.String envFilePath)

引数
項番 引数名 省略 説明
1 client 不可 初期化済みのAjsWsClientのインスタンスを指定します。
2 manager 不可 ジョブ制御要求を依頼するJP1/AJS3 - ManagerまたはJP1/AJS2 - Managerのホスト名を,1〜255バイトの文字列で指定します。
JP1/AJS3 - SOA Optionのセットアップ時に設定するWS-Server動作環境設定定義ファイル(ajswsserver.conf)の「接続先JP1/AJS3 - Managerホスト名または接続先JP1/AJS2 - Managerホスト名」と同じ値を指定してください。
WS-Server動作環境設定定義ファイルの設定については,「6.6.7(1) WS-Server動作環境設定定義ファイル(ajswsserver.conf)」を参照してください。
3 queueName 不可 ジョブの投入先のキュー名を,1〜63バイトの文字列で指定します。
なお,JP1/AJS3 - SOA Optionからサブミットジョブの操作を要求する場合,エージェントの直接指定はできません。
4 userName ジョブ実行時のアカウントとなるOSユーザー名を,1〜63バイトの文字列で指定します。
ジョブ実行ホストがWindowsの場合,サブミットジョブの実行ユーザーをローカルホストのユーザーに限定したいときは,OSユーザー名を「サーバ名\ユーザー名」の形式で指定してください。
OSユーザー名を指定しない場合は,nullを指定してください。nullを指定した場合,WS-Server動作環境設定定義ファイルで指定するJP1ユーザーにマッピングされているエージェントホストのOSユーザーで実行されます。
5 jobName 登録するジョブ名を,1〜63バイトの文字列で指定します。
ジョブ名を指定しない場合は,nullを指定してください。nullを指定した場合,execFileで指定する実行ファイル名のファイル名部分(パス名を除いた部分)の先頭から63バイト分の文字列が仮定されます。
6 priority※1 登録するジョブの実行優先順位を,1〜5の整数で指定します。
指定する実行優先順位の値と意味については,表4-6を参照してください。
実行優先順位を指定しない場合は,0を指定してください。何も指定しなかった場合は,実行優先順位は1が仮定されます。
7 execFile 不可 実行ファイル名を,1〜511バイトの文字列で指定します。
ジョブ実行先エージェントホストがWindowsの場合,エージェントホストにある実行ファイル名を指定します。
ジョブ実行先エージェントホストがUNIXの場合,ジョブを実行するエージェントホストにあるスクリプトファイル名を指定します。
ファイル名は,絶対パスまたは相対パスで指定できます。相対パスで指定した場合,workPathで指定されたジョブ実行時の作業用パスまたはPATH環境変数で指定されたパスからの相対パスになります。有効となるPATH環境変数は,エージェントホストのOSによって異なります。

エージェントホストがWindowsの場合
システム環境変数

エージェントホストがUNIXの場合
ジョブを実行するOSユーザーのPATH環境変数
実行ファイル名に空白文字が含まれる場合,実行ファイル名を「"」で囲んでください。例えば,「aaa bbb」は「"aaa bbb"」と指定します。
8 args 実行ファイルに対する引数を,文字列の配列形式で指定します。
各配列要素の文字列長の総和が1〜(1,024 - (配列要素数*3))となるように指定します。
引数を指定しない場合はnullを指定してください。
9 workPath ジョブ実行時の作業用パス名を,1〜511バイトの文字列で指定します。絶対パスで指定します。
作業用パスを指定しない場合は,nullを指定してください。nullを指定した場合,ジョブ実行時の作業用パスは次のパスが仮定されます。

エージェントホストがWindowsの場合
エージェントの環境設定に設定されている,エージェントプロセス実行時の作業用フォルダ

エージェントホストがUNIXの場合
ジョブ実行ユーザーのホームディレクトリ
10 shellPath エージェントホストのOSがUNIXの場合だけ指定できます。
ジョブの起動シェルおよび実行シェルを,1〜511バイトの文字列で指定します。絶対パスで指定します。
起動シェルおよび実行シェルを利用しない場合,nullを指定してください。
11 exclusiveResourceName ジョブの排他実行をする場合,排他実行リソース名を1〜63バイトの文字列で指定します。
ジョブの排他実行をしない場合は,nullを指定してください。
12 startTime ジョブの実行開始日時を指定します。
実行開始日時を指定しない場合,nullを指定してください。nullを指定した場合,または過去の日時を指定した場合,ジョブ実行開始日時は指定されなかったと仮定され,登録後ジョブは実行待ちまたは実行中状態になります。
日時は次の形式のどれかで指定してください。
  • YYYY/MM/DD.hh:mm:ss
    指定日時よりあとにジョブ実行登録した場合,ジョブ実行開始日時は指定されなかったと仮定されます。
  • 曜日.hh:mm:ss
    指定した曜日がジョブを登録した曜日と同じで,かつ指定時刻よりあとにジョブ実行登録した場合,ジョブ実行開始日時は指定されなかったと仮定されます。
  • hh:mm:ss
    指定時刻よりあとにジョブ実行登録した場合,ジョブ実行開始日時は指定されなかったと仮定されます。
  • YYYY/MM/DD
    ジョブの開始時刻は,指定日付の00:00:00が仮定されます。指定日付の00:00:00よりあとにジョブ実行登録した場合,ジョブ実行開始日時は指定されなかったと仮定されます。
  • n
    ジョブ実行登録を行ったn日後に実行待ちまたは実行中状態になります。
各指定の意味を次に説明します。()内は,指定できる範囲を示します。

YYYY
西暦年(1980〜2038)

MM
月(01〜12)

DD
日(01〜31)

hh
時(00〜23)

mm
分(00〜59)

ss
秒(00〜59)

曜日
曜日(sun,mon,tue,wed,thu,fri,sat)
小文字で指定します。

n
日(0〜366)
13 execLimitTime 不可 ジョブの実行が終了しない場合に実行を打ち切るジョブ実行開始時刻からの相対時間(分)を,1〜1,440の整数で指定します。
ジョブ実行の打ち切りをしない場合は,0を指定してください。
14 recoverStatus※2 不可 ジョブ実行中にエージェントホストでトラブルが発生した場合の,ジョブの回復モードを整数定数で指定します。
指定できる値と内容は表4-7を参照してください。
ジョブの回復モードを指定しない場合は,0を指定してください。
15 stdinFilePath ジョブ実行時に使用する標準入力ファイル名を,1〜511バイトの文字列で指定します。絶対パスまたは相対パスで指定します。
相対パスで指定した場合,workPathで指定されたジョブ実行時の作業用パスからの相対パスとなります。
指定する標準入力ファイルは,ジョブを実行するエージェントホストに作成しておく必要があります。
標準入力ファイルを使用しない場合は,nullを指定してください。
16 stdoutFilePath ジョブ実行時に出力する標準出力ファイル名を,1〜511バイトの文字列で指定します。絶対パスまたは相対パスで指定します。
相対パスで指定した場合,workPathで指定されたジョブ実行時の作業用パスからの相対パスとなります。指定する標準出力ファイルは,ジョブを実行するエージェントホストに作成されます。
標準出力ファイルを出力しない場合は,nullを指定してください。
17 stdoutWriteMode※3 不可 標準出力ファイルに出力するとき,ファイルを上書きするか,または追加書きするかを整数定数で指定します。
指定できる値と内容は,表4-8を参照してください。
stdoutFilePathにnullを指定した場合,この指定は無視されます。
18 stderrFilePath ジョブ実行時に出力する標準エラー出力ファイル名を,1〜511バイトの文字列で指定します。絶対パスまたは相対パスで指定します。
相対パスで指定した場合,workPathで指定されたジョブ実行時の作業用パスからの相対パスとなります。
指定する標準出力エラーファイルは,ジョブを実行するエージェントホストに作成されます。
標準エラー出力ファイルを出力しない場合は,nullを指定してください。
19 stderrWriteMode※3 不可 標準エラー出力ファイルに出力するとき,ファイルを上書きするか,または追加書きするかを整数定数で指定します。
指定できる値と内容は,表4-8を参照してください。stderrFilePathにnullを指定した場合,この指定は無視されます。
20 envFilePath ジョブ実行時に使用する環境変数ファイル名を,1〜511バイトの文字列で指定します。絶対パスまたは相対パスで指定します。
相対パスで指定した場合,workPathで指定されたジョブ実行時の作業用パスからの相対パスとなります。
指定する環境変数ファイルは,ジョブを実行するエージェントホストに作成しておく必要があります。
環境変数ファイルを使用しない場合は,nullを指定してください。

注※1
引数priorityに指定する実行優先順位の指定値と意味を,次の表に示します。

表4-6 実行優先順位の指定値と意味

実行優先順位の
指定値
Windowsでの実行優先順位 UNIXでの実行優先順位
1 対話処理と比較して低い nice値+20
2 nice値+10
3 対話処理と同等 nice値
4 対話処理と比較して高い nice値-10
5 nice値-20
エージェントホストがUNIXの場合で,実行時のユーザーがスーパーユーザー権限を持たないユーザーのとき,実行優先順位として4または5を指定すると,ジョブ実行登録時に権限エラーになります。

補足事項
Windowsの場合,実行優先順位は3段階になります。次の三つの実行優先順位クラスを設定してジョブのプロセスを起動します。
  • 実行優先順位の設定値が1または2の場合,システムがアイドル状態のときに実行されます(Windowsで規定されるIDLE_PRIORITY_CLASSを設定します)。
  • 実行優先順位の設定値が3の場合,一般的なプロセスとして実行されます(Windowsで規定されるNORMAL_PRIORITY_CLASSを設定します)。
  • 実行優先順位の設定値が4または5の場合,上記の優先順位クラスを割り当てられたプロセスのスレッドより先に実行されます(Windowsで規定されるHIGH_PRIORITY_CLASSを設定します)。
UNIXの場合,nice値のデフォルトとして,jajs_spmdを実行した際のJP1/AJS3サービスまたはJP1/AJS2サービスのnice値を基準とします。特に設定されていない場合のnice値は20が仮定されます。
実行優先順位の設定値が1でnice値が20の場合,実行優先順位の値は次のようになります。
 39 ≒ 20(初期値)+ 20(増分値)
実行優先順位の値がnice値の範囲(0〜39)を超える場合,最大値は39,最小値は0です。
 

注※2
引数recoverStatusに指定するジョブ回復モードの指定値と意味を,次の表に示します。

表4-7 定数一覧(ジョブ回復モード)

定数名 説明
int STATUS_WAITING ジョブを実行待ち状態にします。
int STATUS_HOLDING ジョブを保留状態にします。
int STATUS_TERMINATE ジョブを強制終了します。
 

注※3
引数stdoutWriteModeおよびstderrWriteModeに指定するファイル出力モードの指定値と意味を,次の表に示します。

表4-8 定数一覧(標準出力ファイルおよび標準エラー出力ファイルの出力モード)

定数 説明
int MODE_APPEND 標準出力ファイルまたは標準エラー出力へ追加モードで出力します。
int MODE_TRUNC 標準出力ファイルまたは標準エラー出力へ上書きモードで出力します。

戻り値
なし

例外
例外が発生した場合,このメソッドは例外クラス(AjsWsException)を送出します。

(2) subJobEntryメソッド

説明
このクラスのコンストラクタ(AjsWsSubjob)で指定されたマネージャーホストのキューへ,ジョブの実行登録を要求します。ジョブ実行終了の待ち合わせはしません。ジョブ実行登録時の動作は,コンストラクタで指定された情報によって決まります。

形式
public synchronized void subJobEntry()

引数
なし

戻り値
なし

例外
例外が発生した場合,このメソッドは例外クラス(AjsWsException)を送出します。

(3) subJobGetメソッド

説明
ジョブの実行状況を監視し,結果をジョブ情報クラス(AjsWsSubjobInfo)のインスタンスとして返します。

形式
public AjsWsSubjobInfo subJobGet()

引数
なし

戻り値
ジョブの実行状況監視の結果をジョブ情報クラス(AjsWsSubjobInfo)のインスタンスとして返します。

例外
例外が発生した場合,このメソッドは例外クラス(AjsWsException)を送出します。

(4) subJobKillメソッド

説明
ジョブを強制終了します。ジョブが実行待ち,保留,または時間待ち状態の場合は,ジョブの実行をキャンセルします。ジョブが実行中の場合は,ジョブの実行を強制終了します。

形式
public void subJobKill()

引数
なし

戻り値
なし

例外
例外が発生した場合,このメソッドは例外クラス(AjsWsException)を送出します。

(5) ジョブ制御クラスの実装例

ジョブ制御クラスの実装例を次に示します。

[図データ]

[図データ]

[図データ]

[図データ]

[図データ]

(6) ジョブ制御クラスの注意事項

(7) ジョブ制御クラスで,標準入力データ・標準出力データ・標準エラー出力データを指定する場合の注意事項

(8) ジョブ制御クラスで,環境変数ファイルを指定する場合の注意事項

[目次][前へ][次へ]


[他社商品名称に関する表示]

Copyright (C) 2009, 2011,Hitachi, Ltd.
Copyright (C) 2009, 2011,Hitachi Solutions, Ltd.