目次 前 次 PDF


アプリケーション間のプログラミング例

アプリケーション間のプログラミング例
この項では、Oracle Tuxedo Mainframe Adapter for SNAでサポートされているプログラミング環境での次のトランザクション・シナリオを示します。
注意:
各例では、シナリオをグラフィカルに図示し、その後にシナリオの各ステップについて説明しています。
分散プログラム・リンク(DPL)の例
この項の例では、DPLおよびATMIサービス呼出しを使用するための多くのプログラミング・シナリオのうちのいくつかを示します。これらの例では、最も自然で効率的なアプローチを使用しています。
CICS/ESA DPLに対するATMIクライアント・リクエスト/レスポンス
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDPLに対して、tpcallが発行されます。
3.
ホスト・ミラー・トランザクションにより、TOUPDPLSプログラムが開始され、idataバッファ・コンテンツが処理に渡されます。
4.
TOUPDPLSプログラムによりデータが処理されます。
5.
CICS/ESAサーバーにより、commareaがクライアントのodataバッファに戻されます。
CICS/ESA DPLに対するATMIクライアント非同期リクエスト/レスポンス
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDPLに対して、tpacallが発行されます。
3.
ホスト・ミラー・トランザクションにより、TOUPDPLSプログラムが開始され、idataバッファ・コンテンツが処理に渡されます。
4.
TOUPDPLSプログラムによりデータが処理されます。
5.
CICS/ESAシステムにより、commareaがクライアントのtpgetreply odataバッファに戻されます。
CICS/ESA DPLに対するATMIクライアント非同期リクエスト/レスポンス(応答なし)
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDPLに対して、tpacallが発行されます。toupsrvサービスはTPNOREPLYを使用して、応答が想定されていないことを指定します。
3.
ホスト・ミラー・トランザクションにより、TOUPDPLSプログラムが開始され、idataバッファ・コンテンツが処理に渡されます。
4.
TOUPDPLSプログラムによりデータが処理されます。
CICS/ESA DPLからATMIリクエスト/レスポンス・サーバー
1.
ユーザーが入力したHOPLにより、MIRRDPLCプログラムが起動します。
2.
EXEC CICS LINKコマンドにより、(DMCONFIGファイルのDM_LOCAL_SERVICESセクションの) MIRRDPLSにマップされている公開済のサービスが実行されます。
3.
MIRRORサービスにより、EXEC CICS LINKからサービスのTPSVCINFOデータ・バッファに受信されたデータが処理されます。
4.
tpreturn呼出しにより、データがCOMM-AREAバッファに戻されます。
CICS/ESA DPLからATMIリクエスト/レスポンス・サーバー、自律型トランザクションのサービス
1.
ユーザーが入力したH0PLにより、MIRRDPLCプログラムが起動します。
2.
EXEC CICS LINKコマンドにより、(DMCONFIGファイルのDM_LOCAL_SERVICESセクションの) MIRRDPLSにマップされている公開済のサービスが実行されます。SYNCONRETURNオプションは、起動したサービスがCICS/ESAトランザクションに含まれないことを示します。
3.
MIRRORサービス・リクエストtpbeginにより、それ以降のすべての操作が1つのトランザクションに含められます。
4.
MIRRORサービスによりデータが処理されます。
5.
tpcommitはトランザクションの終了を示します。サービス・トランザクション内で実行されたすべての更新はコミットされます。
6.
tpreturn呼出しにより、データがcommareaバッファに戻されます。
7.
EXEC CICS SYNCPOINTは明示的なコミット・リクエストです。CICS/ESAトランザクション内の更新されたすべてのリソースはコミットされます。
CICS/ESA DPLに対するATMIクライアント・リクエスト/レスポンス、自律型トランザクション
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、トランザクションを開始するtpbeginが発行されます。
3.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDPLに対して、tpcallが発行されます。TPNOTRANパラメータは、CICS/ESAアプリケーションがサービス・トランザクションに含まれないことを示します。
4.
ホスト・ミラー・トランザクションにより、TOUPDPLSプログラムが開始され、idataバッファ・コンテンツが処理に渡されます。
5.
TOUPDPLSプログラムによりデータが処理されます。
6.
EXEC CICS SYNCPOINTは明示的なコミット・リクエストです。CICS/ESAトランザクション内の更新されたすべてのリソースはコミットされます。
7.
CICS/ESAサーバーにより、commareaがクライアントのodataバッファに戻されます。
8.
toupsrvサービスのtpcommitリクエストは、それ自体の更新済リソースのコミットの原因となったトランザクションの完了を通知します。
トランザクションATMIクライアントによるCICS/ESA DPLへの複数のリクエスト/レスポンス
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、トランザクションを開始するtpbeginが発行されます。
3.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDPLに対して、tpcallが発行されます。tpcallは同一トランザクション内で複数回リクエストされます。
4.
ホスト・ミラー・トランザクションにより、TOUPDPLSプログラムが開始され、idataバッファ・コンテンツが処理に渡されます。ホスト・ミラー・トランザクションはそれ以降のすべてのリクエストを提供する長時間のタスクとしてトランザクションに残されます。
5.
TOUPDPLSプログラムによりデータが処理されます。
6.
CICS/ESAシステムにより、commareaがクライアントのodataバッファに戻されます。
7.
toupsrvサービスのループ終了条件が満たされるまで、ステップ3~6が繰り返されます。
8.
tpcommitリクエストにより、トランザクションが正常に終了したことが示され、それによって自身のリソースがコミットされて、リソースはホスト・ミラー・トランザクションによって保持されます。
トランザクションCICS/ESA DPLからATMIリクエスト/レスポンス・サーバー
1.
ユーザーが入力したH2PLにより、MIRRDPLCプログラムが起動します。
2.
EXEC CICS LINKコマンドにより、(DMCONFIGファイルのDM_LOCAL_SERVICESセクションの) MIRRDPLSにマップされている公開済のサービスが実行されます。起動したサービスはCICS/ESAトランザクションに含まれます。
3.
MIRRORサービスによりデータが処理されます。
4.
tpreturn呼出しにより、データがcommareaバッファに戻されます。
5.
EXEC CICS SYNCPOINTは、対話が正常に終了したことを示す明示的なコミット・リクエストです。トランザクション内のすべての更新済リソースがコミットされます。
チャネル/コンテナのCICS/ESA DPLからATMIリクエスト/レスポンス・サーバー
1.
ユーザーが入力したKNC1により、CHANCONCプログラムが起動します。
2.
3.
EXEC CICS LINKコマンドにより、CHANCONSにマップされている公開済のサービスが実行されます。
4.
CHAN1サービスは、チャネルからすべてのコンテナを取得し、それらのデータを処理してチャネルに戻します。
5.
tpreturn呼出しにより、データがcommareaバッファに戻されます。
6.
CHANCONCは、チャネルおよびCICS RETRUNからすべてのコンテナを取得します。
分散トランザクション処理(DTP)の例
次の例は、DTPおよびATMIサービス呼出しを使用するためのプログラミング・シナリオを示しています。
tpcallはDPL環境に最も適しており、通常DPL環境で使用されますが、DTPサーバーへのリクエストやレスポンスにも使用できます。
この項の例では、DTPおよびATMIサービス呼出しを使用するためのプログラミング・シナリオのうちのいくつかを示します。これらの例では、最も自然で効率的なアプローチを使用しています。
CICS/ESA DTPに対するATMIクライアント・リクエスト/レスポンス
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpcallが発行されます。
3.
ユーザー・トランザクションDTPSにより、TOUPDTPSプログラムが起動されます。
4.
eibtrmidをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。
5.
EXEC CICS RECEIVEコマンドにより、idataバッファ・コンテンツが受信され、処理に渡されます。
6.
TOUPDTPSプログラムにより、データが処理されます。
7.
EXEC CICS SENDコマンドにより、OUT-BUFFERコンテンツがクライアントのodataバッファに戻されます。LASTは対話が完了したことを示します。WAITはデータ受信が完了するまで処理を一時停止します。
CICS/ESA DPLに対するATMIクライアント非同期リクエスト/レスポンス
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpacallが発行されます。
3.
ユーザー・トランザクションDTPSにより、TOUPDTPSプログラムが起動されます。
4.
EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。
5.
EXEC CICS RECEIVEコマンドにより、idataバッファ・コンテンツが受信され、処理に渡されます。
6.
TOUPDTPSプログラムにより、データが処理されます。
7.
EXEC CICS SENDコマンドにより、OUT-BUFFERコンテンツがクライアントのtpgetreply odataバッファに戻されます。LASTは対話が正常に終了したことを示します。WAITはデータ受信が完了するまで処理を一時停止します。
CICS/ESA DTPに対するATMIクライアント非同期リクエスト/レスポンス(応答なし)
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpacallTPNOREPLYリクエストとともに発行されます。
3.
ユーザー・トランザクションDTPSにより、TOUPDTPSプログラムが起動されます。
4.
EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。
5.
EXEC CICS RECEIVEコマンドにより、idataバッファ・コンテンツが受信され、処理に渡されます。
6.
TOUPDTPSプログラムにより、データが処理されます。
ATMI対話型クライアントからCICS/ESA DTP、サーバーによる制御の取得
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpconnectが発行されます。TPRECVONLYフラグはサーバーが制御し、toupsrvが発行する最初の対話verbがtprecvであることを示します。データはtpconnectidataバッファに送信されます。
3.
ユーザー・トランザクションDTPSにより、TOUPDTPSプログラムが起動されます。
4.
EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。
5.
EXEC CICS RECEIVEコマンドにより、idataバッファ・コンテンツが受信され、処理に渡されます。
6.
TOUPDTPSプログラムにより、データが処理されます。
7.
EXEC CICS SENDコマンドにより、OUT-BUFFERコンテンツがクライアントのtprecv odataバッファに戻されます。WAITはデータ受信が完了するまでTOUPDTPS での処理を一時停止します。LASTは対話が完了し、tprecvに対してTPEV_SVCSUCCとして通信したことを示します。
ATMI対話型クライアントからCICS/ESA DTP、クライアントによるデータの送信/受信
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpconnectが発行されます。TPSENDONLYはクライアントがそのまま制御し、データ送信を続行することを示します。データはtpconnectidataバッファに送信されます。
3.
ユーザー・トランザクションDTPSにより、TOUPDTPSプログラムが起動されます。
4.
EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。
5.
EXEC CICS RECEIVEコマンドによりtpconnect idataバッファ・コンテンツが受信され、処理に渡されます。
6.
TOUPDTPSプログラムにより、データが処理されます。
7.
EXEC CICS RECEIVEコマンドは、tpsend idataコンテンツをサーバーのIN-BUFFERに受信します。
8.
9.
EXEC CICS SEND WAIT LASTコマンドにより、対話が完了したことを示す通知とともに、OUT-BUFFERデータがtprecv odataバッファに戻されます。
ATMI対話型クライアントからCICS/ESA DTP、クライアントによる制御の付与
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpconnectが発行されます。TPRECVONLYはサーバーが制御し、toupsrvが発行する最初の対話verbがtprecvであることを示します。
3.
ユーザー・トランザクションDTPSにより、TOUPDTPSプログラムが起動されます。
4.
EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。
5.
EXEC CICS RECEIVEコマンドでは、tpconnect TPRECVONLYフラグからのsend stateインジケータを受信します。INBUFFERではデータを受信しません。
6.
EXEC CICS SENDコマンドにより、OUT-BUFFERコンテンツがクライアントのtprecv odataバッファに戻されます。EXEC CICS SENDコマンドは、INVITEオプションを使用してクライアントへの制御を放棄します。これはtprecvに対してTPEV_SENDONLYとして通信されます。
7.
EXEC CICS RECEIVEコマンドでは、サーバーが制御を放棄したことを示す通知とともに、tpsend idataコンテンツをサーバーのIN-BUFFERに受信します。
8.
EXEC CICS RETURNは、TPEV_SVCSUCCとしてtprecvと通信している対話を終了します。
CICS/ESA DTPからATMI対話型サーバー、クライアントによる制御の保持
1.
ユーザーが入力したH0TPにより、MIRRDTPCプログラムが起動します。
2.
EXEC CICS ALLOCATEにより、リモートのTuxedoドメインに対するセッションが取得されます。
3.
EIBRSRCEに戻された対話IDをプログラム変数に保存します。この値は、CICS/ESA APPC verbの特定の対話の識別に使用されます。
4.
EXEC CICS CONNECT PROCESSコマンドにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORにマップされている公開済のサービスが開始されます。
5.
EXEC CICS SENDコマンドを実行して、OUT-BUFFERのコンテンツを、tpsvcinfo->dataバッファのTuxedoサービスに送信します。コンテンツは即時に送信される可能性があります。
6.
EXEC CICS SEND INVITE WAITコマンドでは、out-buffのコンテンツをtprecv odataバッファに送信します。INVITEパラメータにより対話の制御は放棄され、tprecvコマンドのreeventパラメータではTPEV_SENDONLYとして示されます。データは、前回のSEND操作のデータとともにただちに送信されます。
7.
8.
9.
ATMI tpreturnデータにより、対話が完了したことを示す通知とともにデータがEXEC CICS RECEIVEに戻されます。
CICS/ESA DTPからATMI対話型サーバー、クライアントによる制御の放棄
1.
ユーザーが入力したHOTPにより、MIRRDTPCプログラムが起動します。
2.
EXEC CICS ALLOCATEにより、リモートのTuxedoドメインに対するセッションが取得されます。
3.
EIBRSRCEに戻された対話IDをプログラム変数に保存します。この値は、CICS/ESA APPC verbの特定の対話の識別に使用されます。
4.
EXEC CICS CONNECT PROCESSコマンドにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORにマップされている公開済のサービスが開始されます。
5.
EXEC CICS SENDコマンドにより、INVITE WAITオプションの制御が放棄されます。
6.
EXEC CICS RECEIVEコマンドにより、tpsend idataバッファ・コンテンツをIN-BUFFERに受信します。
7.
tpreturnリクエストにより、対話が切断され、EXEC CICS RECEIVEで対話が終了したことが示されます。
CICS/ESA DTPに対するトランザクションATMIクライアント・リクエスト/レスポンス
注意:
1.
ATMIクライアントtoupcltにより、toupsrvサービスが呼び出されます。(プログラムで実行される各tpcallは、tpbegintpcommitで挟まれる必要があります。)
2.
3.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpcallが発行されます。
4.
ユーザー・トランザクションDTPSにより、TOUPDTPSプログラムが起動されます。
5.
EIBTRMIDをプログラム変数に保存します。この値は、CICS/ESA APPC verbの特定の対話の識別に使用されます。
6.
EXEC CICS RECEIVEコマンドにより、idataバッファ・コンテンツが受信され、処理に渡されます。
7.
TOUPDTPSプログラムにより、データが処理されます。
8.
EXEC CICS SENDコマンドにより、OUT-BUFFERコンテンツがクライアントのodataバッファに戻されます。CONFIRMは対話が終了したことを示します。INVITEではクライアントがCOMMITリクエストで応答できます。
9.
toupsrvサービスにより、トランザクションを終了するtpcommitが発行されます。EXEC CICS RECEIVE verbでCOMMITが受け取られ、サーバーにより、リソースのコミット、トランザクションの終了、未処理の対話の解放を行うためのEXEC CICS RETURNが発行されます。
トランザクションATMI対話型クライアントからCICS/ESA DTP、サーバーによる制御の取得
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、トランザクションを開始するtpbeginが発行されます。
3.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPDTPに対して、tpconnectが発行されます。TPRECVONLYはサーバーが制御し、toupsrvから発行される最初の対話verbがtprecvであることを示します。データはtpconnectidataバッファに送信されます。
4.
ユーザー・トランザクションDTPSにより、TOUPDTPSプログラムが起動されます。
5.
EIBTRMIDをプログラム変数に保存することをお薦めします。この値は、CICS/ESA APPC verbでの特定の対話の識別に使用される場合があります。
6.
EXEC CICS RECEIVEコマンドにより、idataバッファ・コンテンツが受信され、処理に渡されます。
7.
TOUPDTPSプログラムにより、データが処理されます。
8.
EXEC CICS SENDコマンドにより、OUT-BUFFERコンテンツがクライアントのtprecv odataバッファに戻されます。CONFIRMは対話が終了し、TPEV_SVCSUCCとしてtprecvと通信したことを示します。INVITEにより、クライアントはCOMMITリクエストで応答できます。
9.
toupsrvサービスにより、トランザクションを終了するtpcommitが発行されます。EXEC CICS RECEIVE verbでCOMMITが受け取られ、サーバーにより、リソースのコミット、トランザクションの終了、未処理の対話の解放を行うためのEXEC CICS RETURNが発行されます。
トランザクションCICS/ESA DTPからATMI対話型サーバー、ホスト・クライアントによる制御の放棄
1.
ユーザーが入力したH2TPにより、MIRRDTPCプログラムが起動します。
2.
EXEC CICS ALLOCATEにより、リモートのTuxedoドメインに対するセッションが取得されます。
3.
EIBRSRCEに戻された対話IDをプログラム変数に保存します。この値は、CICS/ESA APPC verbの特定の対話の識別に使用されます。
4.
EXEC CICS CONNECT PROCESSコマンドにより、MIRRDTPSにマップされている公開済のサービスが開始されます。SYNCLEVEL(2)パラメータは、CICS/ESAトランザクションにATMIサービスが含まれていることを示します。
5.
EXEC CICS SEND INVITE WAITコマンドにより、クライアントはTuxedoサーバーへの制御をただちに放棄します。これは、TPSVCINFOのサービスに対してTPSENDONLYとして通信されます。このリクエストでサーバーにデータは送信されません。
6.
EXEC CICS RECEIVEコマンドにより、tpsend idataバッファ・コンテンツをIN-BUFFERに受信します。EXEC CICS RECEIVEコマンドは、対話が終了する必要があることを示す確認リクエストを受け取ります。
7.
EXEC CICS ISSUE CONFIRMATION verbは、確認リクエストに対して応答します。
8.
EXEC CICS SYNCPOINTは、対話を終了する明示的なコミット・リクエストであり、トランザクションのすべてのリソースが更新されます。
9.
EXEC CICS FREE verbは、未処理の対話を明示的に解放します。
CPI-Cプログラミングの例
この項の例では、ローカルATMIプラットフォームとリモート・ホスト・アプリケーション・プログラム間のプロトコル交換を示しています。ATMIサービス・リクエストのタイプによって、クライアント/サーバー通信モデルの性質が決まります。リクエストがホスト・アプリケーションによって開始される場合、ローカル・サービスの構成情報によって、対話でのプロトコル交換が決まります。
tpcallはDPL環境に最も適しており、通常DPL環境で使用されますが、APPCサーバーへのリクエストやレスポンスにも使用できます。
この項の例では、CPI-CおよびATMIサービス呼出しを使用するための多くのプログラミング・シナリオのうちのいくつかを示します。これらの例では、最も自然で効率的なアプローチを使用しています。
ホストCPI-Cに対するATMIクライアント・リクエスト/レスポンス
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpcallが発行されます。
3.
tpname TPNCPICによって、リモート・サービスでTOUPCPICプログラムが起動します。
4.
サーバーは、cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。
5.
cmrcvリクエストにより、idataバッファ・コンテンツが受信され、処理に渡されます
6.
TOUPCPICプログラムにより、データが処理されます。
7.
cmsstリクエストでは、送信タイプをCM_SEND_AND_DEALLOCATEに設定することによって次の送信リクエストが準備されます。
8.
cmsendリクエストにより、obufferのコンテンツがクライアントのodataバッファに戻されます。バッファはフラッシュされ、対話が終了します。
ホストCPI-Cに対するATMIクライアント非同期リクエスト/レスポンス
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpacallが発行されます。
3.
tpname TPNCPICによって、リモート・サービスでTOUPCPICプログラムが起動します。
4.
サーバーは、cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。
5.
cmrcvリクエストにより、idataバッファ・コンテンツが受信され、処理に渡されます。
6.
TOUPCPICプログラムにより、データが処理されます。
7.
cmsendコマンドでは、obufferコンテンツをクライアントのtpgetreply odataバッファに戻します。このリクエストでは、データは即時にtpgetreply odataバッファに送信されない場合があります。
8.
cmdealは、データをクライアントにフラッシュし、対話が完了したことを示します。
ホストCPI-Cに対するATMIクライアント非同期リクエスト/レスポンス(応答なし)
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESで公開されているSIMPCPICに対して、TPNOREPLYリクエストによるtpacallが発行されます。
3.
tpname TPNCPICによって、リモート・サービスでTOUPCPICプログラムが起動します。
4.
サーバーは、cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。
5.
cmrcvリクエストにより、処理対象のidataバッファ・コンテンツが受信され、対話が終了したことがCM_DEALLOCATED_NORMALの値のリターン・コードで通知されます。
6.
TOUPCPICプログラムにより、データが処理されます。
ATMI対話型クライアントからホストCPI-C、サーバーによる制御の取得
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpconnectが発行されます。TPRECVONLYはサーバーが制御し、toupsrvから発行される最初の対話verbがtprecvであることを示します。データはtpconnectidataバッファに送信されます。
3.
tpname TPNCPICによって、リモート・サービスでTOUPCPICプログラムが起動します。
4.
サーバーは、cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。
5.
cmrcvリクエストにより、idataバッファ・コンテンツが受信され、処理に渡されます。
6.
TOUPCPICプログラムにより、データが処理されます。
7.
cmsstリクエストでは、送信タイプをCM_SEND_AND_FLUSHに設定することによって次の送信リクエストが準備されます。
8.
cmsendコマンドにより、obufferコンテンツがクライアントのtprecv odataバッファに戻されます。データは即時に送信リクエストにフラッシュされます。
9.
cmdealリクエストによって対話が終了します。
ATMI対話型クライアントからホストCPI-C、クライアントによる制御の保持
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpconnectが発行されます。TPSENDONLYはクライアントが制御を保持し、データ送信を続行することを示します。tpconnectではデータは送信されません。
3.
tpname TPNCPICによって、リモート・サービスでTOUPCPICプログラムが起動します。
4.
サーバーは、cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。
5.
cmrcvリクエストにより、tpsend idataバッファ・コンテンツが受信され、処理に渡されます。対話はTPRECVONLYフラグ付きで放棄されます。
6.
TOUPCPICプログラムにより、データが処理されます。
7.
cmsendでは、tprecv idataバッファにレスポンスを戻し、cmdealコマンドで対話の終了が示されます。cmdealではデータ・バッファをフラッシュし、tprecv reeventパラメータがTPEV_SUCCESSに設定されます。
ATMI対話型クライアントからホストCPI-C、クライアントによる制御の付与/取得
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpconnectが発行されます。TPRECVONLYはサーバーが制御を取得し、toupsrvから発行される最初の対話verbがtprecvであることを示します。
3.
tpname TPNCPICによって、リモート・サービスでTOUPCPICプログラムが起動します。
4.
サーバーは、cmaccpリクエストによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。
5.
cmrcvリクエストは、制御がサーバーに付与されたことを示すインジケータを受信します。
6.
cmsendリクエストでは、そのobufferコンテンツが最初のクライアントtprecv odataバッファに戻されます。データは即時に送信されません。
7.
cmsendリクエストでは、そのobufferコンテンツが2番目のクライアントtprecv odataバッファに戻されます。データは即時に送信されません。
8.
cmptrリクエストにより、データがクライアントにフラッシュされ、制御がクライアントに付与されます。
9.
cmrcvリクエストにより、tpsend idataバッファ・コンテンツが受信され、処理に渡されます。TPRECVONLYtprecvに渡され、対話の制御は放棄されます。
10.
cmdealは、tprecvへの対話が正常に終了したことを示します。データは渡されません。
ホストCPI-CからATMI非同期リクエスト/レスポンス・サーバー(応答なし)
1.
CPI-Cアプリケーション・プログラムMIRRCPICは、環境の起動指定によって起動されます。
2.
MIRRCPICクライアントは、cminitに対して、この対話の他のリクエストすべてで使用される対話属性を構築、および対話IDを受信するようリクエストします。リモート・サーバーおよびサービスは、CPI-C側の情報エントリMIRRSIDEで指定されます。
3.
cmallcリクエストにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORSERVにマップされている、公開済のサービスが開始されます。
4.
cmsendリクエストでは、obufferのコンテンツがtpsvcinfo->dataバッファのATMIサービスに送信されます。
5.
cmdealリクエストにより、データがフラッシュされ、TPNOREPLYによって対話が終了したことがtpsvcinfo->flagフィールドに示されます。
6.
サービスはtpreturnで完了します。
ホストCPI-CからATMIサーバーへのリクエスト/レスポンス
1.
2.
MIRRCPICクライアントは、cminitに対して、この対話の他のリクエストすべてで使用される対話属性を構築、および対話idを受信するようリクエストします。リモート・サーバーおよびサービスは、CPI-C側の情報エントリMIRRSIDEで指定されます。
3.
cmallcリクエストにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORSERVにマップされている、公開済のサービスが開始されます。
4.
tpreturnリクエストでは、送信タイプをCM_SEND_AND_PREP_TO_RECEIVEに設定することによって次の送信リクエストが準備されます。
5.
cmsendリクエストにより、obufferのコンテンツがtpsvcinfo->dataバッファのATMIサービスに即時送信され、制御がmirrorservサービスに放棄されます。
6.
cmrcvリクエストでは、ATMI tpreturnサービスによって戻されるodataのコンテンツ、およびリターン・コード値CM_DEALLOCATED_NORMALで対話が終了したという通知を受信します。
ホストCPI-CからATMI対話型サービス、クライアントによる制御の保持
1.
2.
MIRRCPICクライアントは、cminitに対して、この対話の他のリクエストすべてで使用される対話属性を構築、および対話idを受信するようリクエストします。リモート・サーバーおよびサービスは、CPI-C側の情報エントリMIRRSIDEで指定されます。
3.
cmallcリクエストにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORSERVにマップされている、公開済のサービスが開始されます。
4.
cmsendリクエストでは、obufferのコンテンツがtpsvcinfo->dataバッファのATMIサービスに送信されます。
5.
cmdealリクエストにより、データがフラッシュされ、TPNOREPLYによって対話が終了したことがtpsvcinfo->flagフィールドに示されます。
ホストCPI-C ATMIから対話型サービス、クライアントによる制御の付与
1.
CPI-Cアプリケーション・プログラムMIRRCPICは、環境の起動指定によって起動されます。
2.
MIRRCPICクライアントは、cminitに対して、この対話の他のリクエストすべてで使用される対話属性を構築、および対話IDを受信するようリクエストします。リモート・サーバーおよびサービスは、CPI-C側の情報エントリMIRRSIDEで指定されます。
3.
cmallcリクエストにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORにマップされている、公開済のサービスが開始されます。
4.
cmptrは、tpsvcinfo->flagフィールドのTPSENDONLYに示すように、ATMIサービスに対する対話の制御を放棄します。データはtpsvcinfo->dataフィールドに渡されません。
5.
cmrcvでは、ibufferへのtpsend odataのコンテンツを受信します。対話の終わりはtpreturnサービスからリターン・コード値CM_DEALLOCATED_NORMALで渡されます。
ホストCPI-Cに対するトランザクションATMIクライアント・リクエスト/レスポンス
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、トランザクションを開始するtpbeginが発行されます。
3.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpcallが発行されます。データはtpconnectidataバッファから送信されます。
4.
tpname TPNCPICによって、リモート・サービスでTOUPCPICプログラムが起動します。
5.
サーバーは、cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。
6.
cmrcvリクエストにより、idataバッファ・コンテンツが受信され、処理に渡されます。
7.
cmsstおよびcmsptrでは、送信タイプをCM_SEND_AND_PREP_TO_RECEIVEに設定し、受信準備タイプをCM_PREP_TO_RECEIVE_CONFIRMに設定して次の送信リクエストを準備します。
8.
cmsendリクエストでは、obufferのコンテンツがodataバッファに即時に戻されます。サーバーでは、サーバーに対する制御が放棄され、CONFIRMリクエストで対話の終了が示されます。
9.
toupsrvにより、tpcommitが発行され、トランザクションが正常に終了し、すべての更新済リソースがコミットされます。cmrcvリクエストでは、コミット・リクエストを受信し、そのリクエストにSAAリソース/リカバリ・コミット呼出しsrrcmitによるリクエストに明示的に応答します。対話はコミット交換が完了すると終了します。
トランザクションATMI対話型クライアントからホストCPI-C、サーバーによる制御の取得
1.
ATMIクライアントにより、toupsrvサービスが呼び出されます。
2.
toupsrvサービスにより、トランザクションを開始するtpbeginが発行されます。
3.
toupsrvサービスにより、DMCONFIGファイルのDM_REMOTE_SERVICESセクションで公開されているSIMPCPICに対して、tpconnectサービス・リクエストが発行されます。データはtpconnectidataバッファから送信されます。
4.
tpname TPNCPICによって、リモート・サービスでTOUPCPICプログラムが起動します。
5.
サーバーは、cmaccp呼出しによる対話を受け入れます。リクエストのconvidで戻される対話IDが、この対話のその他すべてのリクエストに使用されます。
6.
cmrcvリクエストは、tpconnectで送信された処理対象のidataバッファ・コンテンツを受信します。
7.
TOUPCPICプログラムにより、データが処理されます。
8.
cmsendでは、そのobufferコンテンツがクライアントのtprecv odataバッファに戻されます。データは即時送信されません。
9.
cmsptrでは、CM_PREP_TO_RECEIVE_CONFIRMにより、受信準備リクエストが用意されます。cmptrリクエストのCONFIRMは、対話が完了したことを示し、tprecvに対してTPEV_SVCSUCCを通信します。
10.
toupsrvにより、tpcommitが発行され、トランザクションが正常に終了し、すべての更新済リソースがコミットされます。cmrcvリクエストでは、コミット・リクエストを受信し、そのリクエストにSAAリソース/リカバリ・コミット呼出しsrrcmitによるリクエストに明示的に応答します。対話はコミット交換が完了すると終了します。
トランザクション・ホストCPI-CからATMI対話型サーバー、クライアントによる制御の付与
1.
CPI-Cアプリケーション・プログラムMIRRCPICは、環境の起動指定によって起動されます。
2.
MIRRCPICクライアントは、cminitに対して、この対話の他のリクエストすべてで使用される対話属性を構築、および対話IDを受信するようリクエストします。リモート・サーバーおよびサービスは、CPI-C側の情報エントリMIRRSIDEで指定されます。
3.
cmsslでは、対話属性がCM_SYNCPOINTで同期レベル2に設定されます。これにより、ATMIサービスがトランザクションに参加します。
4.
cmallcリクエストにより、DMCONFIGファイルのDM_LOCAL_SERVICESセクションでMIRRORSERVにマップされている、公開済のサービスが開始されます。
5.
MIRRCPICにより、クライアントが受信準備リクエストによってATMIサーバーへ制御を放棄します。cmsptrは、受信準備タイプをCM_RECEIVE_AND_FLUSHに設定します。cmptrリクエストは制御を即時に放棄します。
6.
MIRRORサービスでは、odataバッファのデータ・コンテンツをcmrcv ibufferに送信します。cmrcvは、対話終了を示す確認リクエストをサーバーから受信します。
7.
8.
MIRRCPICクライアントでは、cmdealリクエストで対話の解放が準備されます。CM_DEALLOCATE_SYNC_LEVELの対話では、トランザクション内のすべての更新済リソースがコミットされ、SAAリソース・リカバリverb srrcmitを待機します。対話はcommitシーケンスの完了後に終了します。
CICS/ESAミラー・トランザクションの例
TRANSIDの暗黙的添付(アウトバウンド・リクエストのみ)
図2-1 TRANSIDの暗黙的添付(アウトバウンド・リクエストのみ)
次のリストでは、図2-1に示す暗黙的な添付の処理について説明します。
1.
ATMIサービスでは、DMCONFIGファイルでリモート・サービスとして公開されているサービスTRN1DATAに対してリクエストします。これはCICS/ESAリージョンのSVC1というプログラムに対するDPLリクエストです。
2.
リモート・サービスのタグ名の最初の4文字(TRN1)が抽出され、TRANSIDの起動時にCICS/ESAリージョンに渡されます。このリージョンでは、TRANSIDに対するCICS/ESAリソース定義は必要ありません。
3.
ミラー・トランザクションCSMIがCICS/ESAリージョンに添付され、ミラー・プログラムDFHMIRSが開始されます。このプログラムでは、サービスに対してDTPリクエストが実行されます。
4.
次に、ミラー・プログラムによって、起動中のTRANSID (TRN1)が添付され、アプリケーション・サービス・プログラムSVC1が起動されます。プログラムはEIBTRNIDフィールドに問い合せ、この値を検索します。
TRANSIDの暗黙的添付(アウトバウンド・リクエストのみ)
図2-2 アウトバウンド・リクエストに対するTRANSIDの明示的添付
次のリストでは、図2-2に示す明示的な添付の処理について説明します。
1.
ATMIプログラムでは、DMCONFIGファイルでリモート・サービスとして公開されているSERVICE1に対してサービスをリクエストします。FUNCTIONオプションは、リモート・サービスがDPLとして起動されていることを示します。
2.
リクエストにより、TRN1がリモート・リージョンの代替ミラー・トランザクションIDとして、リモート・プログラム名SERVICE1とともに抽出されます。
3.
TRN1 IDはデフォルトのミラー・トランザクションCSMIまたはCVMIのかわりに添付されます。TRN1 IDはリモート・リージョンのトランザクション・リソースとして定義され、ミラー・トランザクション・プログラムDFHMIRSを指している必要があります。
4.
ミラー・プログラムDFMMIRSにより、サーバー・アプリケーション・プログラムが呼び出され、EIBTRNIDフィールドのTRN1 IDが渡されます。
TRANSIDの暗黙的添付(アウトバウンド・リクエストのみ)
図2-3 インバウンド・リクエストに対するTRANSIDの明示的添付
次のリストでは、図2-3に示す暗黙的な添付の処理について説明します。
1.
CICS/ESAプログラムでは、ローカルATMIサービスであるINSVC1にリクエストします。リクエストのSYSIDおよびPROGRAMの値は、ローカル・システムとローカル・サービス名を示します。TRANSIDオプションは、ミラー・トランザクションが開始されることを示しています。
2.
PROGRAMおよびミラーTRANSIDは、DPLリクエストから抽出され、DMCONFIGファイルのDM_LOCAL_SERVICESセクションで完全に一致するRNAMEの検索に使用されます。
3.
追加情報
CICS/ESAのシステム間通信の詳細は、次のIBMのドキュメントを参照してください。
CICS/ESA Intercommunication Guide, IBM publication No. SC33-0657
CICS/ESA Recovery and Restart Guide, IBM publication No. SC33-0658

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved