2.3.2 通信方式

UDPプロトコルを使用したRPC通信では,ユニキャストおよびマルチキャストによる通信ができます。

RPCサービス要求メッセージは,クライアントからサーバに対して,マルチキャスト,またはユニキャストで送信します。一方,RPCサービス応答メッセージは,サーバからクライアントに対してユニキャストで送信します。

サービス要求先の構成によって,サービスが実行できる通信方式が異なります。RPCサービス要求メッセージの通信方式は,UDPグループ情報関連定義のeeudpdef定義コマンドの-cオプションで指定します。通信方式とサービスの実行可否の組み合わせを次の表に示します。

表2-6 通信方式とサービスの実行可否

項番通信方式サービス要求先実行系/待機系サービスの実行備考
1ユニキャストHAサーバできる
2CLサーバ実行系できる
3待機系できないサービス要求先でメッセージを破棄します。
4マルチキャストHAサーバできる
5CLサーバ実行系できる
6待機系できないサービス要求先でメッセージを破棄します。
(凡例)
-:該当しません。
注※
実行系のサーバでサービスが実行されます。

<この項の構成>
(1) ユニキャストでの通信
(2) マルチキャストでの通信

(1) ユニキャストでの通信

サーバに対して,ユニキャストで直接RPC要求メッセージを送信します。RPC要求メッセージを受信したサーバは,サービスを実行します。

RPC要求メッセージを受信したサーバがCLサーバ(待機系)の場合は,受信したメッセージを破棄します。

同期応答型RPCによってユニキャストでサービスを要求する場合の処理の流れを次の図に示します。

図2-14 同期応答型RPCによってユニキャストでサービスを要求する場合の処理の流れ

[図データ]

説明
  1. クライアントUAPによってee_rpc_call関数が呼び出されます。
  2. 要求メッセージは,ユニキャストでサーバに送信されます。
  3. サーバで受信した要求メッセージは,処理キューに登録されます。処理キューは,処理スレッドによって引き出されます。
  4. UAPによって応答メッセージが作成され,処理スレッドにリターンします。
  5. 処理スレッドは,応答メッセージをユニキャストでクライアントに送信します。
  6. 受信スレッドで受信した応答メッセージは,処理スレッドのee_rpc_call関数に引き渡されます。

(2) マルチキャストでの通信

複数のサーバに対してマルチキャストでRPC要求メッセージを送信します。

RPC要求メッセージを受信したサーバが実行系の場合は,サービスを実行します。一方,待機系がRPC要求メッセージを受信した場合は,メッセージを破棄します。

同期応答型RPCによってマルチキャストでサービスを要求する場合の処理の流れを次の図に示します。

図2-15 同期応答型RPCによってマルチキャストでサービスを要求する場合の処理の流れ

[図データ]

説明
  1. クライアントUAPによってee_rpc_call関数が呼び出されます。
  2. 要求メッセージは,マルチキャストでCLサーバに送信されます。このとき,待機系のCLサーバでは,受信したメッセージを破棄します。
  3. サーバで受信した要求メッセージは,処理キューに登録されます。処理キューは,サーバの処理スレッドによって引き出されます。
  4. UAPによって応答メッセージが作成され,処理スレッドにリターンします。
  5. 処理スレッドは,応答メッセージをユニキャストでクライアントに送信します。
  6. 受信スレッドで受信した応答メッセージは,処理スレッドのee_rpc_call関数に引き渡されます。