Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引


2.1.1 リモートプロシジャコールの実現方法

TP1/EEを使用するシステムの場合,サーバUAPはSPPです。クライアントUAPは,SUP,SPP,およびCUPです。TP1/EEはSPPとして動作します。

遠隔サービスを要求するサービス関数を次に示します。

クライアントUAPがTP1/EEの場合
  • ee_rpc_call関数【CBLEERPC('CALL ')】

  • ee_rpc_call_to関数【CBLEERPC('CALLTO ')】

クライアントUAPがTP1/Server BaseのSUP,SPPの場合,またはTP1/ClientのUAP(CUP)の場合
  • dc_rpc_call関数【CBLDCRPC('CALL ')】

  • dc_rpc_call_to関数

なお,dc_rpc_call_to関数に対応するCOBOL-UAP作成用プログラムはありません。

クライアントUAPから,サービスを要求する関数を使ってサーバUAP(SPP)のサービスを要求できます。クライアントUAPからサービスを要求するときは,サーバUAPのサービスグループ名とサービス名を引数に設定したdc_rpc_call関数,dc_rpc_call_to関数,ee_rpc_call関数,またはee_rpc_call_to関数を呼び出します。

dc_rpc_call関数,またはee_rpc_call関数では,要求されるサービスが,クライアントUAPと別のノードにあっても同じノードにあってもかまいません。要求されるサービスがどのノードにあるかは,TP1/Server Baseのネームサービスで管理しているので,UAPで意識する必要はありません。これに対し,dc_rpc_call_to関数,またはee_rpc_call_to関数を使えば,特定のサービス要求先にサービスを要求できます。dc_rpc_call_to関数,またはee_rpc_call_to関数では,サービスグループ名とサービス名を引数に設定するのに加え,ホスト名またはノード識別子を指定して,特定のサービス要求先にサービスを要求します。

クライアントUAPが,開始していないTP1/EE(サーバUAP)にサービスを要求すると,dc_rpc_call(dc_rpc_call_to)関数,ee_rpc_call(ee_rpc_call_to)関数はエラーリターンします。

RPCを使った通信のクライアント/サーバの関係を次の図に示します。

図2‒1 RPCを使った通信のクライアント/サーバの関係

[図データ]