|
この項では、Oracle Tuxedo Mainframe Adapter for SNAでサポートされているプログラミング環境での次のトランザクション・シナリオを示します。
| 警告: | この項のシナリオでは、ATMI呼出しとCICS/ESAプログラミング構造との関連について示します。 これらは、アプリケーション・コードの開発時に使用することも、既存のアプリケーション・コードと置き換えて使用することも意図されていません。これらの例を実際の場面で使用すると、予期しない結果を招く場合があります。 |
各例では、シナリオをグラフィカルに図示し、その後にシナリオの各ステップについて説明しています。
この項の例では、DPLおよびATMIサービス呼出しを使用するための多くのプログラミング・シナリオのうちのいくつかを示します。これらの例では、最も単純で効率的な方法を使用しています。





H0PLにより、MIRRDPLCプログラムが起動します。EXEC CICS LINKコマンドにより、(DMCONFIGファイルのDM_LOCAL_SERVICESセクションの)MIRRDPLSにマップされている公開済のサービスが実行されます。SYNCONRETURNオプションは、起動したサービスがCICS/ESAトランザクションに含まれないことを示します。MIRRORサービス・リクエストtpbeginにより、それ以降のすべての操作が1つのトランザクションに含められます。MIRRORサービスによりデータが処理されます。tpcommitはトランザクションの終了を示します。サービス・トランザクション内で実行されたすべての更新はコミットされます。tpreturn呼出しにより、データがcommareaバッファに戻されます。EXEC CICS SYNCPOINTは明示的なコミット・リクエストです。CICS/ESAトランザクション内の更新されたすべてのリソースはコミットされます。
toupsrvサービスが呼び出されます。toupsrvサービスにより、トランザクションを開始するtpbeginが発行されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDPLに対して、tpcallが発行されます。TPNOTRANパラメータは、CICS/ESAアプリケーションがサービス・トランザクションに含まれないことを示します。TOUPDPLSプログラムが開始され、idataバッファ・コンテンツが処理に渡されます。TOUPDPLSプログラムによりデータが処理されます。EXEC CICS SYNCPOINTは明示的なコミット・リクエストです。CICS/ESAトランザクション内の更新されたすべてのリソースはコミットされます。commareaがクライアントのodataバッファに戻されます。toupsrvサービスのtpcommitリクエストは、それ自体の更新済リソースのコミットの原因となったトランザクションの完了を通知します。
toupsrvサービスが呼び出されます。toupsrvサービスにより、トランザクションを開始するtpbeginが発行されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDPLに対して、tpcallが発行されます。tpcallは同一トランザクション内で複数回リクエストされます。TOUPDPLSプログラムが開始され、idataバッファ・コンテンツが処理に渡されます。ホスト・ミラー・トランザクションはそれ以降のすべてのリクエストを提供する長時間のタスクとしてトランザクションに残されます。TOUPDPLSプログラムによりデータが処理されます。commareaがクライアントのodataバッファに戻されます。toupsrvサービスのループ終了条件が満たされるまで、ステップ3~6が繰り返されます。tpcommitリクエストにより、トランザクションが正常に終了したことが示され、それによって自身のリソースがコミットされて、リソースはホスト・ミラー・トランザクションによって保持されます。
H2PLにより、MIRRDPLCプログラムが起動します。EXEC CICS LINKコマンドにより、(DMCONFIGファイルのDM_LOCAL_SERVICESセクションの)MIRRDPLSにマップされている公開済のサービスが 実行されます。起動したサービスはCICS/ESAトランザクションに含まれます。MIRRORサービスによりデータが処理されます。tpreturn呼出しにより、データがcommarea バッファに戻されます。EXEC CICS SYNCPOINTは、対話が正常に終了したことを示す明示的なコミット・リクエストです。トランザクション内のすべての更新済リソースがコミットされます。
次の例は、DTPおよびATMIサービス呼出しを使用するためのプログラミング・シナリオを示しています。
tpcallはDPL環境に最も適しており、通常DPL環境で使用されますが、DTPサーバーへのリクエストやレスポンスにも使用できます。
この項の例は、DTPおよびATMIサービス呼出しを使用するための一部のプログラミング・シナリオを示しています。これらの例では、最も単純で効率的な方法を使用しています。

toupsrvサービスが呼び出されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpcallが発行されます。DTPSにより、TOUPDTPSプログラムが起動されます。eibtrmidをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。EXEC CICS RECEIVEコマンドによりidataバッファ・コンテンツが受信され、処理に渡されますTOUPDTPSプログラムによりデータが処理されます。EXEC CICS SENDコマンドにより、OUT-BUFFERコンテンツがクライアントのodataバッファに戻されます。LASTは対話が完了したことを示します。WAITはデータ受信が完了するまで処理を一時停止します。
toupsrvサービスが呼び出されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpacallが発行されます。TOUPDTPSプログラムが起動されます。EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。EXEC CICS RECEIVEコマンドによりidataバッファ・コンテンツが受信され、処理に渡されますTOUPDTPSプログラムによりデータが処理されます。EXEC CICS SENDコマンドにより、OUT-BUFFERコンテンツがクライアントのtpgetreply odataバッファに戻されます。LASTは対話が正常に終了したことを示します。WAITはデータ受信が完了するまで処理を一時停止します。
toupsrvサービスが呼び出されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpacallがTPNOREPLYリクエストとともに発行されます。TOUPDTPSプログラムが起動されます。EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。EXEC CICS RECEIVEコマンドによりidataバッファ・コンテンツが受信され、処理に渡されます。TOUPDTPSプログラムによりデータが処理されます。
toupsrvサービスが呼び出されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpconnectが発行されます。TPRECVONLYフラグはサーバーが制御し、toupsrvが発行する最初の対話verbがtprecvであることを示します。データはtpconnectでidataバッファに送信されます。TOUPDTPSプログラムが起動されます。EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。EXEC CICS RECEIVEコマンドによりidataバッファ・コンテンツが受信され、処理に渡されます。TOUPDTPSプログラムによりデータが処理されます。EXEC CICS SENDコマンドにより、OUT-BUFFERコンテンツがクライアントのtprecv odataバッファに戻されます。WAITはデータ受信が完了するまでTOUPDTPS での処理を一時停止します。LASTは対話が完了し、tprecvに対してTPEV_SVCSUCCとして通信したことを示します。 
toupsrvサービスが呼び出されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpconnectが発行されます。TPSENDONLYはクライアントがそのまま制御し、データ送信を続行することを示します。データはtpconnectでidataバッファに送信されます。TOUPDTPSプログラムが起動されます。EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。EXEC CICS RECEIVEコマンドによりtpconnect idataバッファ・コンテンツが受信され、処理に渡されます。TOUPDTPSプログラムによりデータが処理されます。EXEC CICS RECEIVEコマンドは、tpsend idataコンテンツをサーバーのIN-BUFFERに受信します。 EXEC CICS SEND WAIT LASTコマンドにより、対話が完了したことを示す通知とともに、OUT-BUFFERデータがtprecv odataバッファに戻されます。
toupsrvサービスが呼び出されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpconnectが発行されます。TPRECVONLYはサーバーが制御し、toupsrvが発行する最初の対話verbがtprecvであることを示します。TOUPDTPSプログラムが起動されます。EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。EXEC CICS RECEIVEコマンドでは、tpconnect TPRECVONLYフラグからのsend stateインジケータを受信します。INBUFFERではデータを受信しません。EXEC CICS SENDコマンドにより、OUT-BUFFERコンテンツがクライアントのtprecv odataバッファに戻されます。EXEC CICS SENDコマンドは、INVITEオプションを使用してクライアントへの制御を放棄します。これはtprecvに対してTPEV_SENDONLYとして通信されます。EXEC CICS RECEIVEコマンドでは、サーバーが制御を放棄したことを示す通知とともに、tpsend idataコンテンツをサーバーのIN-BUFFERに受信します。EXEC CICS RETURNは、TPEV_SVCSUCCとしてtprecvと通信している対話を終了します。
H0TPにより、MIRRDTPCプログラムが起動します。EXEC CICS ALLOCATEにより、セッションがリモートのTuxedoドメインに取得されます。EIBRSRCEに戻された対話IDをプログラム変数に保存します。この値は、CICS/ESA APPC verbの特定の対話の識別に使用されます。EXEC CICS CONNECT PROCESSコマンドにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORにマップされている公開済のサービスが開始されます。EXEC CICS SEND コマンドを実行して、OUT-BUFFERのコンテンツを、tpsvcinfo->dataバッファのTuxedoサービスに送信します。コンテンツは即時に送信される可能性があります。EXEC CICS SEND INVITE WAITコマンドでは、out-buffのコンテンツをtprecv odataバッファに送信します。INVITEパラメータにより対話の制御は放棄され、tprecvコマンドのreeventパラメータではTPEV_SENDONLYとして示されます。データは、前回のSEND操作のデータとともにただちに送信されます。tpreturnデータにより、対話が完了したことを示す通知とともにデータがEXEC CICS RECEIVEに戻されます。
MIRRDTPCプログラムが起動します。EXEC CICS ALLOCATEにより、リモートのTuxedoドメインに対するセッションが取得されます。EIBRSRCEに戻された対話IDをプログラム変数に保存します。この値は、CICS/ESA APPC verbの特定の対話の識別に使用されます。EXEC CICS CONNECT PROCESSコマンドにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORにマップされている公開済のサービスが開始されます。EXEC CICS SENDコマンドにより、INVITE WAITオプションの制御が放棄されます。EXEC CICS RECEIVEコマンドは、tpsend idataバッファ・コンテンツをIN-BUFFERに受信します。tpreturnリクエストにより対話が切断され、EXEC CICS RECEIVEで対話が終了したことが示されます。
| 注意: | これは、DTPトランザクション・サービスの推奨される実行方法ではありません。推奨される方法については、リクエスト/レスポンスを使用したトランザクションDPLを参照してください。 |
toupcltにより、toupsrvサービスが呼び出されます。(プログラムで実行される各tpcallは、tpbeginとtpcommitで挟まれる必要があります。)tpbeginが発行されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpcallが発行されます。TOUPDTPSプログラムが起動されます。EIBTRMIDをプログラム変数に保存します。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用します。EXEC CICS RECEIVEコマンドによりidataバッファ・コンテンツが受信され、処理に渡されますTOUPDTPSプログラムによりデータが処理されます。EXEC CICS SENDコマンドにより、OUT-BUUFERコンテンツがクライアントのodataバッファに戻されます。CONFIRMは対話が終了したことを示します。INVITEではクライアントがCOMMITリクエストで応答できます。toupsrvサービスにより、トランザクションを終了するtpcommitが発行されます。EXEC CICS RECEIVE verbでCOMMITが受け取られ、サーバーにより、リソースのコミット、トランザクションの終了、および未処理の対話の解放を行うためのEXEC CICS RETURNが発行されます。
toupsrvサービスが呼び出されます。toupsrvサービスにより、トランザクションを開始するtpbeginが発行されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpconnectが発行されます。TPRECVONLYはサーバーが制御し、toupsrvから発行される最初の対話verbがtprecvであることを示します。データはtpconnectでidataバッファに送信されます。TOUPDTPSプログラムが起動されます。EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。EXEC CICS RECEIVEコマンドによりidataバッファ・コンテンツが受信され、処理に渡されますTOUPDTPSプログラムによりデータが処理されます。EXEC CICS SENDコマンドにより、OUT-BUFFERコンテンツがクライアントのtprecv odataバッファに戻されます。CONFIRMは対話が終了し、TPEV_SVCSUCCとしてtprecvと通信したことを示します。INVITEにより、クライアントはCOMMITリクエストで応答できます。toupsrvサービスにより、トランザクションを終了するtpcommitが発行されます。EXEC CICS RECEIVE verbでCOMMITが受け取られ、サーバーにより、リソースのコミット、トランザクションの終了、未処理の対話の解放を行うためのEXEC CICS RETURNが発行されます。
MIRRDTPCプログラムが起動します。EXEC CICS ALLOCATEにより、リモートのTuxedoドメインに対するセッションが取得されます。EIBRSRCEに戻された対話IDをプログラム変数に保存します。この値は、CICS/ESA APPC verbの特定の対話の識別に使用されます。EXEC CICS CONNECT PROCESSコマンドにより、MIRRDTPSにマップされている公開済のサービスが開始されます。SYNCLEVEL(2)パラメータは、CICS/ESAトランザクションにATMIサービスが含まれていることを示します。EXEC CICS SEND INVITE WAITコマンドにより、クライアントはTuxedoサーバーへの制御をただちに放棄します。これは、TPSVCINFOのサービスに対してTPSENDONLYとして通信されます。このリクエストでサーバーにデータは送信されません。EXEC CICS RECEIVEコマンドにより、tpsend idataバッファ・コンテンツをIN-BUFFERに受信します。EXEC CICS RECEIVEコマンドは、対話が終了する必要があることを示す確認リクエストを受け取ります。EXEC CICS ISSUE CONFIRMATION verbは、確認リクエストに対して応答します。EXEC CICS SYNCPOINTは、対話を終了する明示的なコミット・リクエストであり、トランザクションのすべてのリソースが更新されます。 EXEC CICS FREE verbは、未処理の対話を明示的に解放します。
この項の例では、ATMIプラットフォームとリモートのホスト・アプリケーション・プログラム間のプロトコル交換について示します。ATMIサービス・リクエストのタイプによって、クライアントとサーバーの通信モデルの性質が決まります。ホスト・アプリケーションによって開始されたリクエストの場合、ローカル・サービスの構成情報によって、対話でのプロトコル交換が決定されます。
tpcallはDPL環境に最も適しており、通常DPL環境で使用されますが、APPCサーバーへのリクエストやレスポンスにも使用できます。
この項の例では、CPI-CおよびATMIサービス呼出しを使用するための多くのプログラミング・シナリオのうちのいくつかを示します。これらの例では、最も単純で効率的な方法を使用しています。

toupsrvサービスが呼び出されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpcallが発行されます。tpname TPNCPICによって、リモート・サービスでTOUPCPICプログラムが起動します。 cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。 cmrcvリクエストによりidataバッファ・コンテンツが受信され、処理に渡されます。TOUPCPICプログラムにより、データが処理されます。cmsstリクエストでは、送信タイプをCM_SEND_AND_DEALLOCATEに設定することによって次の送信リクエストが準備されます。cmsendリクエストにより、obufferのコンテンツがクライアントのodataバッファに戻されます。バッファはフラッシュされ、対話が終了します。 
toupsrvサービスが呼び出されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpacallが発行されます。tpname TPNCPICのリモート・サービスにより、TOUPCPICプログラムが起動します。 cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。cmrcvリクエストによりidataバッファ・コンテンツが受信され、処理に渡されます。TOUPCPICプログラムにより、データが処理されます。cmsendコマンドでは、obufferコンテンツをクライアントのtpgetreply odataバッファに戻します。このリクエストでは、データは即時にtpgetreply odataバッファに送信されない場合があります。cmdealはデータをクライアントにフラッシュし、対話が完了したことを示します。 
toupsrvサービスが呼び出されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESで公開されているSIMPCPICに対して、TPNOREPLYリクエストによるtpacallが発行されます。 tpname TPNCPICのリモート・サービスにより、TOUPCPICプログラムが起動します。cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。cmrcvリクエストにより、処理対象のidata バッファ・コンテンツが受信され、対話が終了したことがCM_DEALLOCATED_NORMALの値のリターン・コードで通知されます。TOUPCPICプログラムにより、データが処理されます。 
toupsrvサービスが呼び出されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpconnectが発行されます。TPRECVONLYはサーバーが制御し、toupsrvから発行される最初の対話verbがtprecvであることを示します。データはtpconnectでidataバッファに送信されます。tpname TPNCPICのリモート・サービスにより、TOUPCPICプログラムが起動します。cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。cmrcvリクエストによりidataバッファ・コンテンツが受信され、処理に渡されます。TOUPCPICプログラムにより、データが処理されます。cmsstリクエストでは、送信タイプをCM_SEND_AND_FLUSHに設定することによって次の送信リクエストが準備されます。cmsendコマンドにより、obufferコンテンツがクライアントのtprecv odataバッファに戻されます。データは即時に送信リクエストにフラッシュされます。cmdealリクエストによって対話が終了します。 
toupsrvサービスが呼び出されます。 toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpconnectが発行されます。TPSENDONLYはクライアントが制御を保持し、データ送信を続行することを示します。tpconnectではデータは送信されません。tpname TPNCPICのリモート・サービスにより、TOUPCPICプログラムが起動します。cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。cmrcvリクエストによりtpsend idataバッファ・コンテンツが受信され、処理に渡されます。対話はTPRECVONLYフラグ付きで放棄されます。 TOUPCPICプログラムにより、データが処理されます。 cmsendでは、tprecv idataバッファにレスポンスを戻し、cmdealコマンドで対話の終了が示されます。cmdealではデータ・バッファをフラッシュし、tprecv reeventパラメータがTPEV_SUCCESSに設定されます。 
toupsrvサービスが呼び出されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpconnectが発行されます。TPRECVONLYはサーバーが制御を取得し、toupsrvから発行される最初の対話verbがtprecvであることを示します。 tpname TPNCPICのリモート・サービスにより、TOUPCPICプログラムが起動します。cmaccpリクエストによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。cmrcvリクエストは、制御がサーバーに付与されたことを示すインジケータを受信します。 cmsendリクエストでは、そのobufferコンテンツが最初のクライアントtprecv odataバッファに戻されます。データは即時に送信されません。cmsendリクエストでは、そのobufferコンテンツが2番目のクライアントtprecv odataバッファに戻されます。データは即時に送信されません。cmptrリクエストによりデータがクライアントにフラッシュされ、制御がクライアントに付与されます。cmrcvリクエストによりtpsend idataバッファ・コンテンツが受信され、処理に渡されます。TPRECVONLYはtprecvに渡され、対話の制御は放棄されます。cmdealはtprecvへの対話が正常に終了したことを示します。データは渡されません。
MIRRCPICは、環境の起動指定によって起動されます。MIRRCPICクライアントは、cminitに対して、この対話の他のリクエストすべてで使用される対話属性を構築、および対話IDを受信するようリクエストします。リモート・サーバーおよびサービスは、CPI-C側の情報エントリMIRRSIDEで指定されます。cmallcリクエストにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORSERVにマップされている、公開済のサービスが開始されます。cmsendリクエストでは、obufferのコンテンツがtpsvcinfo->dataバッファのATMIサービスに送信されます。 cmdealリクエストによりデータがフラッシュされ、TPNOREPLYによって対話が終了したことがtpsvcinfo->flagフィールドに示されます。 tpreturnで完了します。 
MIRRCPICクライアントは、cminitに対して、この対話の他のリクエストすべてで使用される対話属性を構築、および対話IDを受信するようリクエストします。リモート・サーバーおよびサービスは、CPI-C側の情報エントリMIRRSIDEで指定されます。cmallcリクエストにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORSERVにマップされている、公開済のサービスが開始されます。cmsstリクエストでは、送信タイプをCM_SEND_AND_PREP_TO_RECEIVEに設定することによって次の送信リクエストが準備されます。 cmsendリクエストにより、obufferのコンテンツがtpsvcinfo->dataバッファのATMIサービスに即時送信され、制御がmirrorservサービスに放棄されます。 cmrcvリクエストでは、ATMI tpreturnサービスによって戻されるodataのコンテンツ、およびリターン・コード値CM_DEALLOCATED_NORMALで対話が終了したという通知を受信します。 
MIRRCPICクライアントは、cminitに対して、この対話の他のリクエストすべてで使用される対話属性を構築、および対話IDを受信するようリクエストします。リモート・サーバーおよびサービスは、CPI-C側の情報エントリMIRRSIDEで指定されます。cmallcリクエストにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORSERVにマップされている、公開済のサービスが開始されます。cmsendリクエストにより、obufferのコンテンツがtpsvcinfo->dataバッファのATMIサービスに送信されます。 cmdealリクエストによりデータがフラッシュされ、TPNOREPLYによって対話が終了したことがtpsvcinfo->flagフィールドに示されます。 
MIRRCPICは、環境の起動指定によって起動されます。MIRRCPICクライアントは、cminitに対して、この対話の他のリクエストすべてで使用される対話属性を構築、および対話IDを受信するようリクエストします。リモート・サーバーおよびサービスは、CPI-C側の情報エントリMIRRSIDEで指定されます。cmallcリクエストにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORにマップされている、公開済のサービスが開始されます。cmptrはtpsvcinfo->flagフィールドのTPSENDONLYに示すように、ATMIサービスに対する対話の制御を放棄します。データはtpsvcinfo->dataフィールドに渡されません。cmrcvでは、ibufferへのtpsend odataのコンテンツを受信します。対話の終わりはtpreturnサービスからリターン・コード値CM_DEALLOCATED_NORMALで渡されます。
toupsrvサービスが呼び出されます。toupsrvサービスにより、トランザクションを開始するtpbeginが発行されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpcallが発行されます。データはtpconnectのidataバッファから送信されます。tpname TPNCPICのリモート・サービスにより、TOUPCPICプログラムが起動します。cmaccp呼出しによる対話を受け入れます。convidのリクエストで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。cmrcvリクエストによりidataバッファ・コンテンツが受信され、処理に渡されます。cmsstおよびcmsptrでは、送信タイプをCM_SEND_AND_PREP_TO_RECEIVEに設定し、受信準備タイプをCM_PREP_TO_RECEIVE_CONFIRMに設定して次の送信リクエストを準備します。cmsendリクエストでは、obufferのコンテンツがtpsvcinfo->dataバッファに即時に戻されます。サーバーでは、サーバーに対する制御が放棄され、CONFIRMリクエストで対話の終了が示されます。toupsrvによってtpcommitが発行され、トランザクションが正常に終了し、すべての更新済リソースがコミットされます。cmrcvリクエストでは、コミット・リクエストを受信し、そのリクエストにSAAリソース/リカバリ・コミット呼出しsrrcmitによるリクエストに明示的に応答します。対話はコミット交換が完了すると終了します。
toupsrvサービスが呼び出されます。toupsrvサービスにより、トランザクションを開始するtpbeginが発行されます。toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpcallサービス・リクエストが発行されます。データはtpconnectのidataバッファから送信されます。tpname TPNCPICのリモート・サービスにより、TOUPCPICプログラムが起動します。cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。cmrcvリクエストは、tpconnectで送信された処理対象のidataバッファ・コンテンツを受信します。TOUPCPICプログラムでデータが処理されます。cmsendでは、そのobufferコンテンツがクライアントのtprecv odataバッファに戻されます。データは即時送信されません。cmsptrでは、CM_PREP_TO_RECEIVE_CONFIRMにより、受信準備リクエストが用意されます。cmptrリクエストのCONFIRMは、対話が完了したことを示し、tprecvに対してTPEV_SVCSUCCを通信します。 toupsrvによってtpcommitが発行され、トランザクションが正常に終了し、すべての更新済リソースがコミットされます。cmrcvリクエストでは、コミット・リクエストを受信し、そのリクエストにSAAリソース/リカバリ・コミット呼出しsrrcmitによるリクエストに明示的に応答します。対話はコミット交換が完了すると終了します。
MIRRCPICは、環境の起動指定によって起動されます。MIRRCPICクライアントは、cminitに対して、この対話の他のリクエストすべてで使用される対話属性を構築、および対話IDを受信するようリクエストします。リモート・サーバーおよびサービスは、CPI-C側の情報エントリMIRRSIDEで指定されます。cmsslでは対話属性がCM_SYNCPOINTで同期レベル2に設定されます。これにより、ATMIサービスがトランザクションに参加します。cmallcリクエストにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORSERVにマップされている、公開済のサービスが開始されます。cmsptrによって受信準備タイプがCM_RECEIVE_AND_FLUSHに設定されます。cmptrリクエストは制御を即時に放棄します。MIRRORサービスでは、odataバッファのデータ・コンテンツをcmrcv ibufferに送信します。cmrcvは、対話終了を示す確認リクエストをサーバーから受信します。 cmcfmdで応答します。MIRRCPICクライアントでは、cmdealリクエストで対話の解放が準備されます。CM_DEALLOCATE_SYNC_LEVELの対話では、トランザクション内のすべての更新済リソースがコミットされ、SAAリソース・リカバリverb srrcmitを待機します。対話はcommitシーケンスの完了後に終了します。

次のリストでは、図2-1に示す暗黙的な添付の処理について説明します。
DMCONFIGファイルでリモート・サービスとして公開されているサービスTRN1DATAに対してリクエストします。これはCICS/ESAリージョンのSVC1というプログラムに対するDPLリクエストです。TRN1)が抽出され、TRANSIDの起動時にCICS/ESAリージョンに渡されます。このリージョンでは、TRANSIDに対するCICS/ESAリソース定義は必要ありません。DFHMIRSが開始されます。このプログラムでは、サービスに対してDTPリクエストが実行されます。TRANSID(TRN1)が添付され、アプリケーション・サービス・プログラムSVC1が起動されます。プログラムはEIBTRNIDフィールドに問い合せ、この値を検索します。 
次のリストでは、図2-2に示す明示的な添付の処理について説明します。
DMCONFIGファイルでリモート・サービスとして公開されているSERVICE1に対してサービスをリクエストします。FUNCTIONオプションは、リモート・サービスがDPLとして起動されていることを示します。TRN1がリモート・リージョンの代替ミラー・トランザクションIDとして、リモート・プログラム名SERVICE1とともに抽出されます。TRN1 IDはデフォルトのミラー・トランザクションCSMIまたはCVMIのかわりに添付されます。TRN1 IDはリモート・リージョンのトランザクション・リソースとして定義され、ミラー・トランザクション・プログラムDFHMIRSを指している必要があります。DFMMIRSにより、サーバー・アプリケーション・プログラムが呼び出され、EIBTRNIDフィールドのTRN1 IDが渡されます。
次のリストでは、図2-3に示す暗黙的な添付の処理について説明します。
CICS/ESAのシステム間通信の詳細は、次のIBMのドキュメントを参照してください。
|