recordName.resourceAssociation

プログラムがレコードに対する入出力操作を行わない場合、入出力はレコード特定変数 recordName.resourceAssociation 内に名前がある物理ファイル上で行われます。 この変数は、生成時に使用される resourceAssociation パーツに基づいて初期化されます。 詳しくは、『リソース関連とファイル・タイプ』を参照してください。システム・リソース名は、実行時に、異なる値を resourceAssociation に配置することによって変更できます。

大抵の場合、構文 recordName.resourceAssociation を使用する必要があります。ただし、以下のそれぞれの場合が真であるため、EGL がユーザーが意図したレコードを判別できる場合は、レコード名を指定する必要はありません。

resourceAssociation は、以下のいずれかとして使用できます。

resourceAssociation には、以下のような特性があります。
プリミティブ型
CHAR
データ長
ファイル・タイプによって異なる
複数のセグメントにわたって保管されるかどうか
はい

定義に関する考慮事項

recordName.resourceAssociation に移される値は、プログラムの生成時に指定されたシステムとファイル・タイプに有効なシステム・リソース名でなければなりません。 同じファイル名を指定したレコードが複数存在する場合、 そのファイル名を持ついずれかのレコードで resourceAssociation が変更されると、 同じファイル名を持つプログラム内のすべてのレコードで resourceAssociation の設定が変更されます。

resourceAssociation の設定で識別されたシステム・リソースが レコード特定変数が変更されるときにオープンしていると、その変数内に存在したシステム・リソースは後続の環境ではクローズされます。I/O オプションは、resourceAssociation を修飾するレコードと同じ EGL ファイル名を持つレコードに対して実行されます。

2 つのプログラムで同じ EGL ファイル名が使用されている場合は、レコード固有の resourceAssociation 変数に同じ値が含まれていなければなりません。それ以外の場合は、新しいシステム・リソースがオープンするときに、以前にオープンされていたシステム・リソースがクローズされます。

resourceAssociation の別の値との比較は、 突き合わせが全く一致する場合にのみ真と判別されます。例えば、小文字を使用して resourceAssociation を初期化する場合、 その小文字の値は小文字にのみ突き合わせします。

resourceAssociation に配置する値は、 比較目的のために未変更のまま残されます。

プログラム間でのファイル共用

システム・リソース名は、生成時またはランタイムのいずれかに設定することができます。
生成時に設定する場合
同じ実行単位内の 2 つのプログラムで同じ論理ファイルがアクセスされる場合は、 生成時にその論理ファイルに対して同じシステム・リソース名を指定し、 ランタイムに両方のプログラムで同じ物理ファイル物理ファイルがアクセスされるようにする必要があります。
ランタイムに設定する場合
recordName.resourceAssociation を使用する場合は、 ファイルにアクセスする各プログラムに、 そのファイルの resourceAssociation を設定する必要があります。同じ実行単位内の 2 つのプログラムで同じ論理ファイルがアクセスされる場合は、 各プログラムで resourceAssociation を同じシステム・リソース名に設定して、 ランタイムに両方のプログラムで同じ物理ファイル物理ファイルがアクセスされるようにする必要があります。

複数のプログラムでシステム・リソースを共用する場合は、そのシステム・リソースにアクセスする各プログラムで、resourceAssociation が同じリソースを参照するように設定する必要があります。 また、同じ実行単位内の 2 つのプログラムで同じ論理ファイルがアクセスされる場合は、 プログラムの生成時に各プログラムで resourceAssociation を同じシステム・リソース名に設定して、ランタイムに両方のプログラムで同じシステム・リソースがアクセスされるようにする必要があります。

MQ レコード

MQ レコードのシステム・リソース名は、キュー・マネージャー名とキュー名を定義します。名前は、以下の形式で指定してください。

  queueManagerName:queueName
queueManagerName
キュー・マネージャーの名前。
queueName
キューの名前。

表示されているように、複数の名前はコロンで区切ります。ただし、queueManagerName とコロンは省略できます。システム・リソース名は、resourceAssociation 項目で初期値として使用され、 レコードに関連付けられているデフォルトのキューを識別します。 詳細については、『MQSeries® のサポート』を参照してください。

ターゲット・プラットフォーム

プラットフォーム 互換性に関する考慮事項
CICS® for z/OS®
SPOOL
この値は、シリアル・ファイルに関連付けられた JES SPOOL ファイルの入力または出力ファイル名です。

入力ファイル名: userid.classuserid パラメーターには、4 から 8 文字の外部書き出しプログラム名かアスタリスク (*) が入ります。外部書き出しプログラム名を使用する場合、CICS では、外部書き出しプログラム名の最初の 4 文字と、ACF/VTAM に CICS 領域を認識させる CICS APPLID の最初の 4 文字が同一になっていなければなりません。class パラメーターは、1 文字のスプール・クラスです。class はオプション・パラメーターで、デフォルトでは "A" になります。 最大名前サイズは 10 バイトです。詳細については、CICS のカスタマイズに関する資料を参照してください。

出力ファイル名: nodeid.userid.classnodeid パラメーターには、1 から 8 文字のシステム・ユーザー ID かアスタリスク (*) が入ります。class パラメーターは、1 文字のスプール・クラスです。class はオプション・パラメーターで、デフォルトでは "A" になります。 class が指定されない場合は、userid もオプションになり、デフォルトで CICS ユーザー ID (sysVar.usrID に保管された値) が使用されます。 最大名前サイズは 19 バイトです。詳細については、CICS のカスタマイズに関する資料を参照してください。

TEMPMAIN
この値は、相対ファイルまたはシリアル・ファイルに関連付けられたメイン一時記憶キューを示す 8 バイトのキュー名です。EGL で使用するためにいくつかのキュー名が予約済みであり、これらのキュー名は、接頭部に「EZE」が付いています。

一時記憶キュー名をレコード固有変数 recordName.resourceAssociation に移動すると、 (そのキューがまだ存在していなければ) キューが動的に作成されます。単一の一時記憶キュー・ファイルを複数のユーザーが同時に共用することはできません。CICS ENQ は、プログラム内で初めて参照されるファイルへのアクセスをシリアライズするのに使用されます。DEQ は、プログラムでファイルが閉じられるときに発行されます。

TEMPAUX
TEMPAUXTEMPMAIN と同様のパラメーターで、補助一時記憶キューに使用されます。
TRANSIENT
この値は、シリアル・ファイルに関連付けられた一時データ・キューを示す 4 バイトの DCT 名です。一時データ・キュー名は、CICS に定義される必要があります。
VSAM
この値は、索引ファイル、相対ファイル、またはシリアル・ファイルに関連付けられた VSAM ファイルを示す、8 バイトの FCT 名です。
Java™プラットフォーム なし。
z/OS バッチ
VSAM
サポートされていません。
VSAMRS
この値は、索引ファイル、相対ファイル、またはシリアル・ファイルに関連付けられた VSAM ファイルを示す、44 バイトのデータ・セット名または 8 バイトの DD 名です。 ファイルの resourceAssociation に値が設定されていない場合、 プログラムでは、最初に、論理ファイル名を DD 名として使用してデータ・セットが事前割り振りされているかどうかが確認されます。事前割り振りされていない場合は、 生成時に指定されたシステム・リソース名が、ファイルへのアクセスに使用されます。 データ・セット名を resourceAssociation に移動すると、リソースは MVS™ 監視プログラム呼び出し (SVC99) を使用して、resourceAssociation レコード・ファイル名に動的に割り振られます。割り振りは、DISP オプションが SHR に設定されている場合に行われるため、 データ・セットは、出力用に開かれるごとに書き込まれます。
SEQ
サポートされていません。
SEQRS
この値は、シリアル・ファイルに関連付けられたシステム順次ファイルを示す、54 バイトのデータ・セット名または 8 バイトの DD 名です。 ファイルの resourceAssociation に値が設定されていない場合、 プログラムでは、最初に、論理ファイル名を DD 名として使用してデータ・セットが事前割り振りされているかどうかが確認されます。事前割り振りされていない場合は、 生成時に指定されたシステム・リソース名が、ファイルへのアクセスに使用されます。 データ・セット名を resourceAssociation に移動すると、 リソースは MVS 監視プログラム呼び出し (SVC99) を使用して、関連したレコード・ファイル名に動的に割り振られます。割り振りは、DISP オプションが SHR に設定されている場合に行われるため、 データ・セットは、出力用に開かれるごとに再書き込みされます。
プラットフォーム 互換性に関する考慮事項
iSeries™ COBOL ファイル・タイプは、SEQ または VSAM でなければなりません。 値は、以下の方法のいずれかで、resourceAssociation に移動することができます。
LIB/FILE MEMBER
Library、File、および Member を明示的に指定します。
LIB/FILE
ファイル内の最初のメンバーが使用されます。
FILE MEMBER
*LIBL を使用してファイルを検索します。
FILE
*LIBL を使用してファイルを検索し、そのファイル内の最初のメンバーが使用されます。
resourceAssociation の値を変更すると、iSeries OVRDBF コマンドは以下の効果を及ぼします。
  1. 古いファイルのクローズ
  2. 新規の値へのオーバーライドの実行
  3. 新規ファイルのオープン

resourceAssociation に設定される値は、その呼び出しレベルから伝搬し、すべての従属呼び出しレベルに変更されます。 そのファイルが以前にプログラムによって開かれた場合、その値は伝搬されません。

Javaプラットフォーム なし。

  if (process == 1)
    myrec.resourceAssociation = "myFile.txt";
  else
    myrec.resourceAssociation = "myFile02.txt";
  end

関連する参照項目

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.(C) Copyright IBM Japan 2005.