Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/J編


2.4.3 メッセージの送受信

CUPとMHPとの間で,メッセージを送受信できます。

メッセージの送受信は,コネクションが解放されていなければ同じコネクションを使用してメッセージを送受信します。

MHPがサーバ型の場合

CUPからMHPに対してメッセージを送信した際に確立したコネクションを使用してメッセージの送受信を行います。このため,CUPでは受信用のソケットを使用しません。

CUPからcltSendメソッドを実行してMHPへメッセージを送信し,cltReceiveメソッドを実行して,MHPからのメッセージを受信します。メッセージの組み立て機能を使用する場合は,CUPからcltAssemSendメソッドを実行してMHPへメッセージを送信し,cltAssemReceiveメソッドを実行してMHPからのメッセージを受信します。

MHPがクライアント型の場合

MHPから送信されたメッセージをCUPで受信した際に確立したコネクションを使用してメッセージの送受信を行います。

CUPでcltReceiveメソッドを実行して,MHPからのメッセージを受信し,cltSendメソッドを実行してMHPへメッセージを送信します。メッセージの組み立て機能を使用する場合は,CUPでcltAssemReceiveメソッドを実行してMHPからのメッセージを受信し,cltAssemSendメソッドを実行してMHPへメッセージを送信します。

メッセージを送受信するには,次に示す指定をしておく必要があります。TP1/Client/J環境定義の各オペランドの詳細は「5.2.2 オペランド」を参照してください。

MHPがサーバ型の場合
  • 接続先のノード名を次のどちらかの方法で指定します。

    (a) cltSendメソッド,またはcltAssemSendメソッドの引数hostnameに指定

    (b) TP1/Client/J環境定義dcsndhostオペランドに指定

  • 接続先のポート番号(MCF通信構成定義の定義コマンドmcftalccnのportnoオペランドで指定したポート番号)を次のどちらかの方法で指定します。

    (a) cltSendメソッド,またはcltAssemSendメソッドの引数portnumに指定

    (b) TP1/Client/J環境定義dcsndportオペランドに指定

  • TP1/Client/J環境定義dcsndrcvtypeオペランドにDCCLT_SNDRCVを指定します。

  • TP1/Client/J環境定義dcsockopenatrcvにYを指定します。

    CUPでは受信用ソケットを使用しないため,TP1/Client/J環境定義dcsockopenatrcvにYを指定し,受信用ソケットを開設しないようにしてください。

MHPがクライアント型の場合
  • TP1/Client/J環境定義dcrcvportオペランドにCUPの受信用ポート番号(MCF通信構成定義の定義コマンドmcftalccnのoportnoで指定したポート番号)を指定してください。マルチスレッドで動作するCUPを含め,同一マシンでCUPを複数実行する場合は,TP1/Client/J環境定義dcrcvportオペランドをCUPごと(スレッドごと)に異なるポート番号となるように設定してください。CUPごとのTP1/Client/J環境定義の設定方法については,「5.2.3 TP1/Client/J環境定義を指定するときの注意事項」を参照してください。

  • TP1/Client/J環境定義dcsndrcvtypeオペランドにDCCLT_SNDRCVを指定します。

メッセージの送受信を次の図に示します。

図2‒21 メッセージの送受信

[図データ]