バージョン 4.2.5
 —  オペレーション  —

z/VSE 環境下のバッチモードの Natural

このドキュメントでは、VSE オペレーティングシステムで Natural をバッチモードで実行する際の特別な考慮事項について説明します。

以下のトピックについて説明します。

バッチモードの Natural 全般に適用される考慮事項については、以下のセクションも参照してください。


NATVSE - Natural z/VSE バッチモードインターフェイス

Natural z/VSE バッチモードインターフェイス NATVSE は、z/VSE オペレーティングシステムとのインターフェイスとなる複数のサービスルーチンで構成されます。

NATVSE はソースモジュールとして提供され、必要に応じてカスタマイズできます。「z/VSE 環境での Natural のインストール」も参照してください。ここで、生成パラメータを設定できます。 アセンブルして Natural ニュークリアスにリンクすることも、単独で実行して共有ニュークリアスに接続することもできます。

NATVSE は 16 MB 境界より下で実行する必要があります。 1 つのバッチリージョン内で複数のセッションを同時に開始できます。「バッチモード環境のサブタスクセッションサポート」を参照してください。

Top of page

NTVSE マクロ - z/VSE 環境下の Natural の生成パラメータ

NTVSE マクロには、NATVSE 内部デフォルトを変更する複数の生成パラメータ(NATVSE コピーブック内で設定)があります。

これらのパラメータは次のとおりです。

NAME | BUFSIZE | CANCEL | DSECTS | FILEID | FILMNGR | FILSCAN | FLUSH | IDUMP | LE370 | LIBRID | MAXABND | RCSIZE | RJEUSER | SEGMENT | THDSIZE | USERID | WAITIME

NAME - 再配置可能モジュールの名前

NAME は、特定のアセンブリによって作成される再配置可能モジュールの名前を指定します。 設定可能値:

NAME=xxxxxx xxxxxx は、作成される再配置可能モジュールの名前です。

最大長は 8 文字です。

NAME=NATVSE これはデフォルト値です。

BUFSIZE - Natural I/O バッファのサイズ

BUFSIZE は、すべての入出力操作に使用される Natural I/O バッファのサイズを指定します。

BUFSIZE=nnnn nnnn は、Natural I/O バッファのサイズ(KB 単位)を指定します。

最小値は 8(KB)です。

BUFSIZE=8192 これはデフォルト値です。

CANCEL - セッション終了

CANCEL は、セッション終了時の Natural z/VSE インターフェイスの続行方法を指定します。 設定可能値:

CANCEL=YES

Natural が正常に終了したか、セッションが Natural TERMINATE ステートメントで終了された場合を除き、ジョブは CANCEL マクロまたは JDUMP マクロによってキャンセルされます。

これはデフォルト値です。

CANCEL=NO NATVSE は、常に、リターンコードを設定して RETURN または EOJ マクロで終わります(効果はセッションアベンドフラグ UPSI XXXXX1XX を設定した場合と同じ)。

注意:
互換性保持の目的で、CANCEL=YES がデフォルトです。 ただし、CANCEL=NO を指定することをお勧めします。特に、VSE 条件ジョブ制御機能を利用する場合にお勧めします。

DSECTS - オペレーティングシステム DSECTS のリスト

DSECTS は、オペレーティングシステム DSECTS をリストするかどうかを指定します。 設定可能値:

DSECTS=YES オペレーティングシステム DSECTS がリストされます。
DSECTS=NO

オペレーティングシステム DSECTS はリストされません。

これはデフォルト値です。

FILEID - ラベル情報の確認

FILEID は、DLBL または TLBL ファイル ID の先頭と照合する最大 8 文字の文字列を指定します。 一致した場合は、このラベル情報は無視されます。 設定可能値:

FILEID=xxxxxxxx xxxxxxxx は任意の文字列で、特殊文字を含む場合は一重引用符で囲む必要があります。
FILEID='IGNORE' これはデフォルト値です。

これは、CMWKFnn*CMPRTnn*DLBL または TLBL ステートメントが(パーティションの)標準ラベルに指定されているが使用できない場合に特に便利です。

例えば、// DLBL CMPRT01, '...' ステートメントが指定されている場合、WRITE(1) 出力をプリンタ SPOOL に転送できません。 その場合は、JCS ステートメント // DLBL CMPRT01, 'IGNORE' と、関連する SYSnnn の適切なプリンタ割り当てを使用します。

FILMNGR - Natural の出力またはワークファイルの管理

FILMNGR は、Natural の出力またはワークファイルの管理方法を指定します。 設定可能値:

FILMNGR=YES

出力またはワークファイルのラベル情報があり、ラベルなしのワークファイルに LABEL=OFF/ON が指定されている場合に、このファイルが使用可能であることを Natural に示します。 これは、Natural の出力およびワークファイルがファイル管理システムで管理される場合に特に関連します。

これはデフォルト値です。

FILMNGR=NO Natural の出力またはワークファイルの論理ユニット番号が、適切なデバイスタイプに割り当てられている必要があります。

FILSCAN - 出力またはワークファイルのスキャン

FILSCAN は、出力またはワークファイルをスキャンするかどうかを指定します。 設定可能値:

FILSCAN=YES

Natural z/VSE インターフェイスは、Natural セッションパラメータによって特定のファイルアクセスメソッドが定義されていない、すべての Natural 出力およびワークファイルの z/VSE ラベルエリアをスキャンします。これにより、オーバーヘッドが発生することがあります。

これはデフォルト値です。

FILSCAN=NO "使用可能" にするためには、すべての Natural 出力およびワークファイルへのアクセスをセッションパラメータで明示的に指定する必要があります。 これにより、すべてのファイルアクセス操作が、定義したファイルに集中します。

FLUSH - EOF までのフラッシュカード入力ファイル

FLUSH は、CMSYNIN/CMOBJIN カード入力ファイルによる、セッション終了時の Natural z/VSE インターフェイスの続行方法を指定します。 設定可能値:

FLUSH=YES

セッション終了時に、Natural z/VSE インターフェイスは、Natural によって EOF が検出されない限り、SYSIN/SYSRDR/SYSIPT カード入力ファイルを EOF まで読み取ります。そのため、バッチモードの Natural セッションを STACK データで完全に駆動する場合は、空の CMSYNIN/CMOBJIN ファイルに JCL で余分の "/*" を入れる必要があります。

これはデフォルトです。

FLUSH=NO バッチモードの Natural セッションを STACK データで完全に駆動する場合に、余分の SYSIN/SYSRDR/SYSIPT カード入力ファイル(空ファイル)は必要ありません。SYSIN/SYSRDR/SYSIPT カード入力ファイルはそのまま残るので、CMSYNIN/CMOBJIN が完全に取得されなかった場合は、INVALID STATEMENT 演算子によってメッセージが表示されるか、INVALID STATEMENT によってジョブがキャンセルされます。

IDUMP - ダンプ作成モード

IDUMP は、Natural z/VSE インターフェイスが生成するダンプの種類を指定します。

設定可能値:

IDUMP=YES

Natural z/VSE インターフェイスは、IDUMP マクロを使用してダンプを作成します。

これはデフォルト値です。

IDUMP=NO Natural z/VSE インターフェイスは、SDUMP マクロを使用してダンプを作成します。

LE370 - IBM 言語環境の使用

LE370 は、Natural を IBM 言語環境で実行するかどうかを指定します。 設定可能値:

LE370=YES IBM 言語環境のランタイム環境は、Natural セッションの初期化時に初期化されます。 IBM 言語環境のサブルーチンプログラム(ダイナミックまたはスタティック)が Natural によって呼び出される場合は、"YES" を設定する必要があります。
LE370=NO

IBM 言語環境のランタイム環境は、Natural セッションの初期化時に初期化されません。

これはデフォルト値です。

LIBRID - DLBL ファイル ID 情報の確認

LIBRID は、DLBL ファイル ID の先頭と照合する最大 8 文字の文字列を指定します。 一致した場合は、ファイル ID の残りの部分で、z/VSE ライブラリまたはライブラリチェーンのライブラリメンバを指定する情報がスキャンされます。 設定可能値:

LIBRID=xxxxxxxx xxxxxxxx は 8 文字の任意の文字列で、特殊文字を含む場合は一重引用符で囲む必要があります。
LIBRID='LIBR:' これはデフォルト値です。

MAXABND - アベンドの最大数

MAXABND は、NATVSE が許容する(つまり、NATVSE がアベンドをインターセプトして Natural アベンドハンドラを呼び出す)アベンドの最大数を指定します。この数を超えると、NATVSE は回復不可能なアベンド状況またはアベンドループと見なして Natural セッションを異常終了します。 設定可能値:

MAXABND=nnnn nnnn は、アベンドの最大数です。
MAXABND=16 これはデフォルト値です。

RCSIZE - サーバー環境用のデフォルトのロールキャッシュサイズ

RCSIZE は、環境初期化要求でロールキャッシュサイズが渡されない場合の、サーバー環境用のデフォルトのロールキャッシュサイズを指定します。 設定可能値:

RCSIZE=nnnnnnnnn nnnnnnnnn は、デフォルトのロールキャッシュサイズ(KB 単位)です。
RCSIZE=0 これはデフォルト値です。

RJEUSER - XPCC マクロ要求によるサブミットのユーザー ID

RJEUSER は、XPCC マクロ要求を介してサブミットにユーザー ID を設定するかどうかを指定します。 設定可能値:

RJEUSER=YES または
RJEUSER=(YES,VSE)

RJEUSER=YES がデフォルト値です。 必須のサブミットユーザー ID として、システム変数 *INIT-USER が使用されます。
RJEUSER=(YES,NAT) 必須のサブミットユーザー ID として、システム変数 *USER が使用されます。
RJEUSER=NO ユーザー ID R000 が使用されます。

SEGMENT - 出力スプールファイルを閉じるときの動作

SEGMENT は、出力 SPOOL ファイル(印刷またはパンチ)を CLOSE するときの Natural z/VSE インターフェイスの動作を指定します。 設定可能値:

SEGMENT=YES ファイルは、そのファイルに対して CLOSE=FIN が有効でない限り、POWER セグメントクローズによって閉じられます。
SEGMENT=NO SPOOL ファイルは、POWER セグメントクローズなしで閉じられます。

これはデフォルト値です。

THDSIZE - Natural サーバー環境用のデフォルトのスレッドサイズ

THDSIZE は、環境初期化要求でスレッドサイズが渡されない場合の、Natural サーバー環境用のデフォルトのスレッドサイズを指定します。 設定可能値:

THDSIZE=nnnnnnnnn nnnnnnnnn は、デフォルトのスレッドサイズ(KB 単位)です。
THDSIZE=0 これはデフォルト値です。

USERID - システム変数 *INIT-USER の内容

このパラメータは、システム変数 *INIT-USER の内容を指定します。 設定可能値:

USERID=YES z/VSE ユーザー ID が JCL で指定されている(// ID USER=xxx)場合は、このユーザー ID が使用されます。z/VSE ユーザー ID が JCL で指定されておらず、POWER from-user が JECL で指定されている(* $$ JOB FROM=xxx)場合は、このユーザー ID が使用されます。それ以外の場合は、VSE ジョブ名が Natural ユーザー ID として使用されます。
USERID=NO Natural ユーザー ID として VSE ジョブ名が使用されます。

これはデフォルト値です。

WAITIME - セッションロールアウトのタイムリミット

WAITIME は、タイムリミットをミリ秒単位で指定します。 これは、Natural サーバー環境での CMROLL 呼び出しに適用されます。CMROLL 呼び出しで経過した時間が WAITIME の時間以上になると、セッションはロールアウトされ、セッションのスレッドが解放され、セッションは待機状態になります。 設定可能値:

WAITIME=nnnnn nnnnn はミリ秒単位のタイムリミットです。
WAITIME=1000 これはデフォルト値です。

Top of page

z/VSE バッチモードセッションで使用される Natural データセット

Natural z/VSE バッチモードセッションで特定の機能を使用するには、以下のデータセットが必要です。

データセット 説明
CMEDIT Software AG Editor ワークファイル
CMHCOPY ハードコピー出力
CMOBJIN Natural INPUT ステートメントの入力
CMPLOG ダイナミックプロファイルパラメータレポート出力
CMPRINT プライマリレポート出力
CMPRMIN ダイナミックプロファイルパラメータ入力
CMPRTnn 追加レポート 01~31
CMSYNIN プライマリコマンド入力
CMTRACE 外部トレース出力
CMWKFnn ワークファイル 01~32

これらのデータセットについては、以下で説明します。

CMEDIT - Software AG Editor ワークファイル

ローカルまたはグローバルの Software AG エディタバッファプールを使用する場合は、Software AG Editor のワークファイル VSAM データセットが必要です。

JCL で定義されていない場合は、Natural ではプロファイルパラメータ EDBP のサブパラメータ DSNAME またはパラメータマクロ NTEDBP で指定されたエディタワークファイルの名前を使用して、エディタワークファイルのダイナミックアロケーションを行います。

または、プロファイルパラメータ EDPSIZE を使用して、エディタワークファイルを必要としない補助エディタバッファプールで実行することもできます。 Software AG Editor のインストール方法については、「Software AG Editor のインストール」を参照してください。

CMHCOPY - ハードコピーのレポート出力(オプション)

ハードコピー出力データセットのデフォルト名は CMHCOPY です。 これは、以下のいずれかの方法で変更できます。

出力ファイル 0 のプロファイルパラメータ PRINT のサブパラメータを使用して、ハードコピーデータセットのデフォルト値を変更できます。 デフォルトのデータセット名 CMHCOPY は暗黙的にハードコピー出力データセットに対する CLOSE=FIN を示します。つまり、出力のためにハードコピー出力データセットを開いた後に名前を変更しても適用されません。 開いたときに別の名前が定義されていた場合は、出力ファイル 0 のプロファイルパラメータ PRINT のサブパラメータ CLOSE に従ってハードコピーデータセットは閉じられます。

デフォルトでは、CMHCOPY ファイルは SYSLST に割り当てられ、DTFPR マクロによって処理されます。

ファイル名 CMHCOPY の適切なラベル情報が提供されている場合は、z/VSE マクロ DTFSD または DTFMT を以下の条件で使用して、出力をディスクまたはテープに送信することもできます。

RECFORM=UNDEF,BLKSIZE=133 

z/VSE ライブラリに送信する場合は、レコードフォーマットは固定、レコード長は 80、デフォルトのメンバタイプは PRINT です。

CMOBJIN - Natural INPUT ステートメントの入力

CMOBJIN は、Natural INPUT ステートメントで読み取られるデータに使用されます。 このタイプのデータは、関連するソースプログラムや関連する RUN または EXEC コマンドの直後の CMSYNIN 入力ストリームに配置することもできます。

プロファイルパラメータ OBJINN に設定すると、Natural は CMSYNIN から入力を読み取ります。 OBJINY に設定すると、Natural は CMOBJIN から入力を読み取ります。 OBJINR に設定すると、Natural は CMOBJIN のラベル情報の有無に基づいて、特定のセッション用に選択されたオプションを判別します。

デフォルトでは、CMOBJIN 入力ファイルは SYSIPT に割り当てられます。 これは、プロファイルパラメータ READER を使用して SYSRDR に割り当てることができます。

物理/論理(POWER)リーダーファイルの代わりに、シーケンシャルディスクまたはラベル付きテープを使用することもできます。 その場合は、ファイル名 CMOBJIN の適切なラベル情報を提供する必要があります。

サポートされているファイルフォーマットは以下のとおりです。

DTFSD/DTFMT: RECFORM=FIXUNB,RECSIZE=81
DTFSD/DTFMT: RECFORM=FIXUNB/FIXBLK,RECSIZE=80
LIBR:        RECFORM=FIX,RECSIZE=80 , default member type CARD

適切なラベル情報を提供する必要があります。割り当てる場合は、ファイル名 CMSYNIN または CMOBJIN を使用する必要があります。

CMPLOG - ダイナミックパラメータのレポート出力(オプション)

プロファイルパラメータ PLOG=ON が設定され、データセット CMPLOG が使用可能な場合は、評価されたダイナミックプロファイルパラメータはセッションの初期化時にこのデータセットに書き込まれます。 データセット CMPLOG が使用できない場合は、評価されたダイナミックプロファイルパラメータは CMPRINT に書き込まれます。

デフォルトでは、CMPLOG ファイルは SYSLST に割り当てられ、DTFPR マクロによって処理されます。

ファイル名 CMPLOG の適切なラベル情報が提供されている場合は、z/VSE マクロ DTFSD または DTFMT を以下の条件で使用して、出力をディスクまたはテープに送信することもできます。

RECFORM=UNDEF,BLKSIZE=133 

z/VSE ライブラリに送信する場合は、レコードフォーマットは固定、レコード長は 80、デフォルトのメンバタイプは PRINT です。

CMPRINT - プライマリレポート出力

CMPRINT は、Natural プログラム内の DISPLAYPRINT、および WRITE ステートメントの結果をレポートするプライマリ出力に使用されます。

デフォルトでは、CMPRINT ファイルは SYSLST に割り当てられ、DTFPR マクロによって処理されます。

ファイル名 CMPRINT の適切なラベル情報が提供されている場合は、z/VSE マクロ DTFSD または DTFMT を以下の条件で使用して、出力をディスクまたはテープに送信することもできます。

RECFORM=UNDEF,BLKSIZE=133 

z/VSE ライブラリに送信する場合は、レコードフォーマットは固定、レコード長は 80、デフォルトのファイルタイプは PRINT です。

CMPRMIN - ダイナミックパラメータデータセット

CMPRMIN をダイナミックパラメータデータセットとして使用すると、EXEC ステートメントのジョブ制御キーワード PARM の文字列の長さ制限を超えることができます。

このファイルが使用可能な場合は、セッションの初期化時に読み取られ、ダイナミックプロファイルパラメータが取得されます。

CMPRMIN からのすべての入力レコードが、1 つのパラメータ文字列に連結されます。 各 CMPRMIN レコードの最初の 72 文字目までが有効です。 各レコードの末尾の空白は切り捨てられます。空白以外の最後の文字がコンマの場合は、末尾の空白はすべて切り捨てられます。それ以外の場合は、1 つの空白がデリミタ文字として残されます。コンマは挿入されません。

PARM ジョブ制御キーワードを使用して、ダイナミックパラメータを追加できます。PARM キーワードにダイナミックパラメータ文字列が含まれている場合は、これらのプロファイルパラメータは CMPRMIN の入力から作成されたパラメータ文字列の末尾に連結されます。これらを使用して、CMPRMIN からのパラメータを上書きできます。 PARM キーワードが SYSRDR または SYSIPT として指定されている場合は、Natural は追加のプロファイルパラメータをそれぞれ SYSRDR または SYSIPT から CMPRMIN データセットの論理拡張として取得します。つまり、同じルールが適用されます。

CMPRMIN は、シーケンシャルディスクまたはラベル付きテープデータセットです。 サポートされているファイルフォーマットは以下のとおりです。

DTFSD/DTFMT: RECFORM=FIXUNB,RECSIZE=81
DTFSD/DTFMT: RECFORM=FIXUNB/FIXBLK,RECSIZE=80
LIBR:        RECFORM=FIX,RECSIZE=80 , default member type CARD

CMPRTnn - 追加レポート

CMPRTnn は、セッション中にコンパイルまたは実行された Natural プログラムによって参照される追加の各レポートに使用されます。 "nn" は、DISPLAYPRINT、または WRITE ステートメントで使用されているレポート番号に対応する 01~31 の 2 桁の 10 進数である必要があります。

CMPRTnn の代わりに、プロファイルパラメータ PRINTDEST サブパラメータを適切な値に設定することで、別の名前を使用できます。以下に例を示します。

PRINT=((nn),...,DEST=PRNTFIL)

ファイル名 CMPRTnn とともにラベル情報を提供すると、出力をディスクまたはテープに書き込むことができます。 Natural は、この出力ファイルを非ブロック形式の固定長ワークファイルと同様に処理します。 ディスクまたはテープに "出力" する場合は、ワークファイルの場合と同じロジックが適用されます(下記参照)。

z/VSE ライブラリメンバにマップする場合は、これらのファイルのレコードフォーマットは固定、レコード長は 80、デフォルトのファイルタイプは PRINT です。

CMSYNIN - プライマリ入力

CMSYNIN は、Natural コマンドと Natural ソースプログラム(およびオプションで Natural プログラムの実行中に INPUT ステートメントによって読み取られるデータ)を含むプライマリ入力ファイルに使用されます。

デフォルトでは、CMSYININ 入力ファイルは SYSRDR に割り当てられます。 これは、プロファイルパラメータ READER を使用して SYSIPT に割り当てることができます。

物理/論理(POWER)リーダーファイルの代わりに、シーケンシャルディスクまたはラベル付きテープを使用することもできます。 その場合は、ファイル名 CMSYNIN の適切なラベル情報を提供する必要があります。

サポートされているファイルフォーマットは以下のとおりです。

DTFSD/DTFMT: RECFORM=FIXUNB,RECSIZE=81
DTFSD/DTFMT: RECFORM=FIXUNB/FIXBLK,RECSIZE=80
LIBR:        RECFORM=FIX,RECSIZE=80 , default member type CARD

CMTRACE - Natural トレースのレポート出力(オプション)

プロファイルパラメータ ETRACE が "ON" に設定されているか、等価の端末コマンド %TRE+ が発行された場合は、セッション時のすべての Natural トレース出力が CMTRACE データセットに書き込まれます。 トレース対象の Natural コンポーネントを定義するには、プロファイルパラメータ TRACE が必要です。

デフォルトでは、CMTRACE ファイルは SYSLST に割り当てられ、DTFPR マクロによって処理されます。

ファイル名 CMTRACE の適切なラベル情報が提供されている場合は、z/VSE マクロ DTFSD または DTFMT を以下の条件で使用して、出力をディスクまたはテープに送信することもできます。

RECFORM=UNDEF,BLKSIZE=133 

z/VSE ライブラリに送信する場合は、レコードフォーマットは固定、レコード長は 80、デフォルトのメンバタイプは PRINT です。

CMWKFnn - ワークファイル 01~32

CMWKFnn は、セッション中にコンパイルまたは実行された Natural プログラムによって参照される各 Natural ワークファイルに使用されます。 nn は、READ WORK FILE または WRITE WORK FILE ステートメントで使用されているレポート番号に対応する 01~32 の 2 桁の 10 進数である必要があります。

CMWKFnn の代わりに、プロファイルパラメータ WORKDEST サブパラメータを適切な値に設定することで、別の名前を使用できます。

Natural z/VSE 生成パラメータ FILMNGR=YES が指定され、ワークファイルのラベル情報が存在する場合、またはラベルなしのワークファイルのプロファイルパラメータ WORKLABEL サブパラメータに OFF または NOTM が指定されている場合は、Natural はファイルが使用可能であると認識します。 それ以外の場合は、Natural ワークファイルの論理ユニット番号が、適切なデバイスタイプに割り当てられている必要があります。

z/VSE ライブラリメンバにマップする場合は、これらのファイルのレコードフォーマットは固定、レコード長は 80、デフォルトのメンバタイプは WORK です。

Natural のプリンタまたはワークファイルが IGN に割り当てられている場合は、これらのファイルに対するすべての I/O 要求はダミーとして処理され、Natural エラーは生成されません。 ただし、割り当てがない場合、またはプリンタ/ワークファイルが UA に割り当てられている場合は、このファイルを使おうとすると必ずエラーになります。

Top of page

z/VSE ライブラリメンバに対する NATVSE 出力およびワークファイルサポート

NATVSE は、すべての Natural データセットへの入出力のために z/VSE ライブラリメンバへのアクセスをサポートします。 z/VSE ライブラリメンバにアクセスする場合は、"カードイメージフォーマット"(80 バイトのレコード長)のみがサポートされます。

z/VSE ライブラリメンバへのアクセスは、関連付けられた DLBL ステートメントのファイル ID によってトリガされます。 DLBL ステートメントのファイル ID フィールドの初めにある特定の文字列(NTVSE 生成パラメータの「LIBRID」を参照)は、実際に Natural データセットがファイル ID フィールドの残りで指定される z/VSE ライブラリメンバであることを示します。

以下の指定が可能です。

C=chain JCL で定義されたライブラリ連結チェーンを指定します。
S=library.sublib 特定のライブラリ内の特定のサブライブラリを指定します。
M=mbrname.mbrtype ライブラリメンバ名とそのタイプを指定します。

以下のルールが適用されます。

例:

// LIBDEF PROC,SEARCH=(...) 
// LIBDEF SOURCE,SEARCH=(...)
// DLBL CMWKF01,'LIBR:M=FILE1.TEST S=SAGLIB.USRLIB'      
// DLBL CMWKF02,'LIBR:       S=SAGLIB.USRLIB'                  ->   M=CMWKF02.WORK
// DLBL CMWKF03,'LIBR: M=TEST   C=PROC'                        ->   M=TEST.WORK
// DLBL CMPRT04,'LIBR:M=*.LISTING,S=SAGLIB.USRLIB'             ->   M=CMPRT04.LISTING
// DLBL CMPRT05,'LIBR:'                                        ->   M=CMPRT05.PRINT,C=SOURCE
// DLBL CMPRT06,'LIBR:M=WORK'                                  ->   M=WORK.PRINT,C=SOURCE
// DLBL CMWKF07,'LIBR:      M=*.DATA'                          ->   M=CMWKF07.DATA,C=SOURCE
// DLBL CMPRMIN,'LIBR:M=*.*'                                   ->   M=CMPRMIN.CARD,C=SOURCE

注意:

  1. 出力ファイルにチェーンが指定されているかデフォルトが使用される場合は、出力はチェーン内に指定されている最初のサブライブラリに書き込まれます。
  2. Natural 出力ファイルのターゲットサブライブラリ内に同名で同タイプのメンバがすでに存在する場合は、無条件で既存のメンバが置き換えられます。
  3. DLBL ステートメントのファイル ID フィールドは長さが 44 文字分しかなく、すべての(サブ)パラメータを完全に示すには十分ではありません。 このため、デフォルトを活用することをお勧めします。 メンバ名については、Natural プロファイルパラメータ PRINT または WORKDEST サブパラメータを使用してファイル名を指定するオプションもあります。

Top of page

NATVSE ダイナミックワークファイルアロケーション(DYNALLOC)のサポート

z/VSE 環境の Natural には、ワークファイルをダイナミックに定義する機能があります。つまり、これらのファイルを JCL であらかじめ定義しておく必要がありません。 z/VSE 環境の Natural では、DEFINE WORK FILE ステートメントを使用して定義したワークファイルのパーティションの一時ラベルエリアに、ラベルを追加します。

このため、z/VSE 環境の Natural では、既存のラベル情報は変更されません。 Natural セッションによってダイナミックに追加されたすべてのファイルラベルは、セッション終了時に削除されます。

以下では次のトピックについて説明します。

前提条件

Natural アプリケーションプログラム内でファイルエクステント情報を修正することはできないため、特にこれらのプログラムが同じパーティションまたは複数のパーティションで同時に実行される場合は、ディスクファイルマネージャが必要です。 z/VSE 環境で少なくとも VSAM/SAM は使用可能なので、これは制限ではありません。

z/VSE 環境での Natural によるダイナミックアロケーションサポートのために、Natural プロファイルパラメータ WORK の以下のキーワードサブパラメータが使用できるようになりました。

DEFINE WORK FILE キーワードパラメータ

以下のキーワードパラメータは、VSE 環境でのダイナミックワークファイルに使用できます。

キーワードパラメータ 目的
CAT=catalog ダイナミックワークファイルに対する VSAM/SAM の使用をトリガします。カタログは、1~7 文字の VSAM カタログファイル名です。 VSAM/SAM を使用する場合は、このパラメータは必須で、VSAM ジョブカタログを明示的に指定(CAT=IJSYSUC)する必要があります。
VOL=volser これを指定した場合は、// EXTENT 情報が 1~5 文字のボリュームシリアル番号で生成されます。情報の内容は、先行する DLBL 情報に基づきます(下記参照)。
DSN=fileid ファイル ID を設定する DSN(オプション)です。

DEFINE WORK FILE キーワードパラメータの使用ルール

パラメータ値の最後がわかりやすいように、CAT または VOL パラメータは DEFINE WORK FILE 文字列の最初に指定し、DSN= パラメータは最後のキーワードとして指定する必要があります。

つまり、CAT または VOL パラメータが指定され、DSN キーワードパラメータが指定されていない場合は、最後のキーワードの後にくる DEFINE WORK FILE パラメータ文字列のすべてのデータは設定されるファイル ID と見なされます。

VSAM/SAM の場合は、NATVSE は以下のラベル情報をダイナミックに追加します。

// DLBL xxyyyyz,'file-id',0,VSAM,CAT=catalog, +
   RECORDS=n1,RECSIZE=n2,DISP=(dsp1,dsp2)
// EXTENT ,volser                                                                        optional

上記の意味は以下のとおりです。

xx パーティションの SYSLOG ID。BGF4 など。
yyyy 編集された z/VSE の 2 バイトの 16 進タスク番号(同じパーティションで 複数の Natural サブタスクを可能にするため)。
z Natural ワークファイル番号。ファイル 1~9 には "1"~"9"、ファイル 10~32 には "A"~"W"。
n1 プロファイルパラメータ WORK のキーワードサブパラメータ BLOCKS によって指定される値。
n2 プロファイルパラメータ WORK のキーワードサブパラメータ BLKSIZE によって指定される値。
dsp1, dsp2 プロファイルパラメータ WORK のキーワードサブパラメータ DISP によって指定される値。
catalog DEFINE WORK FILE ステートメントを使用して設定する必要がある VSAM カタログ。
volser ファイルの割り当て先のボリュームシリアル番号。

EXTENT カードが生成されるのは、volser が Natural アプリケーションの DEFINE WORK FILE ステートメントに設定されている場合のみです。

CA-DYNAM/D などの他のディスクファイル管理システムでは、NATVSE は以下のラベル情報をダイナミックに追加します。

// DLBL xxyyyyz,'file-id',0
// EXTENTsysnnn,volser,,,1,n1                                     optional

上記の意味は以下のとおりです。

xx パーティションの SYSLOG ID。BGF4 など。
yyyy 編集された z/VSE の 2 バイトの 16 進タスク番号(同じパーティションで複数の Natural サブタスクを可能にするため)。
z Natural ワークファイル番号。ファイル 1~9 には 19、ファイル 10~32 には AW
n1 プロファイルパラメータ WORK のキーワードサブパラメータ BLOCKS によって指定される値。
sysnnn プロファイルパラメータ WORK のキーワードサブパラメータ SYSNR によって指定される値。
volser ファイルの割り当て先のボリュームシリアル番号。

EXTENT カードが生成されるのは、volser が Natural アプリケーションの DEFINE WORK FILE ステートメントに設定されている場合のみです。 n1 が 0 の場合は、エクステント情報(開始トラック/ブロック、およびトラック/ブロックの数)は省略されます。

サーバーとしての Natural の場合は、ファイル名は以下のフォーマットで設定します。

xyyyyyz

上記の意味は以下のとおりです。

xyyyyy 16 進形式のサーバーセッション番号(編集済み)。最初の文字は 0~F を A~P に変換することで強制的にアルファベットにします。
z z/VSE バッチ処理環境の通常の Natural の Natural ワークファイル番号。

z/VSE 環境の Natural で上記のような新しいファイル名を作成できるようにするには、ダイナミックに割り当てられるファイルが、プロファイルパラメータ WORK のキーワードサブパラメータ DEST='*' またはステートメント定義の DEFINE WORK FILE'*' で設定される '*' という名前を持つ必要があります。

使用するファイル ID も、DEFINE WORK FILE ステートメントを使用して設定する必要があります。

ファイル ID に対する通常の z/VSE 制限が適用されます。

Natural マルチタスクまたはサーバー環境では、"ファイル条件が同じ" にならないように、一意の情報をファイル ID に指定することをお勧めします。

Natural パラメータ:

WORK=((1-6),AM=1,DEST='*',BLOCKS=100),WORK=((2), DISP=(OLD,DELETE)),WORK=((6),BLOCKS=0)

アプリケーション内での Natural ワークファイル定義:

DEFINE WORK 1 'CAT=IJSYSUC,VSAM.SAM.FILE'
DEFINE WORK 2 'CAT=IJSYSCT,DSN=ANOTHER FILE'
DEFINE WORK 3 'CAT=IJSYSUC,VOL=DOSRES,ONE MORE FILE'
DEFINE WORK 4 '==.CATALOGED.FILE' 
DEFINE WORK 5 'VOL=POOL01,DSN=FILE WITH EXTENT INFO' 
DEFINE WORK 6 'VOL=DOSRES,ANY FILE' 

生成された z/VSE ラベル:

// DLBL xxyyyy1,'VSAM.SAM.FILE',0,VSAM,CAT=IJSYSUC, +
   RECORDS=100,RECSIZE=4628,DISP=(NEW,KEEP)
// DLBL xxyyyy2,'ANOTHER FILE',0,VSAM,CAT=IJSYSCT,  + 
   RECORDS=100,RECSIZE=4628,DISP=(OLD,DELETE)
// DLBL xxyyyy3,'ONE NORE FILE',0,VSAM,CAT=IJSYSUC, + 
   RECORDS=100,RECSIZE=4628,DISP=(NEW,KEEP)
// EXTENT ,DOSRES
// DLBL xxyyyy4,'==.CATALOGED.FILE',0
// DLBL xxyyyy5,'FILE WITH EXTENT INFO',0
// EXTENT SYS005,POOL01,,,1,100
// DLBL xxyyyy6,'ANY FILE',0 
// EXTENT SYS006,DOSRES 

Top of page

z/VSE 環境下の Natural のデバッグ機能

Natural z/VSE バッチモードインターフェイスには、問題を突き止めるのに役立ついくつかのデバッグ機能が含まれています。

これらの機能は、JCL の UPSI 設定で制御されます。

UPSI 設定は、Natural セッションパラメータ(UPSI=1XXXXXXX など)として指定することもできます。 これは、JCL の UPSI 設定が、フロントエンド Natural や Natural によって呼び出されるプログラムなど別のプログラムには異なる意味を持つという点で、副次的な効果を生成する場合に特に役立ちます。

以下の UPSI 設定が可能です。

UPSI 設定 意味
UPSI 1XXXXXXX ダンプフラグ
UPSI X1XXXXXX トレースフラグ
UPSI XXX1XXXX ストレージフリーズフラグ
UPSI XXXXX1XX セッションアベンドフラグ
UPSI XXXXXX1X アベンド終了フラグ
UPSI XXXXXXX1 フォーマットされたダンプのみフラグ

これらの設定については、以下で説明します。 また、デバッグ用ドキュメントの取得方法を説明するジョブ例も示します。

UPSI 1XXXXXXX - ダンプフラグ

通常、Natural で問題が発生した場合は、実際にアベンドが発生しない限り、対応するジョブはダンプなしでキャンセルされます。 この UPSI フラグを設定すると、エラーが発生した場合は、つまり Natural セッションの終了メッセージが NAT9995 以外の場合は、ジョブの終了時に必ずダンプが作成されます。

UPSI X1XXXXXX - トレースフラグ

このフラグを設定すると、Natural の特定の時点でレジスタセーブエリアのスナップショットが取得されます。

注意:
出力例によっては、このフラグを設定することで大量の出力が発生する場合があります。

すべての NATVSE サービスルーチンの入口で、このルーチンの名前と汎用レジスタ 0~15(GRG)の名前が表示されます。

注意:
レジスタ 14 から呼び出し元を特定することができます。

すべての NATVSE サービスルーチンの出口で、このルーチンの名前、現在の汎用レジスタ(GRG)、および現在割り当てられているセーブエリア(CSA)のレジスタ 0~15 が表示されます。

注意:

  1. CSA の内容は、汎用レジスタから取得されるレジスタ 15 のリターンコードを除いて、サービスルーチンの呼び出し元に返されます。
  2. HSA の内容は呼び出し元に返されます。これは、このセーブエリアにレジスタ 15 のリターンコードが含まれている(リターンコードが設定されている場合)ことを意味します。

GRG レジスタが設定されている場合は必ず、デバッグトレースプログラムは呼び出し元ルーチンの名前とルーチンの先頭からの呼び出しのオフセットを特定しようとします。

デバッグトレース出力の SYSnnn 番号は、この SYSnnn 番号がプリンタデバイスに割り当てられていれば、SYS040 です。それ以外の場合は、SYSLST が使用されます。 これは、デバッグトレースの出力とその他の Natural 出力を分ける場合に特に役立ちます。分ける場合は、SYS040 を適切に割り当て、この論理出力ユニットに POWER * $$ LST ステートメントを指定します。

UPSI XXX1XXXX - ストレージフリーズフラグ

Natural のデフォルトでは、正常終了でも異常終了でも、セッション終了時にはストレージを含むすべてのリソースが解放されます。 UPSI 1 を設定しても、Natural の終了時には関連するストレージがすべて解放されているため、ダンプが役に立たないことがあります。 このフラグを設定すると、以前に取得された GETVIS ストレージがこのジョブ内では解放されなくなります。これは、Natural ニュークリアス(NATVSE にリンクされていない場合)および RCA=ON のサブ製品を含む Natural によって呼び出されるすべての外部サブルーチンプログラムに適用されます。

注意:
このフラグは慎重に取り扱ってください。より多くのパーティションの GETVIS ストレージが使用されますが、オペレーティングシステムのストレージ要求を満たせない場合は、GETVIS 要求が失敗し、ジョブがキャンセルされることがあるからです。

UPSI XXXXX1XX - セッションアベンドフラグ

デフォルトでは、重大なエラーが発生した場合(NAT9995 および NAT9987 を除く NAT9nnn 終了メッセージ)、Natural セッションはキャンセルされます。 このフラグを設定すると、Natural はキャンセルせず、ジョブ制御に Natural リターンコードを渡して "正常に" 終了します。

UPSI XXXXXX1X - アベンド終了フラグ

このフラグは、アベンドが繰り返し発生する場合に役立ちます。

通常、バッチモードでは、プログラムチェック(NAT095n エラーメッセージ)から回復するために、Natural はアクティブなプログラム(STXIT PC)に対するチェックアベンド出口を持ちます。 DU=ON が指定されている場合は、この出口によってスナップダンプが作成され、クリーンセッション終了のために制御が Natural に渡されます。

このフラグを設定すると、Natural セッションはアクティブなプログラムに対するアベンド出口なしに実行されます。これは、すべてのプログラムチェックがオペレーティグシステムによって直接処理されることを意味します。

このフラグが設定されていると、ダンプフラグ、ストレージフリーズフラグ、セッションアベンドフラグ、およびフォーマットされたダンプのみフラグは無視されます。

UPSI XXXXXXX1 - フォーマットされたダンプのみフラグ

DU=ON の場合は、NATVSE アベンド出口ルーチンは、プログラムチェックアベンドの発生時(および UPSI XXXXXX1X フラグが設定されていない場合)に、Natural セッションのスナップダンプを作成します。

多くの場合は、デバッグに関連するのはダイナミック Natural セッションエリアのみであるため、UPSI フラグの設定によってスタティックセッションエリアのダンプは抑制されます。

デバッグ用ドキュメントの取得

問題を分析する必要がある場合は、関連する可能性がある情報、特に、実行された JCS および対応するコンソールログが重要となります。

以下のジョブ例では、包括的なドキュメントの取得方法を示します。

// JOB sampljob
// OPTION LOG,PARTDUMP to see JCL on printer
/* Library Definitions: labels and LIBDEFs
...
/* ADARUN Parameter Input Definition
// ASSGN SYS000,SYSRDR
/* Natural Work File Definitions
// DLBL CMWKFnn,'...',... disk work file
// EXTENT SYSnnn,volser,,,nn,mm
// ASSGN SYSnnn,DISK,VOL=volser,SHR
// TLBL CMWKFnn,'...',... labelled tape work file
// ASSGN SYSnnn,cuu assignment to tape unit
/* Natural Print File Definitions
// ASSGN SYSnnn,cuu assignment to print UR unit
// DLBL CMPRTnn,'...',... print file on disk
// EXTENT SYSnnn,volser,,,nn,mm
// ASSGN SYSnnn,DISK,VOL=volser,SHR
// TLBL CMPRTnn,'...',... print file on labelled tape 
// ASSGN SYSnnn,cuu assignment to tape unit
/* Debugging Options
// ASSGN SYS040,SYSLST debugging trace unit
// UPSI 1xxx00xx flags as discussed above
// EXEC Natural,SIZE=...
... dynamic parameters
/* end of dynamic parameters
... ADARUN parameters
/* end of ADARUN parameters
... Natural input
/* end of Natural input
// EXEC LISTLOG print console messages
/& end of job

Top of page

NATVSE アテンションの中断

Natural z/VSE バッチモードインターフェイス(NATVSE)は、コンソールコマンド MSG xx によってアテンションの中断をサポートします。xx は、コンソールのオペレータが NAT1016 アテンション中断イベントを強制できる z/VSE パーティション ID です。

この特殊な機能は、Natural プロファイルパラメータ ATTN で制御されます。

Top of page