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 を初期化する場合、 その小文字の値は小文字にのみ突き合わせします。

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

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

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

MQ レコード

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

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

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

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

関連リファレンス

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.