Program Definitions (PD)

Program Definitions (PD) は、CICS® 領域で必要なアプリケーション・プログラム、マップ・セット、およびテーブルを、CICS が提供するものも含め、識別します。PD にリモートおよびローカル・プログラムを 定義できます。Program Definitions (PD) には、以下の属性が含まれます。
注: 属性名はコマンド行で使用されるとおりに表示されており、 AIX® System Management Interface Tool (SMIT) で使用される説明が括弧内に続いています。
<Key>
この属性は、固有なプログラム、マップ・セット、またはテーブルを指定します。このキーは、プログラムとテーブルの場合は 8 文字以下で、マップ・セットの場合は 7 文字以下です。文字 A から Z、a から z、0 から 9、ドル記号 ($)、および単価記号 (@) を使用できます。(CICS は、すべての小文字を大文字に変換します)。名前を「DFH」というシーケンスで開始することはできません。この接頭部は CICS の内部で使用するために予約されているからです。プログラム名は、各国語サポート (NLS) によってサポートされていません。すべての永続データベース操作、および実行時データベースの挿入操作では、CICS は、データベース・キーを構成するバイトに対し、クラス固有の妥当性検査を行います。

この値の設定に IBM TXSeries Administration Console、 SMIT (CICS for AIX)、 または SAM (CICS for HP-IA) を 使用している場合は、文字の使用に関する制約事項 を参照してください。

ActivateOnStartup (リソースをコールド・スタート時に活動化しますか?)
この属性は、領域のコールド・スタート時に永続データベースから実行時データベースにリソース定義を常にコピーするかどうかを指定します。 この属性が yes に設定されると、永続データベースから実行時データベースにリソース定義が常にコピーされます。属性が no に設定されている場合、リソース定義のグループがRegion Definitions (RD)Groups 属性に指定されている場合を除いて、リソース定義は実行時データベースにコピーされません。デフォルト値は yes です。
AmendCounter (更新の数)
この属性は CICS 内部使用に予約されています。
EnableStatus (プログラム使用可能状況)
この属性は、プログラムが使用可能であるかどうかを指定します。プログラムが使用可能であれば、値を enabled に設定し、使用可能でなければ、disabled に設定してください。デフォルト値は enabled です。
GroupName (リソースが属するグループ)
この属性は、このリソース定義が属するグループの名前を指定します。名前は 8 バイトのストリングで指定されます。コールド・スタートの場合、Region Definitions (RD)Groups 属性で指定されたグループに属するリソース定義を CICS が永続データベースから実行時データベースへコピーするよう指定できます。 (これは 定義を永続データベースからランタイム・データベースへ始動時にコピーするリソースの ActivateOnStartup 属性を yes に設定するのに追加して行えます。) デフォルト値は グループを指定しない "" です。
PathName (プログラム・パス名)
この属性は、プログラム、マップ・セット、またはテーブルのディレクトリー・パスとファイル名を指定します。デフォルト値は "" です。

パスを指定するための方法は 3 通りあります。

  • ファイルの絶対パス名 (あとにファイル名を指定)。
  • ファイルの相対パス名 (あとにファイル名を指定)。 CICS は、/var/cics_regions/regionName/bin (オープン・システムの場合) または rootDir¥var¥cics_regions¥regionName¥bin (Windows の場合) からの相対パスとしてパス名を解釈します。
  • スラッシュ文字 (/) (オープン・システムの場合) または円記号 (¥) (Windows の場合) が含まれていないファイル名ストリング。

    ストリングとして指定されたプログラムを検出する場合、CICS は以下の順序でディレクトリーを検索します。

    1. /var/cics_regions/regionName (オープン・システムの場合) または rootDir¥var¥cics_regions¥regionName (Windows の場合)
    2. $CICSPATH/bin (オープン・システムの場合)

    ストリングで指定されたマップ・セットを CICS が検出できるようにするには、ファイル名に .map 拡張子が必要です。CICS は、以下の順序でディレクトリーを検索します。

    1. /var/cics_regions/regionName/maps/locale (オープン・システムの場合) または rootDir¥var¥cics_regions¥regionName¥maps¥locale (Windows の場合)
    2. /var/cics_regions/regionName/maps/prime (オープン・システムの場合) または rootDir¥var¥cics_regions¥regionName¥maps¥prime (Windows の場合)
    3. $CICSPATH/maps/locale (オープン・システムの場合) または rootDir¥opt¥cics¥maps¥locale (Windows の場合)
    4. $CICSPATH/maps/prime (オープン・システムの場合) または rootDir¥opt¥cics¥maps¥prime (Windows の場合)

    ここで、locale は、システムに対して指定された言語です。

    ユーザー定義のパス: 環境変数 CICS_PROGRAM_PATH を使用してユーザー定義のパスを指定することができます。CICS_PROGRAM_PATH 環境変数は、オペレーティング・システムの標準のパスの動作をサポートします。したがって、Windows プラットフォームではパスはセミコロン (;) で、オープン・システムのプラットフォームではコロン (:) で区切られます。

    プログラム定義の PathName 属性に、オープン・システムではスラッシュ (/)、Windows では (¥) 記号が含まれていないファイル名を指定したために、プログラムが上記で指定した位置で検出できなかった場合、CICS が指定されたパスを検索して、プログラムまたはマップをロードしようとします。この検索では、CICS は CICS_PROGRAM_PATH 環境変数と PathName 属性を使用します。

    cicsteld コマンドを使用してユーザーを接続する場合、-l オプションを使用して言語も指定できます。

    ストリングで指定されたテーブルを検出する場合、CICS は、ディレクトリー /var/cics_regions/regionName/data (オープン・システムの場合) または rootDir¥var¥cics_regions¥regionName¥data (Windows の場合) を検索します。

Java™ 以外の言語で作成されたプログラムの場合、PathName 属性に指定したファイル名に拡張子が含まれていなくても かまいません。Java で作成されたプログラムの場合、ファイル名には接尾部 .class を付ける必要があります。CICS は、インストールされている 拡張子に基づいて、以下の順序でプログラム・ファイルを検索します。

  • オープン・システム CICS で Micro Focus COBOL Animator を使用しない 場合 (すべてのオペレーティング・システムですべての言語が使用できるとは限りません):
    1. C プログラム・ファイル (拡張子なし)。
    2. IBM COBOL ファイル (拡張子 .ibmcob)。
    3. Micro Focus COBOL ネイティブ・コード・ファイル (拡張子 .gnt)。
    4. Micro Focus COBOL 中間コード・ファイル (拡張子 .int)。
    5. IBM PL/I ファイル (拡張子 .ibmpli)。
    6. IBM® C++ ファイル (拡張子 .ibmcpp)。
    7. COBOL-IT ファイル (拡張子 .so)。
  • オープン・システム CICS で Micro Focus COBOL Animator を 使用する 場合 (すべてのオペレーティング・システムですべての言語が使用できるとは限りません):
    1. C プログラム・ファイル (拡張子なし)。
    2. IBM COBOL ファイル (拡張子 .ibmcob)。
    3. Micro Focus COBOL 中間コード・ファイル (拡張子 .int)。
    4. Micro Focus COBOL ネイティブ・コード・ファイル (拡張子 .gnt)。
    5. IBM PL/I ファイル (拡張子 .ibmcob)。
    6. IBM C++ ファイル (拡張子 .ibmcpp)。
    7. COBOL-IT ファイル (拡張子 .so)。
  • Windows システムの場合:
    1. Micro Focus COBOL ファイル (拡張子 .cbmfnt.int、または .gnt)。以下の注を参照。
    2. C プログラム・ファイル (拡張子 .dll)。
    3. IBM COBOL ファイル (拡張子 .ibmcob)。
    4. IBM PL/I ファイル (拡張子 .ibmpli)。
    5. IBM C++ ファイル (拡張子 .ibmcpp)。
    6. Microsoft C++ ファイル (拡張子 .cpp)。

      COBOL-IT コンパイラーと Micro Focus COBOL コンパイラーの両方を使用してコンパイルされた COBOL アプリケーションが同じディレクトリーに存在する場合、実行可能ファイルの拡張子 (Micro Focus は .gnt、COBOL IT は .so) を PathName 属性に指定する必要があります。 拡張子を指定しないと、APCT が異常終了する可能性があります。

注: CICS による Micro Micro Focus ファイルの検索順序は、以下に基づき行われます。
  • Micro Focus COBOL を使用しているか
  • Micro Focus COBOL を使用している場合、Animator を使用しているか
Windows 上で Micro Focus COBOL を使用している場合、CICS は、Animator を使用するかどうかにかかわらず、以下の順序でファイルを検索します。
  1. Micro Focus COBOL 生成コード・ファイル (拡張子 .cbmfnt)
  2. Micro Focus COBOL ネイティブ・コード・ファイル (拡張子 .gnt)
  3. Micro Focus COBOL 中間コード・ファイル (拡張子 .int)
オープン・システム上で Micro Focus COBOL とともに Animator を使用する場合、CICS は以下の順序で Micro Focus ファイルを検索します。
  1. Micro Focus COBOL 中間コード・ファイル (拡張子 .int)
  2. Micro Focus COBOL ネイティブ・コード・ファイル (拡張子 .gnt)
オープン・システム上で Micro Focus COBOL を使用し、Animator を使用しない場合、CICS は、拡張子 .gnt.int の Micro Focus ファイルのみを検索します。

Windows で Micro Focus COBOL を使用し、Animator を使用しない場合、CICS は、拡張子 .cbmfntMicro Focus COBOL ファイルのみを検索します。

Permanent (リソースを変更から保護しますか?)
この属性は、永続データベース項目の変更または削除を許可するかどうかを指定します。属性が no に設定されている場合、項目は変更または削除できます。この属性が yes に設定されている場合、項目を修正または削除できません。項目を変更するには、最初にこの属性を no にリセットします。項目を変更した後、この属性を再び yes に設定してください。デフォルト値は no です。
ProgType (プログラム・タイプ)
この属性は、項目がプログラムなのか、マップ・セットなのか、テーブルなのかを指定します。programmap、または table の値の 1 つを指定してください。デフォルト値は program です。
RemoteName (リモート・システムにあるプログラムに使用する名前)
この属性は、リモート・システム上で使用されるプログラムの名前を指定します。プログラムがリモート領域にある場合には、そこでプログラムが認識されている名前を入力します。この属性に値を指定しないと、CICS はプログラムのローカル ID をリモート領域に送信します。デフォルト値は "" です。
RemoteSysId (プログラムが実行されるリモート・システム)
この属性は、このプログラムを実行するリモート・システムを指定します。プログラムがリモート領域にある場合には、そのリモート領域への接続を定義するCommunications Definitions (CD) 項目の名前を入力します。デフォルト値は "" です。これは、プログラムがローカル領域に常駐することを意味します。
Resident (キャッシュに入れる必要のあるプログラムですか?)
この属性は、プログラムをロードしたあとでアプリケーション・サーバーのプログラム・キャッシュにそのプログラムを入れることができるかどうかを指定します。この属性に yes を設定すると、プログラム・キャッシュにスペースがあれば、CICS はプログラムをキャッシュに入れます。Region Definitions (RD) ProgramCacheSize 属性は、キャッシュに入れることができるプログラムの最大数を決定します。

次のいずれかが発生するまで常駐プログラムは再度ロードされないので、プログラム・キャッシュを定義しておくとパフォーマンスが向上する可能性があります。

  • SET PROGRAM COPY(PHASEIN) コマンドまたは SET PROGRAM PHASEIN コマンドが発行された。
  • Resident 属性の値が、no に変更された。
  • キャッシュがいっぱいで、新しい項目が入るようにプログラムが除去された。 この場合、使用された時期が最も古いプログラムが除去され、それより頻繁に使用されるプログラムはキャッシュ内に残されます。

プログラムに静的データの新規コピーが与えられるのは、プログラムがロードされるときだけです。 そのため、プログラムが静的データを変更する場合、Resident 属性を no に設定する必要があります。

この属性は、Java と Micro Focus COBOL では無視されます。

デフォルト値は no です。

ResourceDescription (リソース記述)
この属性は、この PD 項目を 30 バイトのストリングで指定します。デフォルト値は「Program Definition」です。
RSLKey (リソース・レベル・セキュリティー・キー)
この属性は、数値 1 から 24 で表される、このプログラムのリソース・セキュリティー・キーを指定します。この要求を発行したトランザクションを所有するユーザーのUser Definitions (UD)RSLKeylist 属性に、この RSLKey 値がない場合、CICS は NOTAUTH 条件を発生させます。あるいは、public または private の値を指定できます。 値 public の場合、任意のユーザーがこのファイルにアクセスできます。値 private を使用すると、CICS は、Transaction Definitions (TD) 項目内で属性 RSLChecknone に設定されているトランザクションからのみ、ファイルへのアクセスを許可します。 デフォルト値は private です。

リソース・セキュリティーについて詳しくは、CICS リソースへのユーザー・アクセスの許可を参照してください。

TemplateDefined (ユーザーの変換テンプレートは定義されていますか?)
この属性は、プログラムに変換テンプレートを定義するかどうかを指定します。 分散プログラム・リンク (DPL) を使用して、リモートの非 ASCII CICS システムからそのプログラムを実行でき、そのプログラムに COMMAREA が渡される場合には、COMMAREA 用の変換テンプレートをセットアップしなければなりません。そのようなテンプレートがあれば、この属性に yes を設定します。テンプレートがなければ、no を設定します。デフォルト値は no です。
TransId (リモート・システムにあるプログラムのトランザクション名)
この属性は、DPL を使用するときに、サーバー・システムで接続するトランザクションを指定します。EXEC CICS LINK TRANSID は、ここで指定する値を指定変更します。デフォルト値は "" です。 デフォルト値を使用すると、CPMI トランザクションが使用されます。
UserExitNumber (ユーザー出口番号)
この属性は、ユーザー出口プログラムの番号を指定します。プログラムがユーザー出口プログラムの場合に必要です。ユーザー出口番号 は、ユーザー出口 の最後の 3 桁です。番号の先行ゼロは省略することができます。ユーザー出口の命名規則についての詳細、およびユーザー出口番号の表がユーザー出口に示されています。 デフォルト値は 0 です。これはユーザー出口プログラムではないことを意味します。
UserExitSequence (ユーザー出口の呼び出しの順序)
この属性は、その特定のユーザー出口プログラムが単一出口点で他の複数のプログラムとともに呼び出される際の順序/シーケンスを指定します。 これは、単一出口点で複数のユーザー出口プログラムが呼び出される場合にのみ必要です。 UserExitSequence0 から n の値に設定する必要があります。 値 0 は特定プログラムが最初のプログラムとして呼び出されることを意味し、値 1 はプログラムが 2 番目のプログラムとして呼び出されることを意味する、などのようになります。 デフォルト値は 0 です。