2.3.9 ネームサービスを使用したRPC
(1) ネームサービスを使用したRPC
TP1/ClientからRPCをする際には,TP1/Serverのネームサービスの機能を使用しています。ネームサービスの機能を使用することで,OpenTP1システムのサービス情報の管理を行っています。
TP1/Clientはサービス情報のキャッシュを持っているため,TP1/Serverのネームサービスへの問い合わせを毎回行いません。しかし,キャッシュにサービス情報が登録されていないとき,またはキャッシュの有効期限が切れたときは,TP1/Serverのネームサービスに対して通信が発生します。
(2) ネームサービスを使用しないRPC
TP1/Clientとサーバ間の通信回数を少しでも削減したい場合は,TP1/Serverのネームサービスの機能を抑止できます。
この場合,RPC実行時にネームサービスに問い合わせないため,TP1/Clientとサーバ間の通信負荷を削減できます。TP1/ClientとサーバがWAN経由して接続されている場合などに有効です。
ネームサービスを使用しないRPCを行うかどうかは,クライアント環境定義DCSCDDIRECTで指定します。
この機能を使用する場合,TP1/Serverのスケジュールサービスに対して直接サービスの要求を行います。
なお,この機能の使用時は,ソケット受信型SPPに対してRPCの発行はできません。
(3) 窓口となるTP1/Server
ネームサービスを使用したRPC,およびネームサービスを使用しないRPCの窓口となるTP1/Serverは,ユーザ認証の有無によって次のようになります。ユーザ認証機能については,「2.1 ユーザ認証機能」を参照してください。
(a) ユーザ認証を行う場合
ユーザ認証に成功したTP1/Serverです。
(b) ユーザ認証を抑止する場合
dc_clt_cltin_s関数の引数target_hostに指定したOpenTP1ノード,またはクライアント環境定義DCHOSTに指定したTP1/Serverです。両方指定した場合,dc_clt_cltin_s関数の引数target_hostに指定したTP1/Serverが優先されます。
なお,ユーザ認証を抑止し,dc_clt_cltin_s関数の引数target_hostにNULLを指定,かつクライアント環境定義DCHOSTの指定を省略した場合,ネームサービスを使用したRPC,およびネームサービスを使用しないRPCを使用できません。