cjexecjob(バッチアプリケーションの実行)
形式
- スケジューリング機能を使用しない場合
cjexecjob <サーバ名称> [[<Javaオプション>]...] <Javaアプリケーションクラス名> [[<mainメソッドに渡す引数>]...]
- スケジューリング機能を使用する場合
cjexecjob [<スケジュールグループ名>] [-jobID <ジョブID>] [[<Javaオプション>]...] <Javaアプリケーションクラス名> [[<mainメソッドに渡す引数>]...]
機能
スケジューリング機能を使用しない場合は,指定したサーバ名称のバッチサーバでバッチアプリケーションを実行します。
スケジューリング機能を使用する場合は,CTMによって振り分けられたバッチサーバでバッチアプリケーションを実行します。なお,ジョブが実行できるバッチサーバがないときは,バッチアプリケーションをスケジュールキューに待機させます。
<Javaオプション>以降の引数として指定できる引数のサイズは,1024バイト未満です。
cjexecjobコマンドを実行した場合,およびcjexecjobコマンドの処理が終了した場合は,メッセージが出力されます。cjexecjobコマンドが出力するメッセージは,usrconf.cfg(バッチアプリケーション用オプション定義ファイル)のbatch.log.stdout.enabledキーによって抑止できます。
cjexecjobコマンドのオプションは,usrconf.cfg(バッチアプリケーション用オプション定義ファイル)で指定します。また,システムプロパティは,usrconf.properties(バッチアプリケーション用ユーザプロパティファイル)で指定します。usrconf.cfg(バッチアプリケーション用オプション定義ファイル)およびusrconf.properties(バッチアプリケーション用ユーザプロパティファイル)が格納されているディレクトリは,次の順で検索されます。
-
環境変数(CJBATCHUSRCONFDIR)に指定したディレクトリ※
-
cjexecjobコマンドを実行したディレクトリ
注※ 環境変数(CJBATCHUSRCONFDIR)にはディレクトリを絶対パスで指定してください。
同じキーのシステムプロパティを複数指定した場合,最後に指定したシステムプロパティが優先されます。
同じキーのシステムプロパティを異なる手段で指定した場合の優先順位は次のとおりです。
-
cjexecjobコマンドの引数
-
usrconf.properties(バッチアプリケーション用ユーザプロパティファイル)
-
usrconf.cfg(バッチアプリケーション用オプション定義ファイル)
-
usrconf.properties(バッチサーバ用ユーザプロパティファイル)
-
usrconf.cfg(バッチサーバ用オプション定義ファイル)
引数
- <サーバ名称>
-
バッチアプリケーションを実行するバッチサーバの名称を指定します。
- <スケジュールグループ名>
-
CTMがバッチアプリケーションの実行をスケジューリングするときに割り当てるバッチサーバのグループ名を指定します。
スケジュールグループ名は,usrconf.cfg(バッチアプリケーション用オプション定義ファイル)でも指定できます。スケジュールグループ名の指定の優先順位は次のとおりです。
-
cjexecjobコマンドの引数
-
usrconf.cfg(バッチアプリケーション用オプション定義ファイル)
なお,スケジュールグループ名の指定は省略できます。スケジュールグループ名の指定を省略した場合のデフォルト値は"JOBGROUP"です。
-
- -jobID <ジョブID>
-
実行するバッチアプリケーションのジョブIDをユニークな1〜32文字の英数字で指定します。
-jobID <ジョブID>を省略した場合,ジョブIDは自動生成されます。ジョブIDの自動生成については,マニュアル「アプリケーションサーバ 機能解説 拡張編」の「4. バッチアプリケーションのスケジューリング」を参照してください。
UNIXの場合,<ジョブID>の指定を省略しバッチアプリケーションを起動したときは,アプリケーションを停止する際に,ジョブIDをダブルクォーテーション("")で囲んで次のように指定する必要があります。
-jobID "<ジョブID>"
- <Javaオプション>
-
JavaVMの起動オプションを指定します。
指定できるオプションを次に示します。
-
-cp
-
-classpath
-
-D<name>=<value>
-
- <Javaアプリケーションクラス名>
-
パッケージ名を含めたJavaアプリケーションのクラス名を指定します。
- <mainメソッドに渡す引数>
-
Javaアプリケーションのmainメソッドに渡す引数を指定します。
スケジューリング機能を使用する場合に,<スケジュールグループ名>を省略するときは,次のどちらかの引数を必ず一緒に指定してください。
-
<ジョブID>
-
<Java オプション>
次に例を示します。
(誤った例) cjexecjob com.hitachi.mypackage.MyBatchApp argA argB (正しい例) cjexecjob -jobID JOBID com.hitachi.mypackage.MyBatchApp argA argB cjexecjob -D<name>=<value> com.hitachi.mypackage.MyBatchApp argA argB
-
入力例
- スケジューリング機能を使用しない場合
cjexecjob MyBatchServer com.hitachi.mypackage.MyBatchApp
- スケジューリング機能を使用する場合
cjexecjob JOBGROUP com.hitachi.mypackage.MyBatchApp
戻り値
- <public static int main(String[])メソッドからreturnした値>:
-
public static int main(String[])メソッドを使用した場合に返却されます。
- <System.exit(),Runtime.halt(),Runtime.exit()の引数に指定した値>:
-
System.exit(),Runtime.halt(),Runtime.exit()を使用した場合に返却されます。
- 0:
-
public static void main(String[])メソッドを使用して,正常終了しました。
- 1:
-
バッチアプリケーションの実行に失敗しました。
または,バッチアプリケーションを強制終了しました。
注意事項
-
UNIXの場合,バッチサーバを起動したComponent Container管理者またはスーパーユーザがコマンドを実行できます。
Windowsの場合,管理者特権でコマンドを実行してください。
-
サーバ名称は,バッチサーバのセットアップ時に指定したサーバ名称と大文字・小文字を一致させた文字列を指定してください。
-
クラスパスを複数指定した場合,すべての指定が有効になります。例えば,"-cp a -cp b"を指定した場合,"-cp a;b"(Windowsの場合)と同等になります。
-
クラスパスは指定した順に検索します。複数のクラスパスを異なる手段で指定した場合,次の順番で検索します。
-
usrconf.cfg(バッチサーバ用オプション定義ファイル)
-
cjexecjobコマンドの引数
-
usrconf.cfg(バッチアプリケーション用オプション定義ファイル)
クラスパスはCLASSPATH環境変数には指定できません。指定しても無視されます。
また,-cp,-classpathの指定がない場合,デフォルトのクラスパスとしてカレントディレクトリは使用されません。
-
-
クラスパスに相対パスを指定した場合,コマンドを実行したディレクトリからの相対パスとして扱います。
-
cjexecjobコマンドの引数にマルチバイト文字を使用する場合は,次の個所で使用しているマルチバイト文字とエンコードを統一してください。
-
usrconf.cfg(バッチアプリケーション用オプション定義ファイル)
-
usrconf.cfg(バッチサーバ用オプション定義ファイル)
-
バッチアプリケーションのソースコード(バッチアプリケーション内のjava.lang.System.out,またはjava.lang.System.err)
-
-
スケジューリング機能を使用する場合,cjexecjobコマンドとバッチサーバ間の通信タイムアウトの設定をusrconf.cfg(バッチアプリケーション用オプション定義ファイル)で指定できます。デフォルト値は0で,無限待ちとなります。