このドキュメントでは、VSE オペレーティングシステムで Natural をバッチモードで実行する際の特別な考慮事項について説明します。
以下のトピックについて説明します。
バッチモードの Natural 全般に適用される考慮事項については、以下のセクションも参照してください。
Natural z/VSE バッチモードインターフェイス NATVSE
は、z/VSE オペレーティングシステムとのインターフェイスとなる複数のサービスルーチンで構成されます。
NATVSE
はソースモジュールとして提供され、必要に応じてカスタマイズできます。「z/VSE 環境での Natural のインストール」も参照してください。ここで、生成パラメータを設定できます。 アセンブルして Natural ニュークリアスにリンクすることも、単独で実行して共有ニュークリアスに接続することもできます。
NATVSE
は 16 MB 境界より下で実行する必要があります。 1 つのバッチリージョン内で複数のセッションを同時に開始できます。「バッチモード環境のサブタスクセッションサポート」を参照してください。
NTVSE
マクロには、NATVSE
内部デフォルトを変更する複数の生成パラメータ(NATVSE
コピーブック内で設定)があります。
これらのパラメータは次のとおりです。
NAME
| BUFSIZE
| CANCEL
| DSECTS
| FILEID
| FILMNGR
| FILSCAN
| FLUSH
| IDUMP
| LE370
| LIBRID
| MAXABND
| RCSIZE
| RJEUSER
| SEGMENT
| THDSIZE
| USERID
| WAITIME
NAME
は、特定のアセンブリによって作成される再配置可能モジュールの名前を指定します。 設定可能値:
NAME=xxxxxx |
xxxxxx は、作成される再配置可能モジュールの名前です。
最大長は 8 文字です。 |
NAME=NATVSE |
これはデフォルト値です。 |
BUFSIZE
は、すべての入出力操作に使用される Natural I/O バッファのサイズを指定します。
BUFSIZE=nnnn |
nnnn は、Natural I/O バッファのサイズ(KB 単位)を指定します。
最小値は |
BUFSIZE=8192 |
これはデフォルト値です。 |
CANCEL
は、セッション終了時の Natural z/VSE インターフェイスの続行方法を指定します。 設定可能値:
CANCEL=YES |
Natural が正常に終了したか、セッションが Natural これはデフォルト値です。 |
CANCEL=NO |
NATVSE は、常に、リターンコードを設定して RETURN または EOJ マクロで終わります(効果はセッションアベンドフラグ UPSI XXXXX1XX を設定した場合と同じ)。
|
注意:
互換性保持の目的で、CANCEL=YES
がデフォルトです。 ただし、CANCEL=NO
を指定することをお勧めします。特に、VSE 条件ジョブ制御機能を利用する場合にお勧めします。
DSECTS
は、オペレーティングシステム DSECTS をリストするかどうかを指定します。 設定可能値:
DSECTS=YES |
オペレーティングシステム DSECTS がリストされます。 |
DSECTS=NO |
オペレーティングシステム DSECTS はリストされません。 これはデフォルト値です。 |
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=YES |
出力またはワークファイルのラベル情報があり、ラベルなしのワークファイルに これはデフォルト値です。 |
FILMNGR=NO |
Natural の出力またはワークファイルの論理ユニット番号が、適切なデバイスタイプに割り当てられている必要があります。 |
FILSCAN
は、出力またはワークファイルをスキャンするかどうかを指定します。 設定可能値:
FILSCAN=YES |
Natural z/VSE インターフェイスは、Natural セッションパラメータによって特定のファイルアクセスメソッドが定義されていない、すべての Natural 出力およびワークファイルの z/VSE ラベルエリアをスキャンします。これにより、オーバーヘッドが発生することがあります。 これはデフォルト値です。 |
FILSCAN=NO |
"使用可能" にするためには、すべての Natural 出力およびワークファイルへのアクセスをセッションパラメータで明示的に指定する必要があります。 これにより、すべてのファイルアクセス操作が、定義したファイルに集中します。 |
FLUSH
は、CMSYNIN/CMOBJIN
カード入力ファイルによる、セッション終了時の Natural z/VSE インターフェイスの続行方法を指定します。 設定可能値:
FLUSH=YES |
セッション終了時に、Natural z/VSE インターフェイスは、Natural によって これはデフォルトです。 |
FLUSH=NO |
バッチモードの Natural セッションを STACK データで完全に駆動する場合に、余分の SYSIN/SYSRDR/SYSIPT カード入力ファイル(空ファイル)は必要ありません。SYSIN/SYSRDR/SYSIPT カード入力ファイルはそのまま残るので、CMSYNIN /CMOBJIN が完全に取得されなかった場合は、INVALID STATEMENT 演算子によってメッセージが表示されるか、INVALID STATEMENT によってジョブがキャンセルされます。
|
IDUMP
は、Natural z/VSE インターフェイスが生成するダンプの種類を指定します。
設定可能値:
IDUMP=YES |
Natural z/VSE インターフェイスは、 これはデフォルト値です。 |
IDUMP=NO |
Natural z/VSE インターフェイスは、SDUMP マクロを使用してダンプを作成します。
|
LE370
は、Natural を IBM 言語環境で実行するかどうかを指定します。 設定可能値:
LE370=YES |
IBM 言語環境のランタイム環境は、Natural セッションの初期化時に初期化されます。 IBM 言語環境のサブルーチンプログラム(ダイナミックまたはスタティック)が Natural によって呼び出される場合は、"YES" を設定する必要があります。 |
LE370=NO |
IBM 言語環境のランタイム環境は、Natural セッションの初期化時に初期化されません。 これはデフォルト値です。 |
LIBRID
は、DLBL ファイル ID の先頭と照合する最大 8 文字の文字列を指定します。 一致した場合は、ファイル ID の残りの部分で、z/VSE ライブラリまたはライブラリチェーンのライブラリメンバを指定する情報がスキャンされます。 設定可能値:
LIBRID=xxxxxxxx
|
xxxxxxxx は 8 文字の任意の文字列で、特殊文字を含む場合は一重引用符で囲む必要があります。
|
LIBRID='LIBR:' |
これはデフォルト値です。 |
MAXABND
は、NATVSE
が許容する(つまり、NATVSE
がアベンドをインターセプトして Natural アベンドハンドラを呼び出す)アベンドの最大数を指定します。この数を超えると、NATVSE は回復不可能なアベンド状況またはアベンドループと見なして Natural セッションを異常終了します。
設定可能値:
MAXABND=nnnn |
nnnn は、アベンドの最大数です。
|
MAXABND=16 |
これはデフォルト値です。 |
RCSIZE
は、環境初期化要求でロールキャッシュサイズが渡されない場合の、サーバー環境用のデフォルトのロールキャッシュサイズを指定します。 設定可能値:
RCSIZE=nnnnnnnnn |
nnnnnnnnn は、デフォルトのロールキャッシュサイズ(KB 単位)です。
|
RCSIZE=0 |
これはデフォルト値です。 |
RJEUSER
は、XPCC
マクロ要求を介してサブミットにユーザー ID を設定するかどうかを指定します。 設定可能値:
|
RJEUSER=YES がデフォルト値です。 必須のサブミットユーザー ID として、システム変数 *INIT-USER が使用されます。
|
RJEUSER=(YES,NAT) |
必須のサブミットユーザー ID として、システム変数 *USER が使用されます。
|
RJEUSER=NO |
ユーザー ID R000 が使用されます。
|
SEGMENT
は、出力 SPOOL
ファイル(印刷またはパンチ)を CLOSE
するときの Natural z/VSE インターフェイスの動作を指定します。 設定可能値:
SEGMENT=YES |
ファイルは、そのファイルに対して CLOSE=FIN が有効でない限り、POWER セグメントクローズによって閉じられます。
|
SEGMENT=NO |
SPOOL ファイルは、POWER セグメントクローズなしで閉じられます。
これはデフォルト値です。 |
THDSIZE
は、環境初期化要求でスレッドサイズが渡されない場合の、Natural サーバー環境用のデフォルトのスレッドサイズを指定します。 設定可能値:
THDSIZE=nnnnnnnnn |
nnnnnnnnn は、デフォルトのスレッドサイズ(KB 単位)です。
|
THDSIZE=0 |
これはデフォルト値です。 |
このパラメータは、システム変数 *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
は、タイムリミットをミリ秒単位で指定します。 これは、Natural サーバー環境での CMROLL
呼び出しに適用されます。CMROLL
呼び出しで経過した時間が WAITIME
の時間以上になると、セッションはロールアウトされ、セッションのスレッドが解放され、セッションは待機状態になります。 設定可能値:
WAITIME=nnnnn |
nnnnn はミリ秒単位のタイムリミットです。
|
WAITIME=1000 |
これはデフォルト値です。 |
Natural z/VSE バッチモードセッションで特定の機能を使用するには、以下のデータセットが必要です。
データセット | 説明 |
---|---|
CMEDIT
|
Software AG Editor ワークファイル |
CMHCOPY
|
ハードコピー出力 |
CMOBJIN |
Natural INPUT ステートメントの入力
|
CMPLOG |
ダイナミックプロファイルパラメータレポート出力 |
CMPRINT |
プライマリレポート出力 |
CMPRMIN |
ダイナミックプロファイルパラメータ入力 |
CMPRTnn |
追加レポート 01~31 |
CMSYNIN |
プライマリコマンド入力 |
CMTRACE |
外部トレース出力 |
CMWKFnn |
ワークファイル 01~32 |
これらのデータセットについては、以下で説明します。
ローカルまたはグローバルの Software AG エディタバッファプールを使用する場合は、Software AG Editor のワークファイル VSAM データセットが必要です。
JCL で定義されていない場合は、Natural ではプロファイルパラメータ EDBP
のサブパラメータ DSNAME
またはパラメータマクロ NTEDBP
で指定されたエディタワークファイルの名前を使用して、エディタワークファイルのダイナミックアロケーションを行います。
または、プロファイルパラメータ EDPSIZE
を使用して、エディタワークファイルを必要としない補助エディタバッファプールで実行することもできます。 Software AG Editor のインストール方法については、「Software AG Editor のインストール」を参照してください。
ハードコピー出力データセットのデフォルト名は 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
ステートメントで読み取られるデータに使用されます。 このタイプのデータは、関連するソースプログラムや関連する RUN
または EXEC
コマンドの直後の CMSYNIN
入力ストリームに配置することもできます。
プロファイルパラメータ OBJIN
を N
に設定すると、Natural は CMSYNIN
から入力を読み取ります。 OBJIN
を Y
に設定すると、Natural は CMOBJIN
から入力を読み取ります。 OBJIN
を R
に設定すると、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
を使用する必要があります。
プロファイルパラメータ PLOG
=ON
が設定され、データセット CMPLOG
が使用可能な場合は、評価されたダイナミックプロファイルパラメータはセッションの初期化時にこのデータセットに書き込まれます。 データセット CMPLOG
が使用できない場合は、評価されたダイナミックプロファイルパラメータは CMPRINT
に書き込まれます。
デフォルトでは、CMPLOG
ファイルは SYSLST
に割り当てられ、DTFPR
マクロによって処理されます。
ファイル名 CMPLOG
の適切なラベル情報が提供されている場合は、z/VSE マクロ DTFSD
または DTFMT
を以下の条件で使用して、出力をディスクまたはテープに送信することもできます。
RECFORM=UNDEF,BLKSIZE=133
z/VSE ライブラリに送信する場合は、レコードフォーマットは固定、レコード長は 80、デフォルトのメンバタイプは PRINT
です。
CMPRINT
は、Natural プログラム内の DISPLAY
、PRINT
、および WRITE
ステートメントの結果をレポートするプライマリ出力に使用されます。
デフォルトでは、CMPRINT
ファイルは SYSLST
に割り当てられ、DTFPR
マクロによって処理されます。
ファイル名 CMPRINT
の適切なラベル情報が提供されている場合は、z/VSE マクロ DTFSD
または DTFMT
を以下の条件で使用して、出力をディスクまたはテープに送信することもできます。
RECFORM=UNDEF,BLKSIZE=133
z/VSE ライブラリに送信する場合は、レコードフォーマットは固定、レコード長は 80、デフォルトのファイルタイプは PRINT
です。
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
は、セッション中にコンパイルまたは実行された Natural プログラムによって参照される追加の各レポートに使用されます。 "nn" は、DISPLAY
、PRINT
、または WRITE
ステートメントで使用されているレポート番号に対応する 01~31 の 2 桁の 10 進数である必要があります。
CMPRTnn
の代わりに、プロファイルパラメータ PRINT
の DEST
サブパラメータを適切な値に設定することで、別の名前を使用できます。以下に例を示します。
PRINT=((nn),...,DEST=PRNTFIL)
ファイル名 CMPRTnn
とともにラベル情報を提供すると、出力をディスクまたはテープに書き込むことができます。 Natural は、この出力ファイルを非ブロック形式の固定長ワークファイルと同様に処理します。 ディスクまたはテープに "出力" する場合は、ワークファイルの場合と同じロジックが適用されます(下記参照)。
z/VSE ライブラリメンバにマップする場合は、これらのファイルのレコードフォーマットは固定、レコード長は 80、デフォルトのファイルタイプは PRINT
です。
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
プロファイルパラメータ ETRACE
が "ON" に設定されているか、等価の端末コマンド %TRE+
が発行された場合は、セッション時のすべての Natural トレース出力が CMTRACE
データセットに書き込まれます。 トレース対象の Natural コンポーネントを定義するには、プロファイルパラメータ TRACE
が必要です。
デフォルトでは、CMTRACE
ファイルは SYSLST
に割り当てられ、DTFPR
マクロによって処理されます。
ファイル名 CMTRACE
の適切なラベル情報が提供されている場合は、z/VSE マクロ DTFSD
または DTFMT
を以下の条件で使用して、出力をディスクまたはテープに送信することもできます。
RECFORM=UNDEF,BLKSIZE=133
z/VSE ライブラリに送信する場合は、レコードフォーマットは固定、レコード長は 80、デフォルトのメンバタイプは PRINT
です。
CMWKFnn
は、セッション中にコンパイルまたは実行された Natural プログラムによって参照される各 Natural ワークファイルに使用されます。 nn
は、READ WORK FILE
または WRITE WORK FILE
ステートメントで使用されているレポート番号に対応する 01~32 の 2 桁の 10 進数である必要があります。
CMWKFnn
の代わりに、プロファイルパラメータ WORK
の DEST
サブパラメータを適切な値に設定することで、別の名前を使用できます。
Natural z/VSE 生成パラメータ FILMNGR
=YES
が指定され、ワークファイルのラベル情報が存在する場合、またはラベルなしのワークファイルのプロファイルパラメータ WORK
の LABEL
サブパラメータに OFF
または NOTM
が指定されている場合は、Natural はファイルが使用可能であると認識します。 それ以外の場合は、Natural ワークファイルの論理ユニット番号が、適切なデバイスタイプに割り当てられている必要があります。
z/VSE ライブラリメンバにマップする場合は、これらのファイルのレコードフォーマットは固定、レコード長は 80、デフォルトのメンバタイプは WORK
です。
Natural のプリンタまたはワークファイルが IGN
に割り当てられている場合は、これらのファイルに対するすべての I/O 要求はダミーとして処理され、Natural エラーは生成されません。 ただし、割り当てがない場合、またはプリンタ/ワークファイルが UA
に割り当てられている場合は、このファイルを使おうとすると必ずエラーになります。
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 |
ライブラリメンバ名とそのタイプを指定します。 |
以下のルールが適用されます。
上記の指定はすべて省略可能です。
各パラメータは 1 回だけ指定できます。
複数のパラメータはコンマまたは空白で区切ります。
チェーン(C=
)およびサブライブラリ(S=
)の指定は省略可能ですが、指定する場合はどちらか一方しか指定できません。
チェーン(C=
)もサブライブラリ(S=
)も指定しない場合は、デフォルトの C=SOURCE
が使用されます。
ライブラリメンバ(M=
)を指定しない場合は、デフォルトの M=filename.type
が使用されます。
filename
は、DLBL
ステートメントのファイル名です。
type
は、Natural ファイルクラス、つまり Natural ワークファイルの WORK
、Natural 出力ファイルの PRINT
、Natural 入力ファイル CMPRMIN
、CMSYNIN
、および CMOBJIN
の CARD
を示します(各 Natural データセットのデフォルトのメンバタイプについては、以下を参照)。
ライブラリメンバ指定のサブパラメータに指定されたアスタリスクは、デフォルトが使用されることを示します。したがって、M=*.*
という指定は、このパラメータを省略することと同じです。
メンバタイプのサブパラメータを省略した場合も、デフォルトが使用されます。
例:
// 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
注意:
DLBL
ステートメントのファイル ID フィールドは長さが 44 文字分しかなく、すべての(サブ)パラメータを完全に示すには十分ではありません。 このため、デフォルトを活用することをお勧めします。 メンバ名については、Natural プロファイルパラメータ
PRINT
または WORK
の DEST
サブパラメータを使用してファイル名を指定するオプションもあります。
z/VSE 環境の Natural には、ワークファイルをダイナミックに定義する機能があります。つまり、これらのファイルを JCL であらかじめ定義しておく必要がありません。 z/VSE 環境の Natural では、DEFINE WORK FILE
ステートメントを使用して定義したワークファイルのパーティションの一時ラベルエリアに、ラベルを追加します。
このため、z/VSE 環境の Natural では、既存のラベル情報は変更されません。 Natural セッションによってダイナミックに追加されたすべてのファイルラベルは、セッション終了時に削除されます。
以下では次のトピックについて説明します。
Natural アプリケーションプログラム内でファイルエクステント情報を修正することはできないため、特にこれらのプログラムが同じパーティションまたは複数のパーティションで同時に実行される場合は、ディスクファイルマネージャが必要です。 z/VSE 環境で少なくとも VSAM/SAM は使用可能なので、これは制限ではありません。
z/VSE 環境での Natural によるダイナミックアロケーションサポートのために、Natural プロファイルパラメータ WORK
の以下のキーワードサブパラメータが使用できるようになりました。
以下のキーワードパラメータは、VSE 環境でのダイナミックワークファイルに使用できます。
キーワードパラメータ | 目的 |
---|---|
CAT=catalog |
ダイナミックワークファイルに対する VSAM/SAM の使用をトリガします。カタログは、1~7 文字の VSAM カタログファイル名です。 VSAM/SAM を使用する場合は、このパラメータは必須で、VSAM ジョブカタログを明示的に指定(CAT=IJSYSUC )する必要があります。
|
VOL=volser |
これを指定した場合は、// EXTENT 情報が 1~5 文字のボリュームシリアル番号で生成されます。情報の内容は、先行する DLBL 情報に基づきます(下記参照)。
|
DSN=fileid |
ファイル ID を設定する DSN(オプション)です。 |
パラメータ値の最後がわかりやすいように、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。BG や F4 など。
|
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。BG や F4 など。
|
yyyy | 編集された z/VSE の 2 バイトの 16 進タスク番号(同じパーティションで複数の Natural サブタスクを可能にするため)。 |
z | Natural ワークファイル番号。ファイル 1~9 には 1 ~9 、ファイル 10~32 には A ~W 。
|
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
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 |
フォーマットされたダンプのみフラグ |
これらの設定については、以下で説明します。 また、デバッグ用ドキュメントの取得方法を説明するジョブ例も示します。
通常、Natural で問題が発生した場合は、実際にアベンドが発生しない限り、対応するジョブはダンプなしでキャンセルされます。 この UPSI
フラグを設定すると、エラーが発生した場合は、つまり Natural セッションの終了メッセージが NAT9995 以外の場合は、ジョブの終了時に必ずダンプが作成されます。
このフラグを設定すると、Natural の特定の時点でレジスタセーブエリアのスナップショットが取得されます。
注意:
出力例によっては、このフラグを設定することで大量の出力が発生する場合があります。
すべての NATVSE
サービスルーチンの入口で、このルーチンの名前と汎用レジスタ 0~15(GRG)の名前が表示されます。
注意:
レジスタ 14 から呼び出し元を特定することができます。
すべての NATVSE
サービスルーチンの出口で、このルーチンの名前、現在の汎用レジスタ(GRG)、および現在割り当てられているセーブエリア(CSA)のレジスタ 0~15 が表示されます。
注意:
GRG レジスタが設定されている場合は必ず、デバッグトレースプログラムは呼び出し元ルーチンの名前とルーチンの先頭からの呼び出しのオフセットを特定しようとします。
デバッグトレース出力の SYSnnn
番号は、この SYSnnn
番号がプリンタデバイスに割り当てられていれば、SYS040
です。それ以外の場合は、SYSLST
が使用されます。 これは、デバッグトレースの出力とその他の Natural 出力を分ける場合に特に役立ちます。分ける場合は、SYS040
を適切に割り当て、この論理出力ユニットに POWER * $$ LST
ステートメントを指定します。
Natural のデフォルトでは、正常終了でも異常終了でも、セッション終了時にはストレージを含むすべてのリソースが解放されます。 UPSI 1
を設定しても、Natural の終了時には関連するストレージがすべて解放されているため、ダンプが役に立たないことがあります。 このフラグを設定すると、以前に取得された GETVIS
ストレージがこのジョブ内では解放されなくなります。これは、Natural ニュークリアス(NATVSE
にリンクされていない場合)および RCA=ON
のサブ製品を含む Natural によって呼び出されるすべての外部サブルーチンプログラムに適用されます。
注意: このフラグは慎重に取り扱ってください。より多くのパーティションの GETVIS ストレージが使用されますが、オペレーティングシステムのストレージ要求を満たせない場合は、GETVIS 要求が失敗し、ジョブがキャンセルされることがあるからです。 |
デフォルトでは、重大なエラーが発生した場合(NAT9995 および NAT9987 を除く NAT9nnn 終了メッセージ)、Natural セッションはキャンセルされます。 このフラグを設定すると、Natural はキャンセルせず、ジョブ制御に Natural リターンコードを渡して "正常に" 終了します。
このフラグは、アベンドが繰り返し発生する場合に役立ちます。
通常、バッチモードでは、プログラムチェック(NAT095n エラーメッセージ)から回復するために、Natural はアクティブなプログラム(STXIT PC
)に対するチェックアベンド出口を持ちます。 DU
=ON
が指定されている場合は、この出口によってスナップダンプが作成され、クリーンセッション終了のために制御が Natural に渡されます。
このフラグを設定すると、Natural セッションはアクティブなプログラムに対するアベンド出口なしに実行されます。これは、すべてのプログラムチェックがオペレーティグシステムによって直接処理されることを意味します。
このフラグが設定されていると、ダンプフラグ、ストレージフリーズフラグ、セッションアベンドフラグ、およびフォーマットされたダンプのみフラグは無視されます。
DU
=ON
の場合は、NATVSE
アベンド出口ルーチンは、プログラムチェックアベンドの発生時(および UPSI
XXXXXX1X フラグが設定されていない場合)に、Natural セッションのスナップダンプを作成します。
失敗した命令、プログラムチェックコード(S0Cn
)、汎用レジスタ、現在アクティブなルーチン、このルーチン内での失敗した命令のオフセット、および絶対(PSW)アドレスが、現在割り当てられているセーブエリア(CSA)のレジスタ 0~15 とともに表示されます。
さらに、非リエントラントの Natural z/VSE ドライバ、Natural によって GETMAIN
されたすべてのエリア、およびバッファプール内のすべての Natural プログラムがダンプされます。
その後、クリーンセッション終了のために制御が Natural に渡されます。
最後に、z/VSE JDUMP
マクロによってジョブが終了され、ダンプにはすべてのパーティションが含まれます。
多くの場合は、デバッグに関連するのはダイナミック 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
Natural z/VSE バッチモードインターフェイス(NATVSE
)は、コンソールコマンド MSG xx
によってアテンションの中断をサポートします。xx は、コンソールのオペレータが NAT1016 アテンション中断イベントを強制できる z/VSE パーティション ID です。
この特殊な機能は、Natural プロファイルパラメータ ATTN
で制御されます。