1.5.12 コネクションの管理
HSICとテスト対象システムとのコネクションの確立および解放は、フレームワークが行います。
コネクションはクライアント識別子単位に管理します。ほかのクライアント識別子のコネクションは使用しません。
複数のクライアント識別子で同一のテスト対象システムと通信をする場合、クライアント識別子分のコネクションを確立します。
管理するコネクションの種類を次に示します。
コネクションの種類 |
プロトコル種別 |
---|---|
電文送受信で使用する「送受信用コネクション」 (address_destination定義の-tオプション) |
すべて |
電文受信でだけ使用する「受信用コネクション」 (address_destination定義の-tオプションのrcv_portnoフラグメンバ) |
TCP |
RPC電文受信でだけ使用する「RPC受信用コネクション」 RPCプロトコルが自動的に確立します。 |
RPC |
負荷分散装置を使用するなどで要求電文と応答電文が別コネクションとなる場合、受信用のコネクションを定義します。この場合、送受信用コネクションで要求電文を送信し、受信用コネクションで応答電文を受信します。 定義例として、要求電文をサーバ1(負荷分散装置)が受信してサーバ2またはサーバ3に振り分け、サーバ2またはサーバ3から応答電文を受信する構成を次に示します。
- コネクション確立(送受信用コネクション)
-
次のタイミングでコネクションを確立します。
-
パケット送信時
テスト対象システムへの要求電文送信時にコネクションが未確立の場合、コネクションを確立します。
コネクションの確立に失敗した場合、その電文を破棄し、次の電文を処理します。
-
- コネクション確立(受信用コネクション)
-
次のタイミングでコネクションを確立します。
-
パケット送信時
テスト対象システムへの要求電文送信時、address_destination定義の-tオプションのrcv_portnoフラグメンバが指定されていて、かつ、受信用のコネクションが未確立の場合、コネクションを確立します。
コネクション確立が失敗した場合、その電文を破棄し、次の電文を処理します。
-
- コネクション確立(RPC受信用コネクション)
-
次のタイミングでコネクションを確立します。
-
テスト対象システムからのコネクションの確立要求受付時
テスト対象システムは、HSICに対して応答電文送信時にコネクションが未確立の場合、HSICに対してコネクションを確立します。
コネクション確立に失敗した場合、応答電文待ちタイムアウトになります。
-
- コネクション解放
-
次のタイミングでコネクションを解放します。
解放後、再度コネクションの確立タイミングが発生した場合は、コネクションを再確立します。
-
システム効率化支援終了時
-
テスト対象システムとの電文送受信時で異常(システムコールエラーなど)発生
-
テスト対象システムからの電文受信時で後続メッセージ待ちタイムアウト発生時
-
コネクション解放コマンド(esipcsockcls)実行時
-
テスト対象システムからの一時クローズ要求電文受信時(RPCプロトコルだけ)
要求電文と応答電文を同一コネクションで送受信するプロトコルや、TCPプロトコルでペアリングキーがデフォルトの場合、同一コネクションで要求電文と応答電文を送受信します。そのため、要求電文の送信後、応答待ち中にコネクションが解放されると、応答電文を受信することができなくなります。これを回避するため、コネクションが解放された場合、応答待ち状態を解除し、応答受信失敗として後処理を行います。
-