RNL サポート

RNL は IBM メインフレーム・メソッドで、GRS はこのメソッドを使用してリソース範囲を特定します。RNL 機能のうち、SYSZDSN ロック範囲の特定に必須の機能のみが実装されています。

エンタープライズ・サーバ RNL 実装の制限事項

次の項目はサポートされません。
  • RNL=NO
  • GRSRNL=EXCLUDE
  • GRS=NONE
  • ISGNQXIT または ISGNQXITFAST 出口

RNL は常に使用されます。

エンタープライズ・サーバ RNL の設定

ESCLRNLs.cfg ファイルの特性
  • すべての RNL を ESCLRNLs.cfg という単一のファイルで作成する必要があります。
  • このファイルは CATALOG フォルダと同じフォルダに置かれる必要があり、エンタープライズ・サーバ・クラスタの全メンバによって共有されます。
  • 名前と場所は設定できません。
  • ESCLRNLs.cfg ファイルは行順次ファイルです。
  • ファイルには、エンタープライズ・サーバ・クラスタの各メンバにロードされるすべての RNLDEF が含まれます。
ESCLRNLs.cfg ファイルの処理
  1. CAS マネージャがファイルにアクセスしレコードを検証します。
  2. レコードが有効な場合はレコードは動的にインストールされます。
  3. RNL ファイル処理の終わりに、次のメッセージがコンソールに送信されます。
    TXSI9024I nnn RNLDEF loaded from ESCLRNLs.cfg 
    ここで nnn はファイルから正常にロードされた RNL の数です。
エンタープライズ・サーバ・クラスタ・マネージャは、ESCLRNLs.cfg ファイルを検出しないと、デフォルトのファイルを作成しそのファイルに次の 1 行を追加します。
 RNLDEF RNL(INCL)TYPE(GENERIC) QNAME(SYSZDSN) 
この結果、すべての SYSZDSN で範囲がグローバル (サーバ) に設定されます。

ファイルには、エンタープライズ・サーバ・クラスタ・マネージャのみがアクセスします。エンタープライズ・サーバ・クラスタ・クライアント・リージョンの起動時に、すべてのクラスタ・クライアントは RNL を要求します。この処理は、エンタープライズ・サーバ・クラスタ・クライアント・リージョンで pltpi からトランザクション fafaffff によって実行されるハンドシェイクの一部です。

RNL が GLM から受信されると、クライアントは次のメッセージをコンソールに送信します。
CASSI9025I All RNLDEFs received and installed from ES Cluster Manager GML_NAME

エンタープライズ・サーバ RNLDEF サポートの制限事項

エンタープライズ・サーバ・クラスタでは、RNLDEF は次を使用して定義されます。
RNL 識別子
  • SYSTEM エクスクルード・リストの RNL(EXCL)
  • SYSTEM インクルード・リストの RNL(INCL)
エントリ・タイプのインジケータ
  • TYPE(SPECIFIC) - エントリは特定の名前です。
  • TYPE(GENERIC) - エントリは一般的な名前です。
  • TYPE(PATTERN) - エントリはパターンの名前です。
qname
  • QNAME(QUEUE_NAME)

    エンタープライズ・サーバ・クラスタは、3 つのキュー名、SYSZJOBD、SYSZJOBN、SYSZDSN の処理のみを行います。RNL は SYSZDNS リソースの範囲の定義のみに使用されます。SYSZJOBD と SYSZJOBN は常にグローバルです (範囲 = サーバ)。

rname
  • RNAME(Resource_name)

    RNL に使用される QNAME のみが SYSZDSN なので、リソース名の最長は 44 です。

エンタープライズ・サーバ RNLDEF フォーマット

メインフレームでは、エンタープライズ・サーバ・クラスタ実装に比べてより自由なフォーマットが可能です。参照先:http://publib.boulder.ibm.com/infocenter/zos/v1r12/index.jsp?topic=%2Fcom.ibm.zos.r12.ieae200%2Fiea2e2b0169.htm

エンタープライズ・サーバ・クラスタでは、制約のあるフォーマットが適用されます。
  • 列に制約はありませんが、RNLDEF が 1 つの行に含まれる必要があります。
  • コメントはサポートされません。
  • 各 RNLDEF 文は RNLDEF という文字で始まると定義され、行の終わりで終了します。
  • 各 RNLDEF 文には、RNL、TYPE、QNAME、RNAME パラメータが任意の順序で含まれる必要があります。これには唯一、次の例外があります。
    • TYPE(GENERIC) が一般の QNAME リソースに指定される場合、RNAME パラメータの省略が可能です。次に例を示します。
       RNLDEF RNL(EXCL) TYPE(GENERIC) QNAME(SYSZDSN) 
      この結果、すべての SYSZDSN で範囲がローカルに設定されます。
  • キーワードまたは指定された値の内部を除き、空白をどこにでも挿入できます。
  • RNAME では検証はありません。
  • RNAME(X'19') のようなフォーマットはサポートされません。
  • 特定のリソース名のエントリが検索引数と一致するのは、それらがまったく同じ場合のみです。RNLDEF 文の RNAME 値の長さがコードに含まれる RNAME 値の長さと同じ場合のみに一致が生じます。

RNL の処理

次に示す IBM の図は、RNL の処理を表しています。エンタープライズ・サーバ・クラスタはこの動作をエミュレートしますが、エンタープライズ・サーバ JES サブシステムは範囲を SERVERS (IBM SYSPLEX または SYSTEMS の値と同等) に設定しません。このため INCLUDE リストは系統的に処理されることに注意してください。INCLUDE RNL が RNAME と一致する場合、EXCLUDE リストが検索されます。

なお、RNLDEF の処理は INCLUDES および EXCLUDES 両方の最初の一致で停止します。

RNL の例

INCL/EXCL のリスト:

RNLDEF RNL(INCL) TYPE(SPECIFIC) QNAME(SYSZDSN) RNAME(SYS.CLUSTER.MYFILE)

RNLDEF RNL(INCL) TYPE(SPECIFIC) QNAME(SYSZDSN) RNAME(SYS1.CLUSTER.SPEC001)

RNLDEF RNL(INCL) TYPE(SPECIFIC) QNAME(SYSZDSN) RNAME(SYS1.CLUSTER.SPEC002)

RNLDEF RNL(INCL) TYPE(SPECIFIC) QNAME(SYSZDSN) RNAME(SYS1.CLUSTER.SPECXXX)

RNLDEF RNL(EXCL) TYPE(SPECIFIC) QNAME(SYSZDSN) RNAME(SYS1.CLUSTER.SPECXXX)

RNLDEF RNL(INCL) TYPE(GENERIC) QNAME(SYSZDSN) RNAME(SYS1.CLUSTER.GEN)

RNLDEF RNL(EXCL) TYPE(GENERIC) QNAME(SYSZDSN) RNAME(SYS1.CLUSTER.GENEXXX)

RNLDEF RNL(INCL) TYPE(PATTERN) QNAME(SYSZDSN) RNAME(SYS1.CLUSTER.PATT???)

RNLDEF RNL(EXCL) TYPE(GENERIC) QNAME(SYSZDSN) RNAME(SYS1.CLUSTER.PATTX)

RNLDEF RNL(EXCL) TYPE(PATTERN) QNAME(SYSZDSN) RNAME(SYS1.*.PAT*X2)

RNLDEF RNL(INCL) TYPE(PATTERN) QNAME(SYSZDSN) RNAME(SYS1.H???A.O*)