この項では、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のドキュメントを参照してください。