外部CICSインタフェースは、MVSで実行されるCICS以外のプログラムを有効化するアプリケーション・プログラミング・インタフェースです。次の操作を実行できます。
外部CICSインタフェースは、2種類の形式のプログラミング・インタフェースを提供します。
それぞれのEXCI ART CICS
プログラムは、resource/program.desc
ファイル内でDPLサービスとして定義する必要があります。7番目の列にはCICS SYSID
を含める必要があり、サービスは<SYSID>_<PROGRAM>
という名前で通知されます。
transaction.desc
でDFHMIRS
を使用してミラー・トランザクションが定義されている場合、DPLは<APPLID>_MIRROR_<TRANSID>
またはMIRROR_<TRANSID>
という名前でサービスを通知します。
すべてのDPLリクエストがSYNCONRETURN
を使用して実行され、RRMSの制御化にない場合、Tuxedoクライアントではリソース・マネージャは必要ありません。最初のEXCIリクエスト・プロセス中に初期化が実行され、Tuxedoセッションはクライアント・プロセスの最後に終了されます。
RRMSが使用されるか、または1つのDPLリクエストがSYNCONRETURN
を使用せずに実行される場合、Tuxedoクライアント・プロセスは1つのリソース・マネージャを使用して構築する必要があります。初期化時にリソース・マネージャが開かれ、クライアント・プロセスの開始時にトランザクションが始まります。これらの手順のいずれかが正常に実行されない場合、クライアント・プロセスは中断します。クライアント・プロセスが通常どおりに終了すると、トランザクションがクライアント・プログラム(RSSCMIT
)によって明示的に実行されない場合、そのトランザクションはコミットされます。クライアント・プロセスが異常に終了すると、トランザクションはロールバックされます。これらのいずれかの場合、リソース・マネージャが閉じられ、Tuxedoセッションが終了されます。
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プリコンパイラ・オプションを使用する場合、DFHEIBLK
もDFHCOMMAREA
もPROCEDURE DIVISION USING
パラメータとして生成されません。
EXCIプリコンパイラ・オプションは、7番目の列から含まれるCOBOLコメント行を挿入すると設定されます。
*KIX--OPTION EXCI
EXCI Cプリコンパイラ・オプションは、-B
で設定されます。
ART CICSがサポートするEXCI EXEC CICS LINK
コマンドは、PROGRAM (name)
、APPLID (name)
およびTRANSID (name)
です。DATALENGTH (data-value)
は認識されます。
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
環境変数の値。
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ローリング・パッチ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>
は指定される場合に呼び出されます。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に設定されます。 SRRCMIT
およびSRRBACK
関数を使用できます。ATRCMIT
およびATRBACK
関数はサポートされていません。
SRRCMI
およびSRRBACK
関数は次のようにコーディングする必要があります。
01 SRR-RETCODE PIC 9(8) COMP-5.
CALL "SRRCMIT" USING SRR-RETCODE
CALL "SRRBACK" USING SRR-RETCODE
EXCI EXEC CICS Link
コマンドを使用するには、system.desc
、transactions.desc
およびprogram.desc
構成ファイルを構成する必要があります。
[SYSID]
APPLID={applid}
#TRANSNAME;GROUPNAME; DESCRIPTION; PROGRAM,hardcode with DFHMIRS
ECCI;SIMPDPL;pg for simpapp;DFHMIRS
#PROGRAM;GROUP;DESCRIPTION;LANGUAGE;EXECKEY;STATUS
TOUPSVR;SIMPDPL;pg for simpapp;COBOL; ;ENABLED;KIXD