Hitachi

uCosminexus Batch Job Execution Server 使用の手引


3.19.1 LANG="Java"を指定した場合のJavaバッチアプリケーションを実行する方法

EXEC要素にLANG="Java"を指定した場合のJavaバッチアプリケーションの実行に必要な情報の定義方法について示す。

〈この項の構成〉

(1) EXEC要素

バッチジョブ実行システムからJavaバッチアプリケーションを実行する場合には,次に示す情報をジョブ定義XMLファイルに指定する。バッチジョブ実行システムは,これらの情報を指定してcjexecjobコマンドを呼び出し,Javaバッチアプリケーションを実行する。

表3‒62 ジョブ定義XMLファイルに指定する情報(Javaバッチアプリケーションを実行する場合)

要素

属性

指定する値

最大長

説明

EXEC

PGM

Javaアプリケーションクラス名(必須)

1,023文字

パッケージ名を含む,Javaアプリケーションのクラス名を指定する。

例: PGM="jp.co.Hitachi.MyBank.MyBatchJob"

LANG

"Java"(必須)

4文字

ジョブステップで実行するプログラムがJavaアプリケーションであることを示す。常に"Java"を指定する。

例: LANG="Java"

Group

スケジュールグループ名

63文字

ジョブスケジューリング機能で,CTMがバッチアプリケーションの実行をスケジューリングするときに割り当てるバッチサーバのグループを指定する。

例: Group="MyScheduleGroup"

Option

Javaオプション

1,022文字

Java VMに渡すオプションを指定する。次のオプションが指定できる。

-cp, -classpath:Javaアプリケーション実行時のクラスパスを指定する。-D<name>=<value>:システムプロパティを指定する。

例: Option="-cp /mydir/hello.jar -DHELLO=WORLD"

PARM

mainメソッドに渡す引数

958文字

Javaアプリケーションのmainメソッドに渡す引数を指定する。

指定例を次に示す。

<EXEC PGM="jp.co.Hitachi.MyBank.MyJob" LANG="Java" Group="MyGroup" Option="-cp 
/mydir/hello.jar -DHello=World" PARM="myjob check_transaction" />

(2) DD要素

DD要素で指定した内容は,バッチジョブ実行システムによって-DオプションとしてJavaオプションに指定される。指定例を次に示す。

<DD NAME="WRITEDATA" TYPE="FILE" DSN="/myinfo/mydata.txt" DISP="OLD" />

ジョブ定義XMLファイル中のLANG="Java"のジョブステップで上記DD要素が定義された場合,バッチジョブ実行システムはNAME属性の指定値に"DDN_"を付与した文字列とDSN属性の指定値を,それぞれ次に示すように-Dオプションの<name>および<value>としてJavaオプションに設定する。指定例を次に示す。

-DDDN_WRITEDATA=/myinfo/mydata.txt

これによって,Javaアプリケーション内で<name>の値をキーとして,DD要素に指定されたファイルのパス名を取得できる。指定例を次に示す。

     :
java.lang.String mystr;
mystr = System.getProperty("DDN_WRITEDATA");
 
// これによってmystrに/myinfo/mydata.txtが格納される。
     :

(3) バッチジョブ実行システムによるcjexecjobコマンドラインの構築内容

バッチジョブ実行システムは,ジョブ定義XMLファイルに指定されたJavaバッチアプリケーション用の属性値に基づいてcjexecjobコマンド用の引数を作成し,cjexecjobコマンドを呼び出す。

ジョブ定義XMLファイルでのJavaバッチアプリケーション用のXML属性の指定方法を次に示す。

<EXEC PGM="<Javaアプリケーションクラス名>" LANG="Java"
Group="<スケジュールグループ名>" Option="<Javaオプション>"
PARM="<mainメソッドに渡す引数>"/>
<DD NAME="<NAME属性値>" DSN="<DSN属性値>"/>

上記のXML定義ファイルを指定した場合,バッチジョブ実行システムは次のようにcjexecjobコマンドを呼び出す。

/opt/Cosminexus/CC/batch/bin/cjexecjob <スケジュールグループ名> 
-jobID <ジョブID> <Javaオプション> -DDDN_<NAME属性値>=<ファイルパス> 
"< Javaアプリケーションクラス名> <mainメソッドに渡す引数>"

DD要素にRENAME属性を指定した場合は,-Dオプションは次の形式になる。

-D<RENAME属性値>=<ファイルパス>

構築例を次に示す。

<EXEC PGM="MyJob" LANG="Java" Group="MyGroup" 
Option="-cp /home/user/Java -DHello=World" PARM="arg1 arg2"/>
<DD NAME="WRITEDATA" TYPE="FILE" DSN="/tmp/mydata.txt" DISP="OLD"/>

上記のジョブ定義XMLを指定した場合,次のようなcjexecjobコマンドラインが構築される。

/opt/Cosminexus/CC/batch/bin/cjexecjob MyGroup -jobID 
<BJEXが自動割り当てした29けたの英数字> -cp /home/user/Java -DHello=World 
-DDDN_WRITEDATA=/tmp/mydata.txt MyJob arg1 arg2

(4) Javaバッチアプリケーションに対するジョブIDの自動割り当て

ジョブスケジューリング機能を利用したJavaアプリケーションの実行には,ジョブIDの情報が必要となる。LANG="Java"指定のJavaバッチアプリケーションの実行ではバッチジョブ実行システムが,実行したJavaバッチアプリケーションを識別するために独自にジョブIDを割り当てる。その機能によって,ジョブステップごとにユニークなジョブIDを保証するため,Option属性にcjexecjobコマンドの"-jobID"オプションを指定しないこと。指定した場合,バッチジョブ実行システムからJavaバッチアプリケーションの強制停止はできない。バッチジョブ実行システムは,次の形式でジョブIDを作成してJavaアプリケーションに割り当てるため,運用でほかのJavaバッチアプリケーションと重複しないようにすること。Javaアプリケーションに対するジョブIDの割り当て形式を次の図に示す。

図3‒55 Javaアプリケーションに対するジョブIDの割り当て形式

[図データ]

Javaアプリケーションに対するジョブIDの割り当て形式の項目と内容を次の表に示す。

表3‒63 Javaアプリケーションに対するジョブIDの割り当て形式の項目と内容

項目

長さ

内容

BJEX

4けた

バッチジョブ実行システムが割り当てるジョブIDに自動的に付与される。"BJEX"固定である。

ジョブ識別子

6けた

バッチジョブ実行システムがジョブごとに割り当てるジョブ識別子である。

ステップ番号

3けた

バッチジョブ実行システムが割り当てるジョブステップの通し番号である。

時刻情報

8けた

内部的な時刻識別用情報である。

ID

8けた

内部的な識別用IDである。

(5) 注意事項