VSE CICS でのスプール・ファイルの使用

VSE バッチまたは CICS® for VSE 用に生成される EGL プログラムでは、生成時にシリアル・ファイルまたは印刷ファイルのリソース関連で fileType プロパティーを spool に設定することにより、VSE/POWER キュー・メンバーを作成してそこに書き込むことができます。

spool ファイル・タイプとして関連付けられたシリアル・ファイルまたは印刷出力ファイルは、RDR、LST、または PUN VSE/POWER キューに対して作成および経路指定できます。 CICS for VSE 用に生成された EGL プログラムは、生成時にシリアル・ファイルを spool ファイル・タイプとして関連付けることにより、VSE/POWER キュー・メンバーから読み取ることもできます。

スプール・ファイルに関連付けられたレコードに対する最初の add ステートメントは、新規 VSE/POWER キュー・メンバーを作成し、ファイルの先頭にデータを追加します。その後の add ステートメントでは、ファイルが閉じられるまで、以前に追加されたデータに続いてデータを配置します。 スプール・ファイルに対して発行された close ステートメントは、VSE/POWER キュー・メンバーを閉じます。

スプール・ファイルが閉じられると、同じファイル名のレコードに対するその後の add ステートメントは、新規 VSE/POWER キュー・メンバーを作成します。LST VSE/POWER キューに経路指定されるスプール・ファイルにデータを追加する場合、以下に注意する必要があります。VSE/POWER LST キュー・メンバーは、IBM® Rational® COBOL Runtime for zSeries によって ASA オプションを指定して開かれます。これにより、データの各行の先頭に ANSI プリンター制御文字を使用してレポートが作成されることが指定されます。ファイルがシリアル・ファイルである場合、有効な紙送り制御文字が使用されていることを確認する必要があります。ファイルが印刷ファイルである場合、Rational COBOL Runtime がプリンター制御文字を追加します。

以下のいずれかに該当する場合、スプール・ファイルは閉じられます。

閉じる場合は、すべてファイルの終了を示します。

出力スプール・ファイルを作成するときに VSE/POWER キュー宛先を選択できるため、VSE/POWER RDR キューにバッチ・ジョブとして配置されるファイルを作成できます。RDR キュー・メンバーであるスプール・ファイルを参照する close ステートメントはファイルの終了を示すことに注意してください。RDR キュー・ファイルに対する後続の add では、新規 RDR キュー・メンバーが作成され、別のバッチ・ジョブとして処理されます。また、ジョブを作成するときに、POWER® EOJ ステートメントが出力される場合、スプール・ファイルが閉じられる前に POWER ジョブを実行できることにも注意してください。

VSE スプール・ファイルのシステム・リソース名フォーマット

z/VSE® では、スプール・ファイルのシステム・リソース名は、ファイルが入力または出力のどちらに使用されるかによって異なります。入力スプール・ファイルは CICS for z/VSE の場合にのみ使用でき、zVSE バッチでは使用できません。
注: Rational COBOL Runtime は、システム・リソース名の修飾子に指定された値の組み合わせが正しいかどうかを確認するためのエラー検査は実行しません。Rational COBOL Runtime は、各システム・リソース名修飾子の値を「そのまま」VSE/POWER に送信します。v60ExceptionCompatibility プログラム・プロパティーが YES に設定されている場合、Rational COBOL Runtime は VSE/POWER からの戻りコードを sysVar.errorCode に配置します。v60ExceptionCompatibility プログラム・プロパティーが NO に設定されている場合、ファイル入出力例外がスローされます。
入力ファイル
userid.class というフォーマットの、最大で 10 バイトの名前
userid
レポートを処理するプログラムまたはユーザーの 1 文字から 8 文字までの VSE/POWER ID。ID にブランクまたはヌル文字を含めることはできません。この値にはデフォルトはありません。
class
1 文字のスプール・クラス。class コンポーネントはオプションで、デフォルトは「A」です。アスタリスクを使用して、デフォルトの class を EGL が入力スプール・ファイルに使用するようにさせることはできません。入力スプール・ファイルは、VSE/POWER PRT または PUN キューから読み取られます。
出力ファイル
jobname.queue.class.disp.form.node.userid.parm というフォーマットの、最大で 65 バイトの名前
注: jobname パラメーターを指定する必要があります。または、アスタリスク (*) を指定することにより、デフォルトを明示的に要求する必要があります。その他のすべてのパラメーターでは、アスタリスク (*) またはブランクを指定することによりデフォルト値を要求できます。ただし、ブランクを使用してあるパラメーターに対するデフォルト値を要求すると、すべての後続パラメーターにデフォルト値が使用されます。
jobname
VSE/POWER キュー・メンバーのジョブ名を定義する 1 文字から 8 文字までの名前。この値は、CICS Report Control Facility (RCF) が使用されているときに使用されます。このフィールドにアスタリスク (*) を指定すると、印刷ファイルのレコードまたは EZEPRINT に EGL ファイル名が使用されます。 RCF が使用されていない場合 (例えば、キューが PUN または LST)、jobname の値は無視され、VSE/POWER キュー・メンバーのジョブ名は CICS for z/VSE プログラム ID になります。
queue
ファイルの宛先 VSE/POWER キューを識別する 3 文字の名前。以下の値が有効です。
  • ジョブ出力の場合は RDR
  • リスト出力の場合は LST
  • パンチ出力の場合は PUN
  • リスト出力 (RCF を使用) の場合は PRT
queue にその他の文字を使用すると、スプール名エラーになります。 このフィールドにアスタリスク (*) またはブランクを指定すると、PRT キューが使用されます。
queue を RDR または PRT に設定すると、RCF を使用してファイルにアクセスします。queue を PUN または LST に設定すると、基本 CICS SPOOL サポートが使用されます。LST と PRT は両方ともファイルが VSE/POWER LST キューの一部であることを指定します。ただし、PRT は RCF コマンドを使用しますが、LST は使用しないことに注意してください。
CICS システムに RCF がインストールされていないときに RCF を使用しようとすると、CICS はエラー・メッセージを戻します。これは、AEY9 トランザクションの異常終了、NOSPOOL 状態、メッセージ「SPOOLING SYSTEM IS NOT AVAILABLE」などです。
queue 値が PRT または LST である場合、Rational COBOL Runtime for z/VSE は ASA オプションを使用してファイルを開きます。このオプションにより、データの各行の先頭に米国標準規格プリンター制御文字を使用してレポートが作成されることが指定されます。シリアル・ファイルを使用している場合、有効な紙送り制御文字が使用されていることを確認する必要があります。ファイルが印刷ファイルである場合、Rational COBOL Runtime for z/VSE が米国標準規格プリンター制御文字を自動的に追加します。
class
クラスを指定する単一の文字。このフィールドにアスタリスク (*) またはブランクを指定すると、デフォルトのヌル・ストリングが使用されます。
disp
閉じられたときのキュー・メンバーの VSE/POWER 後処理状況を指定する単一の文字。以下の値が有効です。
D
ジョブを処理し、処理後に削除します。
H
解放されるまでジョブをキュー内に保持します。
K
ジョブを処理し、処理後もキュー内に保持します。
L
解放されるまでジョブをキュー内に保持します。
disp にその他の文字を使用すると、スプール名エラーになります。queue が LST または PUN である場合、このフィールドは適用されません。このフィールドにアスタリスク (*) またはブランクを指定すると、デフォルトの「D」が使用されます。
form
印刷出力の書式番号を識別する 4 文字の名前。 このフィールドにアスタリスク (*) またはブランクを指定すると、デフォルトでロケーションの標準書式が使用されます。
node
システム・ノード ID を指定する 1 文字から 8 文字までの名前。このフィールドにアスタリスク (*) またはブランクを指定すると、デフォルトで現行システム・ノード ID が使用されます。
userid
レポートを処理するプログラムまたはユーザーの 1 文字から 8 文字までの VSE/POWER ID。ブランクまたはヌル文字を含めることはできません。
CICS for z/VSE では、userid のアスタリスク (*) またはブランクは次のように処理されます。
  • CICS にサインオンしている場合、userid はデフォルトで sysVar.userID の内容になります。
  • CICS にサインオンしていない場合、userid はアスタリスクのまま (または、ブランクの場合はアスタリスクに変更) です。
  • userid が ANY に設定されている場合、アスタリスクにリセットされます。
z/VSE バッチでは、userid のアスタリスク (*) またはブランクはデフォルトで ANY に設定されます。
parm
queue が LST または PRT に設定されているときに追加情報を指定するために使用される文字列。parm のフォーマットは、ランタイム環境、および queue の値によって、以下のように異なります。
  • ランタイム環境が VSECICS である場合:
    • queue が LST に設定されている場合、このセクションで後述されているように、parmoutdescr に設定されます。
    • queue が PRT に設定されている場合、このセクションで後述されているように、parmfcbname.copies に設定されます。
  • ランタイム環境が VSEBATCH である場合:
    • queue が LST または PRT に設定されている場合、parmfcbname.copies に設定されます。
outdescr
CICS for z/VSE SPOOLOPEN OUTPUT コマンドの OUTDESCR オプションで CICS に渡されるストリング。文字は、OUTDESCR オプションに対して正しいフォーマットで指定する必要があります。パラメーターでは、VSE/POWER LST ステートメントでユーザー定義の出力オペランドに使用されるものと同じキーワードと値が使用されますが、構文は少し異なります。 次の例は、FORMDEF FORM1 および PAGEDEF PAGE1 を parm ストリングとして使用する方法を示しています。
FORMDEF(FORM1) PAGEDEF(PAGE1)
次の例は、対応するスプール・ファイル名でその parm を使用する方法を示しています。
JOBNAME1.LST.*.*.*.*.*.FORMDEF(FORM1) PAGEDEF(PAGE1)
Rational COBOL Runtime for z/VSE は、CICS for z/VSE が必要とするストリングの先頭の長さ領域の計算と挿入を処理します。parm ストリングの最大長は変動し、そこまでのスプール・ファイル指定の長さによって異なります。スプール・ファイル指定の合計の長さが 65 文字を超えてはなりません。
fcbname
VSE/POWER が関連ジョブ出力の印刷に使用する FCB イメージ・フェーズの名前。名前フェーズは、VSE/POWER 区分からアクセスできるサブライブラリーにカタログされている必要があります。名前は、最大で 8 文字の英数字 (文字、数字、および特殊文字) です。省略した場合、システム・デフォルト FCB が使用されます。アスタリスク (*) を使用してデフォルト名を指定できます。
copies
印刷するコピーの数を指定する、1 から 255 までの数値。デフォルトは 1 です。

ファイルに書き込んでからそのファイルを読み取るプログラム用の一時ファイルとしてスプール・ファイルを使用しないでください。出力ファイルと入力ファイルに同じリソース名を指定できますが、リソース名は特定のファイルではなく宛先を表します。スプール宛先に書き込んでからファイルを閉じる場合、直後にはその宛先からファイルを入力ファイルとして使用できず、同じ宛先に送信される他のファイルの後にキューに入れられる可能性があります。

CICS におけるスプール・ファイル・アクセスの詳細については、CICS のカスタマイズ資料を参照してください。

スプール・ファイルは、最初のアクセス時に開かれ、以下のいずれかの場合に閉じられます。
  • プログラムは終了します。
  • close ステートメントでそのファイルを参照する。
  • リカバリー可能リソースがコミットされる (sysLib.commit()sysLib.rollback()、トランザクションまたはセグメントの終了)。

フィードバック