Hitachi

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


2.2.10 通信先を指定したRPC

通信先を指定したRPCを使用すると,サービス要求を実行するサーバ(通信先のOpenTP1ノード)を明示的に指定できます。

通信先を指定したRPCを使用した場合,サービス要求を実行するサーバに指定した通信先のOpenTP1ノードでサービス要求が実行されます。指定したOpenTP1ノードが停止,または閉塞しているときでも,他OpenTP1ノードへの転送は行われません。また,ノード間負荷バランス機能は使用できません。

通信先を指定したRPCを使用するには,rpcCallToメソッドを呼び出します。rpcCallToメソッドは,DCRpcBindTblオブジェクトに格納されたホスト名にあるTP1/Serverのスケジュールサービスに対して直接サービス要求を実行します。

なお,この機能はリモートAPI機能を使用したRPCとの併用はできません。

通信先指定RPCを使用した場合のサービス要求の流れを次の図に示します。

図2‒9 通信先指定RPCを使用したサービス要求の流れ

[図データ]

  1. TP1/Client/Jが提供するTP1Clientクラスのインスタンスを作成する。

  2. rpcOpenメソッドを呼び出してCUPのRPC環境を初期化する。

  3. rpcCallToメソッドを呼び出してTP1/Serverのscdサーバを経由して目的のSPPにサービス要求をする。

    通信先SPPの状態に関係なく,同一ノード内のSPPでサービス要求処理が行われます。

    rpcCallToメソッドは,rpcOpenメソッドを呼び出してからrpcCloseメソッドを呼び出すまでの間,何回でも呼び出せます。

  4. rpcCloseメソッドを呼び出してRPC環境を解放する。

なお,この機能の使用時は,ソケット受信型SPPに対してRPCを発行できません。また,TP1/Client/J環境定義のdccltrpcmaxmsgsizeオペランドを指定してこの機能を使用した場合,通信先のTP1/Serverノードでエラーが発生することがあります。