目次 前 次 PDF


バッチ・ランタイム環境でのZ/OS JCL

バッチ・ランタイム環境でのZ/OS JCL
この章には次のトピックが含まれます:
バッチ・ランタイム環境でのz/OS JCLの概要
この項では、ターゲット環境でz/OS JCL文に対応するものを見つける方法を説明します。これらの対応するものの中には、バッチ・ランタイム関数を参照するものや、UNIXまたはTuxedoの機能を直接利用しているものがあります。場合によっては、対応するものがなく、代替ソリューションが必要になることがあります。
このドキュメントはz/OS JCLについて説明することを目的としていないため、JCL文の説明はすべて、z/OS Internet Libraryを参照してください。
バッチ・ランタイム環境でのZ/OS JCLカード
次の表に、JCLカードのパラメータと、バッチ・ランタイムでそれに関連するコマンドを示します。
「ステータス」列では次の略語が使用されます。
N.R.は「関連なし」を示します
N.S.は「非対応」を示します
JCLカード対応表
 
m_JobBegin -c (TuxJESとともに使用)。
m_JobBegin -p (TuxJESとともに使用)。
m_JobBegin -t (TuxJESとともに使用)
DD文のDCBパラメータ
 
DD文のSYSOUTパラメータ
 
DD文のDATACLASパラメータ
DATACLASパラメータは、WB JCLレベルでのみ考慮されます。
z/OSから抽出されたDATACLASS情報を使用すると、WB JCL はm_FileAssign関数(またはIDCAMS DEFINEコマンド内のDATACLASパラメータからm_FileBuild関数)を更新します。
JOB文のRESTARTパラメータ
遅延ステップ再起動タイプのみ管理されます。
自動再起動(ステップまたはチェックポイント)および遅延チェックポイント再起動などの他のタイプは管理されません。
ジョブの遅延ステップ再起動は、m_JobBegin関数をジョブ手順を含む-rパラメータを使用してコーディングし、ジョブを再送信することによって発生します。
ストリーム内ファイル
ストリーム内ファイルは、-iパラメータを伴うm_FileAssign関数を使用してサポートされています。
ファイルの連結
ファイル(またはストリーム内ファイル)の連結は、-Cパラメータを伴うm_FileAssign関数を使用してサポートされています。
ファイルのオーバーライド
オーバーライド機能がサポートされています。
m_FileAssign関数によって管理されるファイルには、m_FileOverride関数を使用します。
m_OutputAssign関数によって管理されるファイルには、m_OutputOverride関数を使用します。
外部Sysinの実行
ファイルに格納されているコマンドを実行するには、m_UtilityExec関数を使用します。
ネットワーク・ジョブ入力(NJE)
次の表では、Oracle Tuxedo Application Rehosting Workbenchおよびバッチ・ランタイムでサポートされているJES2の制御文およびパラメータについて説明しています。
 
ABENDルーチン
ユーザー・プログラムから異常終了または正常終了を取得します。ILBOABN0CEE3ABDおよびART3ABDの3つのCOBOLプログラムが提供されます。これらは特定の条件で呼び出され、プログラムをそれ自体でABENDします。ABENDルーチンでstop runを呼び出すと、stop runは、バッチ・ランタイムが必要なクリーンアップを実行した後プロセスを終了します。
abcode: ABENDコード。
CEE3ABD abcodeclean-up
abcode: ABENDコード。
有効な値は、次のとおりです。
0: ABENDを発行します。Batch RuntimeはABENDを取得し、クリーンアップ作業を実行します。ジョブが失敗しました。
1: ABENDを発行します。Batch RuntimeはABENDを取得し、ファイルにシステム・ダンプを保存してから、クリーンアップ作業を実行します。ジョブが失敗しました。
abcode: ABENDコード。
ILBOABN0.cblソースは、Batch_RT/ejr/SAMPLEディレクトリにあります。
注意:
Micro Focus COBOLでは、バッチ・ランタイムは、2種類のABEND処理ルーチン(ILBOABN0ART3ABD)を提供します。これらはABENDを強制的に実行するために呼び出されます。Micro Focus COBOLでは、独自のABEND処理ルーチンCEE3ABDが提供されます。これはMicro Focus COBOLで定義されたとおりに機能します。
COBOL-IT COBOLでは、バッチ・ランタイムは2種類のABENDルーチン(ILBOABN0CEE3ABD)を提供します。
一般的なユーティリティ・コマンド対応表
 
 
ソート・ユーティリティ
ソート・ユーティリティ対応表
SORT, SORTD, DFSORT, ICEMAN, SYNCSORTT
 
ICETOOL
 
ソート制限
syncsortユーティリティの使用時には、いくつかの制限があります。
syncsortではDFSORT (DATE3)書式に相当するものはありません。
DFSORT文(outrec, inrec)は、次の場合は完全にはサポートされません。
outrecフィールドのキーまたはフィールド定義でフィールド定数タイプがカットされると、エラーが発生(SYSIN変換でのMT_ERROR)し、kshには:#PHXが発生します。
outrecフィールドのキーまたはフィールド定義がinrecに含まれない場合、エラーが発生します。
DB2ユーティリティ
DB2 Connect 9.7以上のみサポート対象。
 
DSNTIAUL
メインフレームでは、DSNTIAULプログラムはDB2表から順編成データ・セットにデータをアンロードするために使用されます。データはデータ・セットにコピーされ、表から削除されません。
Oracle Database表からデータをアンロードするためにバッチ・ランタイムに用意されているDSNTIAULユーティリティには、DB2を使用したメインフレームのDSNTIAULプログラムと同じ機能があります。
次の表に、サポートされているDB2データ型とOracle Databaseターゲットでの変換を示します。
 
注意:
デフォルトの書式YYYY-MM-DD-HH24.MI.SS.FF6のみがサポートされます。
注意:
デフォルトの書式HH24.MI.SSのみがサポートされます。
注意:
デフォルトの書式YYYY-MM-DDのみがサポートされます。
DSNTIAULの制限事項
同じデータベース表の列に対してselect文で同等のSQL関数を適用する場合、バッチ・ランタイムのDSNTIAULがOracle Databaseに対して出力するデータ型は、メインフレームのDSNTIAULがDB2に対して出力するデータ型と異なる場合があります。
DB2のrealFloat(n) (1<=n<=21)Float(n) (22<=n<=53)およびDoubleデータ型については、Oracle DatabaseでBINARY_DOUBLEデータ型(8バイト)に変換されます。Micro Focus COBOLを使用することで、COBOLプログラムのCOMP-2変数に対して、ターゲット・ファイルのフィールドを取得できます(COBOL-IT COBOLは不正確な結果をもたらす可能性があります)。
DSNTIAULの構成
バッチ・ランタイムのDSNTIAULを構成するには、次の操作を実行します。
1.
詳細は、『Oracle Tuxedo Application Runtime for Batchユーザー・ガイド』環境変数の設定に関する項を参照してください。
2.
これを有効にするには、export MT_DB_SQL_PREPROCESS="${JESDIR}/tools/sql/oracle/BatchSQLConverter.sh"を使用するか、$JESDIR/ejr/CONF/BatchRT.confMT_DB_SQL_PREPROCESSを構成します。
3.
MT_DSNTIAUL=Yを構成します。
MT_DSNTIAULのデフォルト値はYです。詳細は、『Oracle Tuxedo Application Runtime for Batchユーザー・ガイド』環境変数の設定に関する項を参照してください。
4.
DATETIMESTAMPTIMESTAMP WITH TIME ZONEおよびTIMESTAMP WITH LOCAL TIME ZONEの形式を設定します。
環境DSNTIAUL_DATE_FORMATは日付形式を定義します。設定しない場合は、デフォルト値のYYYY-MM-dd HH24:MI:SSが使用されます。
環境DSNTIAUL_TIMESTAMP_FORMATはタイムスタンプ形式を定義します。設定しない場合は、デフォルト値のYYYY-MM-DD-HH24.MI.SS.FF6が使用されます。
環境DSNTIAUL_TIMESTAMP_TZ_FORMATはタイムゾーン付きのタイムスタンプ形式を定義します。設定しない場合は、デフォルト値のYYYY-MM-DD-HH24.MI.SS.FF6が使用されます。
環境DSNTIAUL_TIMESTAMP_LTZ_FORMATはローカル・タイムゾーンのタイムスタンプ形式を定義します。設定しない場合は、デフォルト値のYYYY-MM-DD-HH24.MI.SS.FF6が使用されます。
5.
環境変数NLS_LANGは、言語と地域を定義します。設定されていない場合は、デフォルト値Americanが使用されます。
DSNUTILB
DSNUTILB
メインフレームでは、DSNUTILBはユーティリティ制御プログラムを指定します。バッチ・ランタイムは、Oracleの表から可変長の順次データ・セットへのデータのアンロード、および順次データ・セットからOracleの表へのデータのロードを行うためのDSNUTILBユーティリティを提供しています。
DSNUTILBの構成
DATETIMESTAMPTIMESTAMP WITH TIME ZONEおよびTIMESTAMP WITH LOCAL TIME ZONEの形式を設定します。
環境DSNUTILB_DATE_FORMATは日付形式を定義します。設定しない場合は、デフォルト値のYYYY-MM-dd HH24:MI:SSが使用されます。
環境DSNUTILB_TIMESTAMP_FORMATはタイムスタンプ形式を定義します。設定しない場合は、デフォルト値のYYYY-MM-DD-HH24.MI.SS.FF6が使用されます。
環境DSNUTILB_TIMESTAMP_TZ_FORMATはタイムゾーン付きのタイムスタンプ形式を定義します。設定しない場合は、デフォルト値のYYYY-MM-DD-HH24.MI.SS.FF6が使用されます。
環境DSNUTILB_TIMESTAMP_LTZ_FORMATはローカル・タイムゾーンのタイムスタンプ形式を定義します。設定しない場合は、デフォルト値のYYYY-MM-DD-HH24.MI.SS.FF6が使用されます。
DSNUTILB_CLEAN_TABLEを設定します。
環境DSNUTILB_CLEAN_TABLEは、DSNUTILBのロード・プロセスでREPLACEオプションが設定されている場合の表のレコードの削除方法を選択します。有効な値は、12および3です。これが設定されていないか、正しく設定されていない場合は、デフォルト値1を使用します。
1: ストアド・プロシージャを使用します。バッチ・ランタイムで提供されているSQLスクリプト$JESDIR/util/DSNUTILBPKG.sqlでは、DSNUTILB_PKGパッケージを作成でき、これには特定の表を切り捨てるプロシージャが含まれています。
2: 切捨て文を使用します。
3: 文DELETEを使用します。
環境変数NLS_LANGは、言語と地域を定義します。設定されていない場合は、デフォルト値Americanが使用されます。
COBOLランタイム
COBOLランタイムrunbは、ユーザーCOBOLプログラムを実行するために呼び出す前に、その実行コンテキストを初期化するために用意されています。このランタイムは、標準のCOBOLランタイムのかわりに使用されます。
Oracle Tuxedo Application Runtime for Batchの目的
データベースの対話管理
Oracle Tuxedo Application Runtime for Batchは、データベース・コンテキストの使用を管理します。
初期化: ランタイム・コマンドrunbは、MT_DB_LOGIN環境変数に従ってそれをデータベースに接続します。これは正しい値を持つ必要があります(ユーザー名、パスワード、およびOracleインスタンス - 少なくとも「/」)。TuxJESセキュリティ構成ファイルで使用され、ジョブの送信時に指定されるか、または環境変数として設定されます。構成ファイルが指定されていない場合は、環境変数MT_DB_LOGINの値が使用されます。
終了: プログラム・リターン・コードに応じて、バッチ・ランタイムはCOMMIT (プログラム・リターン・コードがMT_PROG_RC_ABORTより小さい場合)またはROLLBACK (プログラム・リターン・コードがMT_PROG_RC_ABORT以上の場合)を実行した後、データベースから切断します。
監視プログラム呼出しへのアクセス - svc99()
説明
メインフレームで、svc99()はz/OSのSVC99へのアクセスを提供する関数で、次のような機能を提供します
ART for Batchは、次の機能を提供します。
構文
int svc99(__S99parms *string);
この表は、__S99parmsに含まれる要素を示しています。
 
Cプログラムでのデータ型定義は、次のとおりです。
リスト2-1 Cプログラムでのデータ型定義
struct __S99struc {
unsigned char __S99RBLN; /* Length of the request block */
unsigned char __S99VERB; /* Action verb */
unsigned short __S99FLAG1; /* Flags 1 field */
unsigned short __S99ERROR; /* Error Code */
unsigned short __S99INFO; /* Info Code */
struct S99TU** __S99TXTPP; /* Pointer to text pointer array */
void ** __S99S99X; / * Pointer to the Request Extension Block */
unsigned int __S99FLAG2; /* FLags 2 field for APF authorized programs */
};
typedef struct __S99struc __S99parms;
 
COBOLプログラムでのデータ型定義は、次のとおりです。
リスト2‑2 COBOLプログラムでのデータ型定義
01 s99rb.
03 s99rb-len pic x(1).
03 s99rb-verb pic x(1).
03 s99rb-flag11 pic x(1).
03 s99rb-flag12 pic x(1).
03 s99rb-error pic 9(4) comp-5.
03 s99rb-info pic 9(4) comp-5.
03 s99rb-s99tu-array-ptr pointer.
03 s99rb-rbx pointer.
03 s99rb-flag21 pic x(1).
03 s99rb-flag22 pic x(1).
03 s99rb-flag23 pic x(1).
03 s99rb-flag24 pic x(1).
 
リターン・コード
リターン・コードは次のとおりです。
 
svc99()で処理中に強制終了しないエラーが発生した場合は、フィールド__S99INFOに情報理由コードが戻されます。
 
SVC99パラメータ
__S99RBLN
要求ブロックの長さを含む1バイトのフィールド。
__S99VERB
実行する動的割当て関数を識別する1バイトのフィールド。動詞コードおよび各コードが表す関数は、次のとおりです。
 
表2‑13 動詞コード
__S99ERROR
API svc99によって処理が完了したときにエラー理由コードが戻される、2バイトのフィールド。
__S99INFO
API svc99によって処理が完了したときに情報理由コードを含む、2バイトのフィールド。
__S99TXTPP
__S99TXTPP要素は、テキスト・ユニット・ポインタの配列を含む、アドレス指定可能な記憶域をポイントします。次の図は、テキスト・ユニット・ポインタ・リストとテキスト・ユニットのフォーマットを示しています。
注意:
 
テキスト・ユニット・キー。このキーは、テキスト・ユニットに含まれている情報のタイプを識別します。
数値。数値フィールドには、後続の長さとデータのペアの数が含まれています。ほとんどのテキスト・ユニットには、1つの長さフィールドと1つのデータ・フィールドのみがあります。
長さ。多数ある可能性のある長さフィールドの最初の1つです。長さ値には、その直後にあるデータ・フィールドの長さのみが含まれます。
データ。多数ある可能性のあるデータ・フィールドの最初の1つ。データ・フィールドには、渡されるパラメータ情報が含まれます。
Cプログラムでのデータ型定義は、次のとおりです。
リスト2-3 Cプログラムでのデータ型定義
struct S99TU { /* Array of text units */
unsigned short key; /* Key for type of parameter */
unsigned short number; /* Number of len/parm pairs to follow */
struct {
unsigned short len; /* Length of the following parm */
char parm[MAXTULEN]; /* Parameter value */
} ent;
};
 
COBOLプログラムでのデータ型定義は、次のとおりです。
リスト2‑4 COBOLプログラムでのデータ型定義
01 tu-ptr-list.
03 tu-ptr-xxx pointer.
……
03 pic x(8) value x'ffffffffffffffff'.
 
* Text Unit for allocate DSN - Data Set Name
01 ws-aldsn-TU-xxx.
03 ws-aldsn-TU-xxx-key pic 9(4) comp-5.
03 ws-aldsn-TU-xxx-num pic 9(4) comp-5.
03 ws-aldsn-TU-xxx-ent-len pic 9(4) comp-5.
03 ws-aldsn-TU-xxx-ent-txt pic x(80).
……
set tu-ptr-xxx to address of ws-aldsn-TU-xxx.
set s99rb-s99tu-array-ptr to address of tu-ptr-list.
 
SVC99プログラム
SVC99プログラムは、データ・セットを動的に割当ておよび割当て解除し、データ・セットの情報を取得するためにサポートされています。
データ・セットの割当て
dsname割当て関数には、動詞コード01と次にリストされているテキスト・ユニットを使用します。サポートされていないテキスト・ユニット・キーはすべてリストされていません。
 
注意:
データ・セットの割当て解除
動的割当て解除処理を要求するには、動詞コード02と次にリストおよび説明されているテキスト・ユニット・キーを使用します。データ・セットを割当て解除するには、DUNDDNAMキーを指定する必要があります。
 
データ・セットの情報の取得
動的割当てによって、割り当てられたリソースに関する特定の情報が戻されるように要求するには、動詞コード07と次の表にリストおよび説明されているテキスト・ユニットを使用します。情報の取得を要求するには、DINDDNAMキー、DINDSNAMキー、DINPATHキーまたはDINRELNOキーを指定する必要があります。
キーX'0001'、X'0002'、X'000F'およびX'8017'は入力キーです。これらを使用して、システムに情報を提供します。残りのキーは出力キーで、要求した情報を戻すために使用されます。
存在しない情報を戻すように要求した場合、そのパラメータの長さフィールドがゼロに設定され、そのパラメータのデータ・フィールドはなくなります。
 
付録
データ・セット・ステータス
データ・セット・ステータスには、次のいずれかの値を含めることができます。
 
データ・セットの標準/条件付き後処理
データ・セット割当てのためのデータ・セットの標準/条件付き後処理には、次のいずれかの値を含めることができます。
 
データ・セットの情報取得のためのデータ・セットの標準/条件付き後処理には、次のいずれかの値を含めることができます。
 
データ・セット編成
データ・セット編成には、次のいずれかの値を含めることができます。
 
データ・セット・レコード編成
データ・セット・レコード編成には、次のいずれかの値を含めることができます。
 

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved