RPC関連定義

ここでは,RPC関連定義の各オペランドについて説明します。

形式

〔set rpc_udp_packet_size=パケットサイズ〕
〔set rpc_udp_congestion_packet_count=パケット数〕
〔set rpc_udp_departure_limit=UDP通信を行うスレッド数の合計〕
〔set rpc_udp_linetrace=回線トレース情報の取得量の変更〕
〔set rpc_tcp_communication_use={Y|N}〕
〔set rpc_udp_lmsg_deliverychk_size=複数メッセージの一括送受信機能を使用した場合の送達確認サイズ〕
〔set rpc_udp_msg_deliverychk_size=送達確認サイズ〕
〔set rpc_recv_permanence={Y|N}〕

オペランドの説明

rpc_udp_packet_size=パケットサイズ

  ~〈符号なし整数〉((1452~16000))《1472》(単位:バイト)
UDP通信機能の通信単位であるパケットのサイズをバイト単位で指定します。このオペランドの指定値は,UDP通信を行うXTC間で同じ値を指定します。一致しない場合は,通信に失敗します。
このオペランドの指定値には,次に示す値を指定することお勧めします。次に示す値以外を指定した場合は,IP層でのフラグメント化の多発によるパケット数増加によって,性能が低下するおそれがあります。

MTUサイズ-28

UDP通信を行うXTC間でMTUサイズが異なる場合は,最も小さいMTUサイズに合わせます。MTUサイズの取得方法はOSによって異なります。詳細については,OSのマニュアルを参照してください。
なお,ジャンボフレームを使用できる環境では,ジャンボフレームの使用をお勧めします。ジャンボフレームを使用した場合,パケットサイズの拡張によって通信量が減少し,通信性能が向上します。
ただし,hbondingドライバによってW-send機能を使用する場合は,hbondingドライバの仕様上,推奨値を超える値は指定しないでください。指定した場合の動作は保証しません。
なお,UDP受信バッファ(UIBF)のサイズを超える値を指定した場合,XTCの起動に失敗します。

rpc_udp_congestion_packet_count=パケット数

  ~〈符号なし整数〉((0,100~16000))《1000》
輻輳制御の開始,終了の判断に使用するための監視対象パケット数を指定します。このオペランドに0を指定した場合は監視しません。
パケット送信時には,監視対象パケット数分の送信履歴を残します。再送パケット比率は,監視対象パケット数と再送パケット数を基に算出します。この再送パケット比率と,パケットロス上限およびパケットロス下限を比較することで,輻輳制御の開始,終了を判断します。パケットロス上限およびパケットロス下限については,UDPグループ情報関連定義のmyudpsnddef定義コマンドで指定します。
監視対象パケット数が少ない場合は,輻輳の検出が速くなります。しかし,瞬間的なパケットロスを輻輳として判断する場合があります。また,監視対象パケット数が多い場合は輻輳の検出が遅くなります。
輻輳制御の詳細については,「2.4.2 輻輳制御」を参照してください。

rpc_udp_departure_limit=UDP通信を行うスレッド数の合計

  ~〈符号なし整数〉((100~10000))《200》
自XTCとUDP通信を行う,すべての相手プロセスのスレッド数の合計値を指定します。
自プロセスに対して送信を行う場合は,自プロセスのスレッド数も加算する必要があります。ただし,ee_mch_cmtsend関数,またはee_mch_cmtsend_sync関数のメッセージ送信形態にEEMCH_MYPROCを指定して送信する場合は,自プロセスのスレッド数を加算する必要はありません。
すべての相手プロセスのスレッド数が,このオペランドの指定値を超えた場合は,通信が失敗します。

rpc_udp_linetrace=回線トレース情報の取得量の変更

  ~〈16進数〉((00000000~00000007|00000020~00000023))《00000000》
UDP通信機能の回線トレース情報の取得量を変更する場合,変更する項目を論理和で指定します。指定値の組み合わせについては,「6.3.1(1)(c) rpc_udp_linetraceオペランドの指定値の組み合わせ」を参照してください。
00000000:
すべての回線トレース情報を取得します。
00000001:
W-send機能や再送などによって重複して受信したパケットについて,回線トレース情報を取得しません。
00000002:
次のすべての条件を満たす場合に,回線トレース情報を取得しません。
  • myudpsnddef定義コマンドの-kオプションを指定している
  • クラスタ内でのマルチキャストによって自TP1/EEが送信したメッセージを,自TP1/EEで受信した
00000004:
メッセージが複数のパケットに分割されている場合,先頭パケットはUDP通信制御ヘッダおよびデータ部分を最大374バイト取得します。残りのパケットはUDP通信制御ヘッダだけを取得します。
00000020:
送受信が正常に行われた場合は,送受信データの先頭にある製品ヘッダを回線トレース情報として取得します。送受信データが複数のパケットに分割されている場合は,先頭パケットだけが製品ヘッダを取得します。残りのパケットは,製品ヘッダのうちUDP通信制御ヘッダだけを取得します。

rpc_tcp_communication_use={Y|N}

  ~《Y》
RPC通信で,TCP/IPプロトコルを使用するかどうかを指定します。
Y:
RPC通信で,TCP/IPプロトコルを使用します。
N:
RPC通信で,TCP/IPプロトコルを使用しません。
次の条件をすべて満たしている場合にだけ,このオペランドにNを指定できます。
  • xtc_use=Y
  • name_use=N
  • trn_transactional_rpcless_use=Y
このオペランドにNを指定した場合でも,ee_rpc_call関数とee_rpc_cmtsend関数の自プロセス送信(通信レス)によるRPC要求はできます。ただし,RPC要求先のサービスで,RPC応答のトランザクションまたがり送信機能,およびERRTRNRによるRPC応答メッセージ送信機能を使用することはできません。
このオペランドにNを指定した場合は,次の表に示す定義コマンドおよびオペランドの省略時解釈値または指定値が変更されます。
サービスグループ情報関連定義のmysvgdef定義コマンドおよびmyreplydef定義コマンドは省略できません。しかし,このオペランドにNを指定した場合は省略できます。

表5-7 rpc_tcp_communication_useオペランドにNを指定した場合の省略時解釈値または指定値の変化

定義コマンド名,またはオペランド名Y指定時の省略時解釈値N指定時の省略時解釈値指定値
mysvgdefなしなし無視されます。
myreplydefなしなし
rpc_reply_con_cnt20
rpc_reply_con_max_cnt2560
rpc_reply_proc_max_cnt1280
rpc_reply_suspend_cnt1280
rpc_reply_suspend_time1800
rpc_reply_suspend_recoverYN
rpc_reply_suspend_autosendNN
rpc_reply_errtrnrNN
rpc_reply_errtrnr_cnt1280
rpc_reply_port_autoNN

rpc_udp_lmsg_deliverychk_size=複数メッセージの一括送受信機能を使用した場合の送達確認サイズ

  ~〈符号なし整数〉((1452~9437184))《524288》(単位:バイト)
複数メッセージの一括送受信機能を使用する場合に,送達確認を行うサイズをバイト単位で指定します。
複数メッセージの一括送受信機能については,「2.4.3 複数メッセージの一括送受信機能」を参照してください。
このオペランドの指定値が小さい場合,送達確認が多発し,通信遅延の原因になります。このオペランドの指定値が大きい場合,パケットロスなどによる通信障害時に,再送による通信量が増加します。そのため,パケットロス頻度が高い(ネットワーク性能やマシン性能が低い)構成では,このオペランドの指定値を小さくし,パケットロス頻度の低い(ネットワーク性能やマシン性能が高い)構成では,このオペランドの指定値を大きくすることをお勧めします。
複数メッセージの一括送受信は,次の場合に行います。
  • CLサーバでCL同期メッセージの送受信をする場合
  • 高速メッセージ送信関連定義のmch_send_lump_countオペランドに2以上を指定し,一方送信メッセージを送受信する場合
なお,CL同期メッセージの送受信だけで使用するソケットの場合に,ユーザデータのサイズがこのオペランドの指定値以上になるときは,このオペランドの指定値はユーザデータのサイズになります。

rpc_udp_msg_deliverychk_size=送達確認サイズ

  ~〈符号なし整数〉((1452~9437184))《2097152》(単位:バイト)
メッセージ送受信時の,送達確認を行うサイズをバイト単位で指定します。
このオペランドの指定値が小さい場合,送達確認が多発し,通信遅延の原因になります。このオペランドの指定値が大きい場合,パケットロスなどによる通信障害時に,再送による通信量が増加します。そのため,パケットロス頻度が高い(ネットワーク性能やマシン性能が低い)構成では,このオペランドの指定値を小さくし,パケットロス頻度の低い(ネットワーク性能やマシン性能が高い)構成では,このオペランドの指定値を大きくすることをお勧めします。
なお,複数メッセージの一括送受信時には,rpc_udp_lmsg_deliverychk_sizeオペランドで指定した値が使用されます。また,CL同期メッセージ以外の送受信に使用するソケットの場合に,ユーザデータのサイズがこのオペランドの指定値以上になるときは,このオペランド指定値はユーザデータのサイズになります。

rpc_recv_permanence={Y|N

  ~《N》
クラスタを構成する実行系と待機系の間で,RPC要求の受信メッセージを永続化するかどうかを指定します。
このオペランドは,クラスタ連携関連定義のcluster_modeオペランドにYを指定している場合だけ有効です。
Y:
RPC要求の受信メッセージを永続化します。
N:
RPC要求の受信メッセージを永続化しません。