ランタイム PSB および PCB の EGL サポート

このトピックは、以下の場合に適切なタスクに関係します。

前のケースでは、組織のプログラム仕様ブロック (PSB) およびプログラム連絡 ブロック (PCB) にアクセスできる COBOL プログラムを生成するために、 必要に応じて EGL プログラム・エレメントをカスタマイズします。 これらのブロックは、今後はランタイム PSB およびランタイム PCB といいます。

まず、データベース PCB レコード (存在する場合) で参照する DLISegment レコード・ パーツを定義します。その後の主な作業内容は次のとおりです。
  1. PSB レコード・パーツを定義する。定義するパーツには、IMS メッセージ・キュー、DL/I データベース、または GSAM ファイルへの アクセス時に使用される PCB レコード・セットが含まれます。
  2. プログラムで、PSB および PCB の情報を使用可能にする。
    • PSB レコード・パーツに基づいたレコードを宣言する。
    • プログラム・プロパティー @DLI のプロパティー・ フィールド psb を PSB レコードの名前に設定する。構文の詳細については、 『値の設定ブロック』を参照してください。
それぞれの PCB レコードは、次の事前定義された PCB レコード・パーツの いずれかに基づいています。
IO_ PCBRecord
I/O PCB と対話するために使用されます。プログラムまたは端末からの入力を 可能にして、(入力が端末からの場合は) 同じ端末への出力を可能にします。 また、I/O PCB は、チェックポイント、およびバッチ・プログラムの再開などの 他の IMS 機能への アクセスを提供します。
ALT_PCBRecord
I/O PCB 以外のテレプロセシング PCB を参照するために使用されます。 このタイプのレコードを使用すると、コードでは、別のトランザクション または I/O PCB に関連付けられている端末以外のデバイスに関連するメッセージ・ キューへの出力を書き込むことができます。ランタイム PCB は、以下のいずれかの 種類となります。
  • 代替 PCB。この場合には、コミットが発生したときのみ出力が発生します。
  • 特別代替 PCB。この場合には、コミットまたはロールバックが発生したかどうかに 関係なく出力が発生します。
DB_PCBRecord
データベース PCB を参照するために使用されます。これは、プログラムから アクセス可能な DL/I データベースを表します。ランタイム・データベース PCB は、 アクセスできるデータおよび有効なアクセスのタイプを指定します。
GSAM_PCBRecord
GSAM PCB を参照するために使用されます。これは、z/OS バッチまたは IMS BMP プログラムが、root-only DL/I データベースとして 振る舞うシリアル・ファイルにアクセスするときに使用されます。
次のリストは、それぞれのターゲット・システムでのランタイム PSB の詳細を 示します。
CICS
PSB レコード・プロパティー defaultPSBName の 値は、(デフォルトでは) ランタイム PSB の名前です。EGL は、システム変数 DLILib.psbDatapsbName フィールドにこの名前を入れますが、このライブラリー・フィールドには 別の値を割り当てることができます。プログラムが DL/I データベースに対して 入出力 (I/O) 操作を行おうとすると、psbName の値が、使用される PSB を 決定します。
システム変数 DLILib.psbData には、2 番目の フィールド psbRef があります。このフィールドの初期値は、PSB が スケジュールされていないことを示すゼロです。 最初の DL/I I/O が発生すると、EGL ランタイムは、次のように動作する PSB スケジュール呼び出しを発行します。
  • DLILib.psbData.psbName の値を使用して、ランタイム PSB をスケジュールする。
  • DLILib.psbData.psbRef を、PSB へのアクセスに使用できるアドレスに 設定する。
注: 値を DLILib.psbData.psbRef に割り当てるロジックを 作成することは避ける必要があります。
呼び出し時に、変数 DLILib.psbData を 使用して、「PSB を渡す」(実際には、名前と関連するアドレスを渡す) ことができます。 ただし移動時には、スケジュールされた PSB は、コミット点が発生した場合のみ 終了します。
  • PSB が転送プログラムにはスケジュールされるが、受信プログラムには スケジュールされない場合、transfer 文に関してコミット点が 常に存在します。
  • 同様に、転送プログラムと受信プログラムに関して異なる PSB が スケジュールされる場合、transfer 文に関してコミット点が 常に存在します。
  • 2 つのプログラムに関して同じ PSB がスケジュールされる場合は、transfer 文の 振る舞いはさまざまです。
    • transfer 文の形式が transfer to transaction の 場合は、コミット点が存在します。
    • transfer 文の形式が transfer to program の 場合は、ビルド記述子オプション synchOnPgmTransfer が、コミット点が 存在するかどうかを判別します。
  • 転送プログラムに PSB がスケジュールされていない場合、 コミット点は transfer to transaction 型の transfer 文に 関して常に存在しますが、transfer to program 型の transfer 文に 関しては存在しません。

DB PCB は、ランタイム PSB で有効です。

IMS BMP
ランタイム JCL の PSB パラメーターは、ジョブ・ステップを通じて使用される ランタイム PSB を識別します。デプロイメント時に JCL をカスタマイズすることは できますが、EGL は、PSB レコード・プロパティー defaultPSBName の値を 割り当てることによって、ランタイム JCL でデフォルトの PSB パラメーター値を 生成します。
IMS BMP の場合は、EGL は、最初の ランタイム PCB に次のものがあることを必要とします。
  1. I/O PCB (IMS システム・プログラマーが、PSBGEN の 作成時に CMPAT を YES に設定していることを確認してください)
  2. 代替 PCB
  3. 特別代替 PCB

DB および GSAM PCB も有効です。

IMS/VS
IMS システム定義の 規則は、メインプログラムの名前が、トランザクションを通じて使用可能な ランタイム PSB の名前になるようにします。
IMS/VS の場合は、EGL では、 最初のランタイム PCB には次のものがある必要があります。
  1. I/O PCB (IMS システム・プログラマーが、PSBGEN の 作成時に CMPAT を YES に設定していることを確認してください)
  2. 代替 PCB
  3. 特別代替 PCB

DB PCB も有効です。

ビルド記述子オプション workDBType の 値が DLI (デフォルトと同じ) である場合は、名前 ELAWORK によって識別される EGL 作業 データベースのランタイム DB PCB のいずれかを設定します。 ELAWORK データベースの階層情報を含める必要はありません。
注: SQL 作業データベースに変更することに決定した場合に、ランタイム PSB の 最後のデータベース PCB を簡単に除去できるように、この PCB を ELAWORK として 指定することをお勧めします。
z/OS バッチ
ランタイム JCL の PSB パラメーターは、ジョブ・ステップを通じて使用される ランタイム PSB を識別します。デプロイメント時に JCL をカスタマイズすることは できますが、EGL は、PSB レコード・プロパティー defaultPSBName の値を 割り当てることによって、デフォルトの PSB パラメーター値を生成します。

z/OS バッチの 場合は、EGL では、最初のランタイム PCB を I/O PCB にする必要があります。 さらに EGL では、任意のタイプの 2 つの追加の PCB がランタイム PSB に 存在している必要があります。 代替 DB、および GSAM PCB が有効です。

EGL は、PSB レコードで宣言され、ランタイム PSB に存在しない、最初の 2 つ または 3 つの I/O およびテレプロセシング PCB のために調整を行います。 この調整によって、異なる環境で同じプログラムを生成できるようになります。 例えば、CICS に 関して、EGL ランタイムは、最初の I/O および代替 PCB レコードがコード内に 存在する場合、これらを無視します。

PSB レコード・パーツの要件

呼び出しインターフェース (AIBTDLI または CBLTDLI) の指定は、プログラム・ プロパティー @DLI のプロパティー・フィールド callInterface を 設定することによって行います。この選択によって、定義する PSB レコード・ パーツの要件が影響を受けます。

関連リファレンス
transfer

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