ページの先頭行へ戻る
Interstage Job Workload Server バッチ開発ガイド
FUJITSU Software

2.5.4 コマンド/スクリプト

コマンド/スクリプトについて説明します。

注意

Interstage Job Workload Serverでの“コマンド”および“スクリプト”とは、以下を示します。

  • コマンド

              実行モジュール

              アプリケーション(拡張子“exe”)

  • スクリプト

              シェルスクリプト

              バッチファイル(拡張子“bat”)

2.5.4.1 コマンド/スクリプトの形態

コマンド/スクリプトの形態について説明します。


参考

バッチアプリケーションとして動作するコマンド/スクリプトの作成については、バッチ実行基盤の規定する形態はありません。

2.5.4.2 コマンド/スクリプトのインタフェース

バッチジョブ定義で設定した入力パラメタを、バッチアプリケーション(コマンド/スクリプト)に渡すことができます。また、バッチアプリケーションからの復帰コード(ジョブステップの終了コード)で、後続ジョブステップを実行するかを制御できます。

バッチジョブ定義とバッチアプリケーションの入力パラメタ、および復帰コードの関係を以下に示します。(例でのパス名などは、SolarisおよびLinuxの形式で記載しています。)

バッチアプリケーションには、以下のインタフェースがあります。


入力パラメタ

バッチアプリケーションのパラメタの値の設定は、バッチジョブ定義のジョブステップ定義のアプリケーション定義で行います。

コマンド/スクリプトに渡るパラメタは、文字列型となり、二重引用符(")で囲まれます。

パラメタには、ステップ定義内の資源定義で定義した資源名を指定することができます。パラメタに資源名を指定した場合、資源名に対応するファイルパスに置き換えられて、アプリケーションが呼び出されます。資源名を指定する場合は、“$[”と“]”で資源名を括ってください。

注意

  • バッチアプリケーションのパラメタ数は最大256個です。

  • パラメタの最大長は1,024バイトです。

  • パラメタに指定できる資源名は、当該ステップ定義で定義されている資源名だけです。

  • ステップ定義に定義されていない資源名を指定した場合、バッチジョブ定義の保存時に、警告メッセージを出力します。警告メッセージを無視して作成したステップ定義をジョブ実行時に指定した場合、定義した文字列がそのままアプリケーションのパラメタになります。

  • 1つのパラメタに複数の資源名を指定することができますが、資源名から物理的なパスに置き換えた後のパラメタ長が、パラメタの最大長(1,024)を超えないようにしてください。超えた場合、ジョブ実行時にエラーになります。

  • ステップ定義に定義されている資源名と同じ文字列を“$[”と“]”で括った文字列($[資源名])を物理ファイルパスに変換しないで、アプリケーションのパラメタとして渡すことができません。“$[”と“]”で括った文字列をそのままアプリケーションのパラメタとして渡す場合は、資源名と同じにならないように注意してください。

復帰コード

バッチアプリケーションの復帰コードを決定します。復帰コードの範囲は、バッチ実行基盤が動作するOSに準拠します。
また、バッチ実行基盤で使用できるユーザアプリケーションの復帰コードは、ジョブのジョブステップ終了コードとジョブ終了コードにもなります。

注意

バッチ実行基盤とSystemwalker Operation Managerを連携する場合、バッチアプリケーションの復帰コードを0 ~ 200の範囲にしてください。バッチアプリケーションの復帰コードがこの範囲以外の場合には、Systemwalker Operation Managerの仕様にしたがいます。

注意


復帰コードとして、“-529697949”は使用できません。使用した場合、バッチアプリケーションが異常終了したと見なします。

環境変数

バッチアプリケーションで使用する環境変数です。
ジョブで使用できる環境変数には以下があります。

ジョブステップの環境変数、およびジョブの環境変数はバッチジョブ定義で設定して、バッチアプリケーションに渡すことができます。
ジョブステップの環境変数、およびジョブの環境変数を使用したバッチアプリケーション間のデータの引継ぎはできません。


参照

バッチワークユニットの環境変数については、“Interstage Job Workload Server セットアップガイド”の“環境変数の設定指針”を参照してください。


ファイル資源の割当て

ファイル管理機能が、バッチジョブ定義に設定した資源名とファイルの物理的なパスの対応関係を環境変数に設定しバッチアプリケーションに通知します。これにより、バッチアプリケーションに直接、物理的なパスを記述しないでファイルをアクセスできます。

以下にファイルのアクセス方法の例について示します。(例でのパス名などは、SolarisおよびLinuxの形式で記載しています。)

バッチジョブ定義で資源名“FIL1”を設定します。資源名“FIL1”は“/data/2006/”に割り当てられているファイル“file1”です。バッチアプリケーションでは、環境変数である資源名“FIL1”に設定されたファイルのパスを取得して、“/data/2006/”に割り当てられているファイル“file1”にアクセスします。


参考

  • ファイルの物理的なパスを変更する場合は、バッチジョブ定義のファイル名を変更することでアクセス対象のファイルを変更することができるため、バッチアプリケーションの汎用性が高くなります。

  • バッチアプリケーションとして、パラメタに指定した出力ファイルが存在するとエラーになるコマンドを使用する場合、ファイル資源の割当てを以下のように設定して使用します。

    1. コマンドを使用するジョブステップで、新規にファイルを作成する(アプリケーションでファイルを作成する)を設定します。

    2. 必要に応じてコマンドが出力したファイルを後続ステップに引き継ぎます。

    3. 後続ジョブステップで先行ステップから引き継いだファイルの情報を入力として処理を行います。

2.5.4.3 コマンド/スクリプトの注意事項

バッチ実行基盤環境で実行する、バッチアプリケーション(コマンド/スクリプト)を開発する場合は、以下の注意事項を踏まえたうえで設計します。

標準入力からのデータの読込みについて

バッチアプリケーション内で、標準入力(stdin)から業務データや制御データは読み込めません。

標準出力/標準エラー出力への出力について

標準出力/標準エラー出力の出力先をジョブログとしている場合、バッチアプリケーションから標準出力(stdout)/標準エラー出力(stderr)に大量データを出力しないでください。標準出力/標準エラー出力へ出力できるデータの量は、以下に示す上限があるため、上限を超えて出力した分のデータは、切り捨てられます。

出力先をジョブログとしている場合の標準出力/標準エラー出力に出力できるデータ量の上限

標準出力/標準エラー出力 合わせて1ジョブあたり2メガバイト

ただし、ジョブログにおける標準出力/標準エラー出力には、バッチ実行基盤からジョブの実行に関するデータを出力するため、実際にバッチアプリケーションから標準出力/標準エラー出力へ出力できるデータ量は、上記の上限より少なくなります。

注意

標準出力/標準エラー出力の出力先をジョブログとしている場合、バッチアプリケーションから、標準出力/標準エラー出力に業務データ等の重要なデータを出力しないでください。

業務用データベースのトランザクション制御について

バッチ実行基盤では、バッチアプリケーションが使用する業務用データベースのトランザクション制御を行いません。バッチアプリケーション内でトランザクション制御を行ってください。

IPC資源について

バッチ実行基盤では、バッチアプリケーションでのIPC資源の利用を管理しないため、プロセスダウン等が発生した場合、IPC資源が回収されません。

入力要求を求めるアプリケーションの実行

バッチアプリケーション内で、標準出力/標準エラー出力にプロンプトを出力して入力要求を求めるような処理はできません。コンソールがないため応答することができず、ジョブは中断します。

文字コードについて

バッチ受付サービス、バッチ実行サービス、バッチワークユニット、コマンド/スクリプト、引継ぎファイルなどで扱うデータの文字コードは、すべて同じ文字コードに統一してください。


参照

文字コードの設計については、“Interstage Job Workload Server セットアップガイド”の“文字コードの設計”を参照してください。

バッチ実行基盤が管理するプロセスの範囲について

バッチ実行基盤では、バッチジョブ定義のステップ定義に設定したバッチアプリケーションを実行し、当該バッチアプリケーションだけを監視しています。このため、以下の注意事項があります。