2.4.1 コネクションの生成とプーリング
Connector .NETは,Client .NETが提供するTP1Clientクラスのインスタンスにハンドルを関連づけて管理します。TP1Clientクラスのインスタンスに関連づけられたハンドルのことを,コネクションと呼びます。
- 〈この項の構成〉
(1) コネクションの生成
コネクションの生成の概要を,次の図に示します。
- 注※
-
実際のコネクション制御は,RPCの通信形態やTCP/IP通信時の構成定義によって異なります。
-
Connector .NETのアプリケーションからTP1ConnectionManagerクラスのGetConnectionメソッド(またはGetTcpipConnectionメソッド)が呼び出されると,TP1Clientクラスのインスタンスが生成されます。
このとき,アプリケーションのプロファイルIDに指定されたClient .NET構成定義に基づいて,TP1ClientクラスのOpenRpcメソッドが呼び出され,RPC環境が初期化されます。
-
TP1ConnectorManagerクラスは,コネクション(TP1ConnectionオブジェクトまたはTcpipConnectionオブジェクト)を生成します。
-
GetConnectionメソッド(またはGetTcpipConnectionメソッド)にコネクションを返します。
-
アプリケーションは,コネクションに対してRPC要求(またはTCP/IP通信)を実行します。
(2) コネクションのプーリング
Connector .NETでは,資源を効率的に使用するために,一度生成されたコネクションをプーリングできます。この領域を,コネクションプールと呼びます。コネクションプールは,最初にアプリケーションからGetConnectionメソッド(またはGetTcpipConnectionメソッド)が呼び出されたときにアプリケーションドメインごとに生成され,コネクションが解放されるとTP1Clientクラスのインスタンスがプーリングされます。
コネクションプーリング機能の概要を,次の図に示します。
-
アプリケーションからTP1ConnectionクラスのDisposeメソッドが呼び出されると,使用していたコネクションが解放されます。
-
使用していたコネクションは,コネクションプールにプーリングされます。
GetConnectionメソッド(またはGetTcpipConnectionメソッド)が呼び出された時に,コネクションプール内に同じプロファイルID(Client .NET構成定義のプロファイルID)のコネクションが存在する場合は,新たにTP1Clientクラスのインスタンスを生成しないで,コネクションプール内のコネクションを取得します。
- 注※
-
実際のコネクション制御は,RPCの通信形態やTCP/IP通信時の構成定義によって異なります。
-
アプリケーションからTP1ConnectionManagerクラスのGetConnectionメソッド(またはGetTcpipConnectionメソッド)が呼び出されます。
このとき,アプリケーションのプロファイルIDで指定されたClient .NET構成定義に基づいて,TP1ClientクラスのOpenRpcメソッドが呼び出され,RPC環境が初期化されます。
-
コネクションプール内に同じプロファイルIDのコネクション(TP1ConnectionオブジェクトまたはTcpipConnectionオブジェクト)が存在するため,TP1ConnectorManagerクラスはコネクションプールからコネクションを取得します。
-
GetConnectionメソッド(またはGetTcpipConnectionメソッド)にコネクションを返します。
-
アプリケーションは,コネクションに対してRPC要求(またはTCP/IP通信)を実行します。