11 外部CICSインタフェース(EXCI)

この章のトピックは、次のとおりです:

11.1 概要

外部CICSインタフェースは、MVSで実行されるCICS以外のプログラムを有効化するアプリケーション・プログラミング・インタフェースです。次の操作を実行できます。

  • CICSシステムへのセッションを割り当てて開き、DPLリクエストをそのセッション上で発行します。
  • CICS環境で実行されるサーバー・プラグラムを呼び出し、通信領域経由でデータを受け渡したり受信したりします。

外部CICSインタフェースは、2種類の形式のプログラミング・インタフェースを提供します。

  • EXCI CALLインタフェース。次の操作を可能にする6つのコマンドから構成されます。
    • MVSで実行されるCICS以外のプログラムからCICSシステムへのセッションを割り当てます。
    • CICS以外のプログラムから当該セッション上でDPLリクエストを発行します。
    • DPLリクエストの完了時にセッションを閉じて解放します。
  • EXCI EXEC CICSインタフェースは、1つの複合コマンドを提供します。このコマンドは、1回の呼出しでEXCI CALLインタフェースの6つのコマンドすべてを実行します。

11.2 Oracle Tuxedo Application RuntimeにおけるEXCI

図11-1 ARTにおけるEXCI


ARTにおけるEXCI

それぞれのEXCI ART CICSプログラムは、resource/program.descファイル内でDPLサービスとして定義する必要があります。7番目の列にはCICS SYSIDを含める必要があり、サービスは<SYSID>_<PROGRAM>という名前で通知されます。

transaction.descDFHMIRSを使用してミラー・トランザクションが定義されている場合、DPLは<APPLID>_MIRROR_<TRANSID>またはMIRROR_<TRANSID>という名前でサービスを通知します。

すべてのDPLリクエストがSYNCONRETURNを使用して実行され、RRMSの制御化にない場合、Tuxedoクライアントではリソース・マネージャは必要ありません。最初のEXCIリクエスト・プロセス中に初期化が実行され、Tuxedoセッションはクライアント・プロセスの最後に終了されます。

RRMSが使用されるか、または1つのDPLリクエストがSYNCONRETURNを使用せずに実行される場合、Tuxedoクライアント・プロセスは1つのリソース・マネージャを使用して構築する必要があります。初期化時にリソース・マネージャが開かれ、クライアント・プロセスの開始時にトランザクションが始まります。これらのステップのいずれかが正常に実行されない場合、クライアント・プロセスは中断します。クライアント・プロセスが通常どおりに終了すると、トランザクションがクライアント・プログラム(RSSCMIT)によって明示的に実行されない場合、そのトランザクションはコミットされます。クライアント・プロセスが異常に終了すると、トランザクションはロールバックされます。これらのいずれかの場合、リソース・マネージャが閉じられ、Tuxedoセッションが終了されます。

11.2.1 サポートされるEXCIインタフェース

EXCIプリコンパイラ・オプションは、CICSクライアント・バッチ・プログラム用に使用する必要があります。

COBOLプリコンパイラは、EXCI CALLまたは1つのCICSコマンド(EXEC CICS LINK)のみを次に説明するオプションとともにサポートします。Cプリコンパイラは、EXCI EXEC CICS LINKのみをサポートします。

ART CICSでは、EXCIリクエストを行うためのDFHXCIS APIがサポートされます(DFHXCISはクライアント・プログラムでEXCI CALLを行うプロシージャAPIです)。

EXEC CICS LINKの場合、RETCODEコマンド・オプションはEXCIで必須ですが、NOEXCIでは禁止されており、APPLIDオプションはEXCI専用です。EXCIを使用しない場合、SYSIDオプションを使用できます。

EXCIプリコンパイラ・オプションを使用する場合、DFHEIBLKDFHCOMMAREAPROCEDURE DIVISION USINGパラメータとして生成されません。

EXCIプリコンパイラ・オプションは、7番目の列から含まれるCOBOLコメント行を挿入すると設定されます。

*KIX--OPTION EXCI

IDENTIFICATION DIVISION行の前。

EXCI Cプリコンパイラ・オプションは、-Bで設定されます。

ART CICSがサポートするEXCI EXEC CICS LINKコマンドは、PROGRAM (name)APPLID (name)およびTRANSID (name)です。DATALENGTH (data-value)は認識されます。

11.2.2 プリコンパイラ制御

  • PROGRAM()およびRETCODE()がEXCIのLINKコマンドに必須です。
  • SYSIDはEXCIで認識されません。
  • LENTGHまたはDATALENGTHが存在する場合は、COMMAREAが存在する必要があります。
  • EXCI CICS LINKはEXCIでサポートされる唯一のコマンドです。

11.2.3 アクセス認証

Tuxedo構成のSECURITYレベルによってアクセス認証が実行されます。

MT_EXCIAPPPROFILE環境変数は、genappprofile ARTKIXツールによって生成されるアプリケーション・プロファイルのファイル名を提供します。デフォルト・ファイル名は$HOME/.tuxAppProfileです。

EXCIクライアントによって発行されるDPLプログラムでは、EXEC CICS ASSIGN USERID()コマンドが次を返します。

Tuxedo ubbconfig内にセキュリティ・レベルが設定されていない場合は、$USER環境変数の値。Tuxedo ubbconfig内でセキュリティ・レベルを有効化する場合は、genappprofileツールのUSERID入力値。USERIDの値は、tuxAppProfileから取得され、DPLリクエストによって渡されます。

詳細は、 Oracle Tuxedo Application Runtime for Batchのドキュメントを参照してください。

EXCIクライアントによって発行されるDPLプログラムでは、EXEC CICS ASSIGN USERNAME() コマンドが次を返します。

Tuxedo ubbconfig内にセキュリティ・レベルが設定されているかどうかにかかわらず、$USERNAME環境変数の値。

11.2.4 ART CICSの実装

EXCIインタフェースを介してリンクされるプログラムは、ARTDPLサーバーによって通知されます。そのプログラム名は<program>_<sysid>となり、<program>はリンクされるプログラム名(EXCI EXECインタフェースのoption PROGRAM(<program>))で、<sysid>はCICSシステムIDです。

EXCIインタフェースは、<applid> CICSアプリケーションIDを使用して適切なCICS領域のアドレスを指定します。<applid><sysid>との間の関係は、<applid>_infoと言う名前の特定のDPLサーバー・サービス経由で構築されます。

DPLサーバー・コマンド行(CLOPT)の-aユーザー・パラメータ値は、_infoサービスの<applid>値として使用されます。

<applid>がクライアントによって省略される場合(APPLID(<applid>) EXCI EXECインタフェース・オプションなし)、default_infoサービスが呼び出されます。このサービスは、最初に起動されるDPLサーバーによって通知されます。

_infoサービスは、サーバー・コマンドラインの-sユーザー・パラメータによってサーバーに関連付けられる<sysid>を返します。

ART CICS 12cローリング・パッチ015以降、4つのサービスがARTDPLサーバーによって通知されます。

  • <applid>_CSMI<applid>は、適切なCICSリージョンのアドレスを指定するCICSアプリケーションIDです。このサービスは、EXCIインタフェースでクライアントによって<transid>は指定されないが、<applid>は指定される場合に呼び出されます。
  • CSMI。このサービスは、EXCIインタフェースでクライアントによって<applid><transid>の両方とも指定されない場合に呼び出されます。
  • <applid>_MIRROR_<transid><applid>は、適切なCICSリージョンのアドレスを指定するCICSアプリケーションIDで、<transid>は、トランザクションIDです。このサービスは、EXCIインタフェースでクライアントによって<applid><transid>の両方が指定される場合に呼び出されます。
  • MIRROR_<transid><transid>はトランザクションIDです。このサービスは、EXCIインタフェースでクライアントによって<applid>は指定されないが、<transid>は指定される場合に呼び出されます。
11.2.4.1 ART制限

この項の内容は次のとおりです。

11.2.4.1.1 共通EXCIインタフェースのART制限
  • TRANSIDに意味はありません。これに関する制御もありません。DFHEIBLK構造体のEIBTRNIDフィールドでDPLサービスに渡されるのみです。
  • COMMAREAの長さは最大32763バイトに制限されています。
11.2.4.1.2 EXCI CALLインタフェースのART制限
  • VERSION-1のみがサポートされます。
  • 初期ユーザーUSER-NAMEは、制御を持たないユーザー・トークンを生成するためにのみ使用されます。
  • DPL UOWIDは互換性を確保する目的でのみ保持され、設定およびテストされません。
  • PIPE-TYPEに意味はありません。PIPE-TYPEに対して認識される値は、X'00'および(X'C3'またはX'D8)のみです(X'C3'およびX'D8'は、コード・ページに応じて指定できるX'80' EBCDICのASCII値です)。その他の値では、応答コードは12、理由コードは498に設定されます。
  • SYNC-TYPEに対して認識される値は、X'00'および(X'C3'またはX'D8)のみです(X'C3'およびX'D8'は、コード・ページに応じて指定できるX'80' EBCDICのASCII値です)。その他の値では、応答コードは12、理由コードは499に設定されます。
11.2.4.1.3 EXCI EXECインタフェースのART制限

DFHXCRM置換可能モジュールは処理されません。

11.2.4.2 SRRCMIT/SRRBACK関数

SRRCMITおよびSRRBACK関数を使用できます。ATRCMITおよびATRBACK関数はサポートされていません。

SRRCMIおよびSRRBACK関数は次のようにコーディングする必要があります。

01 SRR-RETCODE PIC 9(8) COMP-5.

CALL "SRRCMIT" USING SRR-RETCODE

CALL "SRRBACK" USING SRR-RETCODE

11.2.4.3 EXCI EXEC CICS LINKの構成ファイル宣言

EXCI EXEC CICS Linkコマンドを使用するには、system.desctransactions.descおよびprogram.desc構成ファイルを構成する必要があります。

構成の例を、次に示します。

リスト11-1 system.desc
[SYSID]
APPLID={applid}

リスト11-2 transactions.desc

#TRANSNAME;GROUPNAME; DESCRIPTION; PROGRAM,hardcode with DFHMIRS
ECCI;SIMPDPL;pg for simpapp;DFHMIRS
リスト11-3 program.desc
#PROGRAM;GROUP;DESCRIPTION;LANGUAGE;EXECKEY;STATUS
TOUPSVR;SIMPDPL;pg for simpapp;COBOL; ;ENABLED;KIXD