3.3.1 概要
リモートAPI機能とは,クライアント側のノードにあるUAPが発行したAPIを,TP1/EEのプロセスで代理実行する機能です。リモートAPI機能を要求するクライアント側のノードにあるUAPをrapクライアントといいます。rapクライアントが発行したAPIを,OpenTP1のrapリスナー(TP1/EEではrap受信スレッド)が受け付け,rapサーバがサーバ側のノードで実行します。TP1/EEは,rapクライアントとしても,rapサーバとしても動作します。
リモートAPI機能で代理実行できるAPIを次に示します。
-
ee_rpc_call関数
ee_rpc_call関数を呼び出す場合(TP1/EEがrapクライアントとして動作する場合)は,次に示すように定義を指定しておく必要があります。
-
RPC関連定義のrpc_destination_modeオペランドにnamdonly以外を指定
-
サービスグループ情報関連定義のeesvgdef定義コマンドの-tオプションにRAPを指定
-
-
dc_rpc_call関数
TP1/EEがrapサーバとして動作する場合だけ使用できます。TP1/EEがrapクライアントとして動作する場合は使用できません。
rapサーバとして動作するTP1/EEは,サポートしていないAPIの代理実行を要求された場合,rapクライアントに代理実行エラー応答メッセージを返します。また,トランザクショナルRPC形式のリモートAPI要求を受け付けた場合,非トランザクショナルRPCとして処理します。
リモートAPI機能で非同期応答型RPCは使用できません。非同期応答型RPCを使用した場合,通常のRPCとして動作します。また,トランザクション内からリモートAPI機能を使用してee_rpc_call関数を発行してもトランザクションとして処理されません。
TP1/Server Baseがrapクライアントである場合,rapクライアント側で,rapサーバ(TP1/EE)のサービス情報(ホスト名およびポート番号)を定義しておきます。rapサーバのサービス情報は,TP1/Server Baseのユーザサービスネットワーク定義のdcsvgdef定義コマンドで定義できます。その際,-wオプションを必ず指定してください。
TP1/Server BaseがrapクライアントでTP1/EEがrapサーバの場合のリモートAPI機能を次の図に示します。