uCosminexus Batch Job Execution Server 使用の手引(Windows(R)用)
EXEC要素にLANG="Java"を指定した場合のJavaバッチアプリケーションの実行に必要な情報の定義方法について示す。
バッチジョブ実行システムからJavaバッチアプリケーションを実行する場合には,次に示す情報をジョブ定義XMLファイルに指定する。バッチジョブ実行システムは,これらの情報を指定してcjexecjobコマンドを呼び出し,Javaバッチアプリケーションを実行する。
表3-54 ジョブ定義XMLファイルに指定する情報
| 要素 | 属性 | 指定する値 | 最大長 | 説明 |
|---|---|---|---|---|
| EXEC | PGM | Javaアプリケーションクラス名(必須) | 247文字 | パッケージ名を含む,Javaアプリケーションのクラス名を指定する。 例: PGM="jp.co.Hitachi.MyBank.MyBatchJob" |
| LANG | "Java"(必須) | 4文字 | ジョブステップで実行するプログラムがJavaアプリケーションであることを示す。常に"Java"を指定する。 例: LANG="Java" |
|
| Group | スケジュールグループ名 | 63文字 | ジョブスケジューリング機能で,CTMがバッチアプリケーションの実行をスケジューリングするときに割り当てるバッチサーバのグループを指定する。 例: Group="MyScheduleGroup" |
|
| Option | Javaオプション | 1,023文字 | Java VMに渡すオプションを指定する。次のオプションが指定できる。 -cp, -classpath: Javaアプリケーション実行時のクラスパスを指定する。 -D<name>=<value>: システムプロパティを指定する。 例: Option="-cp C:\mydir\hello.jar -DHELLO=WORLD" |
|
| PARM | mainメソッドに渡す引数 | 958文字 | Javaアプリケーションのmainメソッドに渡す引数を指定する。 |
指定例を次に示す。
<EXEC PGM="jp.co.Hitachi.MyBank.MyJob" LANG="Java" Group="MyGroup" Option="-cp C:\mydir\hello.jar -DHello=World" PARM="myjob check_transaction" /> |
DD要素で指定した内容は,バッチジョブ実行システムによって-DオプションとしてJavaオプションに指定される。指定例を次に示す。
<DD NAME="WRITEDATA" TYPE="FILE" DSN="C:\myinfo\mydata.txt" DISP="OLD" /> |
ジョブ定義XMLファイル中のLANG="Java"のジョブステップで上記DD要素が定義された場合,バッチジョブ実行システムはNAME属性の指定値に"DDN_"を与えた文字列とDSN属性の指定値を,それぞれ次に示すように-Dオプションの<name>および<value>としてJavaオプションに設定する。指定例を次に示す。
-DDDN_WRITEDATA="C:\myinfo\mydata.txt" |
これによって,Javaアプリケーション内で<name>の値をキーとして,DD要素に指定されたファイルのパス名を取得できる。指定例を次に示す。
:
java.lang.String mystr;
mystr = System.getProperty("DDN_WRITEDATA");
// これによってmystrに"C:\myinfo\mydata.txt"が格納される。
:
|
バッチジョブ実行システムは,ジョブ定義XMLファイルに指定されたJavaバッチアプリケーション用の属性値に基づいてcjexecjobコマンド用の引数を作成し,cjexecjobコマンドを呼び出す。
ジョブ定義XMLファイルでのJavaバッチアプリケーション用のXML属性の指定方法を次に示す。
<EXEC PGM="<Javaアプリケーションクラス名>" LANG="Java" Group="<スケジュールグループ名>" Option="<Javaオプション>" PARM="<mainメソッドに渡す引数>"/> <DD NAME="<-Dオプションのname部分"DSN="<-Dオプションのvalue部分"/> |
上記のXML定義ファイルを指定した場合,バッチジョブ実行システムは次のようにcjexecjobコマンドを呼び出す。
cjexecjob△<スケジュールグループ名>△-jobID△<ジョブID>△ <Javaオプション>△"-DDDN_<-Dオプションのname部分>= <-Dオプションのvalue部分>"△"<Javaアプリケーションクラス名>"△ <mainメソッドに渡す引数> |
構築例を次に示す。
<EXEC PGM="jp.co.Hitachi.MyBank.MyJob" LANG="Java" Group="MyGroup" Option="-cp C:\mydir\hello.jar -DHello=World" PARM='"myjob check_transaction"'/><DD NAME=" WRITEDATA" DSN="C:\myinfo\mydata.txt" DISP="OLD"/> |
上記のジョブ定義XMLを指定した場合,次のようなcjexecjobコマンドラインが構築される。
cjexecjob△MyGroup△-jobID△<BJEXが自動割り当てした29桁の英数字> △-cp△C:\mydir\hello.jar△-DHello=World△ -DDDN_WRITEDATA=C:\myinfo\mydata.txt△"myjob check_transaction" |
ジョブスケジューリング機能を利用したJavaアプリケーションの実行には,ジョブIDの情報が必要となる。LANG="Java"指定のJavaバッチアプリケーションの実行ではバッチジョブ実行システムが,実行したJavaバッチアプリケーションを識別するために独自にジョブIDを割り当てる。その機能によって,ジョブステップごとにユニークなジョブIDを保証するため,Option属性にcjexecjobコマンドの"-jobID"オプションを指定しないこと。指定した場合,バッチジョブ実行システムからJavaバッチアプリケーションの強制停止はできない。バッチジョブ実行システムは,次の形式でジョブIDを作成してJavaアプリケーションに割り当てるため,運用でほかのJavaバッチアプリケーションと重複しないようにすること。Javaアプリケーションに対するジョブIDの割り当て形式を次の図に示す。
図3-47 Javaアプリケーションに対するジョブIDの割り当て形式
Javaアプリケーションに対するジョブIDの割り当て形式の項目と内容を次の表に示す。
表3-55 Javaアプリケーションに対するジョブIDの割り当て形式の項目と内容
| 項目 | 長さ | 内容 |
|---|---|---|
| BJEX | 4桁 | バッチジョブ実行システムが割り当てるジョブIDに自動的に与えられる。"BJEX"固定である。 |
| ジョブ識別子 | 6桁 | バッチジョブ実行システムがジョブごとに割り当てるジョブ識別子である。 |
| ステップ番号 | 3桁 | バッチジョブ実行システムが割り当てるジョブステップの通し番号である。 |
| 時刻情報 | 8桁 | 内部的な時刻識別用情報である。 |
| ID | 8桁 | 内部的な識別用IDである。 |
All Rights Reserved. Copyright (C) 2009, 2016, Hitachi, Ltd.