TCPプロトコルを使用したRPC通信と比較して,UDPプロトコルを使用したRPC通信では,次に示す差異があります。
UDPプロトコルを使用したRPC通信を行う場合は,次に示す機能を使用できません。
表2-7 UDPプロトコルを使用したRPC通信を行う場合のRPC通信機能の差異
項番 | 差異 | 影響するシステム |
---|---|---|
1 | トランザクショナルRPCは使用できません。 ee_rpc_call関数のflags引数にEERPC_UDPを指定し,かつ論理和でEERPC_TPNOTRANを指定しなかった場合,ee_rpc_call関数はEERPCER_PARAM_FLAGSでエラーになります。 | クライアント側 |
2 | RPC応答のトランザクションまたがり送信機能は使用できません。 使用した場合,ee_rpc_reply_suspend関数がEERPCER_PROTOでエラーになります。ただし,通常のRPC通信で起動されたサービス上でRPC応答メッセージの送信を抑止(ee_rpc_reply_suspend関数を発行)し,この機能によって起動されたサービス上で抑止解除(ee_rpc_reply_send関数を発行)することはできます。 | サーバ側 |
3 | ERRTRNRによるRPC応答メッセージ送信機能は使用できません。 ERRTRNRによるRPC応答メッセージ送信機能を使用し(rpc_reply_errtrnrオペランドにYを指定),かつ起動されたサービスからERRTRNRが起動されたとしても,RPC応答メッセージはトランザクション決着時に送信されます。 | サーバ側 |
4 | サービス要求先の決定方法として,ネームサービスからの検索は使用できません。 ee_rpc_call関数のflags引数にEERPC_UDPを指定した場合,RPC関連定義のrpc_destination_modeオペランドの設定値は無視され,eesvgdef定義コマンド指定値だけがサービス要求先になります。 | クライアント側 |
5 | 次に示すノード間負荷バランス機能は使用できません。
| クライアント側およびサーバ側 |
UDPプロトコルを使用したRPC通信を行う場合は,TCPプロトコルを使用したRPC通信と比較して,使用するリソースに,次に示す差異があります。次に示すリソース以外については,TCPプロトコルを使用したRPC通信を行う場合と共有します。
表2-8 UDPプロトコルを使用したRPC通信を行う場合の使用するリソースの差異
項番 | リソース | 差異 |
---|---|---|
1 | ファイルディスクリプタ | UDP通信機能のファイルディスクリプタを使用するため,RPC通信用としてファイルディスクリプタを使用しません。 |
2 | ポート | UDP通信機能のポートを使用するため,RPC通信用のポートを使用しません。 |
3 | ソケット送受信バッファサイズ | UDP通信機能の定義で指定したUDPソケット送受信バッファサイズになります。 |
4 | フラグメントメッセージ用バッファ | UDP通信機能のリソースを使用するため,RPC通信用としてフラグメントメッセージ用バッファを使用しません。 |