キャッシュ接続プールの有効化
TimesTenの起動時にTimesTenサーバー上にキャッシュ接続プールを作成するように指定できます。
キャッシュ接続プールが作成されると、クライアント/サーバー接続からの動的ロード・リクエストにより、キャッシュ接続プールからの接続が取得され、動的ロードが実行され、動的ロード・リクエストの完了時に接続がキャッシュ接続プールに戻されます。TimesTenサーバーが停止すると、キャッシュ接続プールが破棄されます。
ノート:
キャッシュ接続プールは、(マルチスレッド・モードを使用して)クライアント/サーバー・アプリケーションからのみ開始でき、動的な読取り専用キャッシュ・グループ用に開始された動的ロードにのみ使用されます。
クライアント/サーバー接続リクエストでキャッシュ接続プールを使用できるようにするには、アプリケーションで接続時に次の接続属性を指定する必要があります。
-
MaxConnsPerServer
接続属性: この接続属性は、子サーバー・プロセスごとに作成できるクライアント/サーバー接続の最大数を設定します。値が1より大きい場合、各TimesTen子サーバーは、各クライアント/サーバー接続がマルチスレッド化されている複数のクライアント接続を処理できます。キャッシュ接続プールは、マルチスレッド・クライアント/サーバー接続でのみ使用できます。MaxConnsPerServer
接続属性が1に設定されている場合、TimesTenは子サーバー・プロセスごとに1つのシングルスレッド・クライアント/サーバー接続を作成します。 -
ServersPerDSN
接続属性: 値は、TimesTenサーバー用に生成する子サーバー・プロセスの数を指定します。デフォルトは1です。それぞれの新規着信接続により、
ServersPerDSN
接続属性で指定された値まで、新しい子サーバー・プロセスが生成されます。子サーバー・プロセスの最大数に到達すると、既存の子サーバー・プロセスは、ラウンドロビン方式で複数の接続を(MaxConnsPerServer
に指定された数まで)処理します。つまり、ServersPerDSN
を2に、MaxConnsPerServer
を3に指定すると、最初の2つの接続によって2つの子サーバー・プロセスが生成されます。3番目から6番目までの接続がこれらの子サーバー・プロセスによって処理され、各子サーバー・プロセスが他の接続をそれぞれ処理します。すべての子サーバー・プロセスの接続が最大許容数に達すると、次の受信接続で新しい子サーバー・プロセスのセットを開始します。
ServersPerDSN
およびMaxConnsPerServer
接続属性は、複数の子サーバー・プロセスに接続を分散する方法を指定するために使用します。 -
UseCacheConnPool
接続属性: キャッシュ接続プールを使用するには、有効にする(2に設定)必要があります。UseCacheConnPool
接続属性を有効にすると、キャッシュ接続プールが作成され、マルチスレッド・クライアント/サーバー接続によって開始される動的ロード処理に使用されます。UseCacheConnPool
接続属性が無効になっている場合(0に設定)、キャッシュ接続プールは作成されず、動的ロード処理は既存の動作を使用して実行されます。『Oracle TimesTen In-Memory Databaseリファレンス』の「UseCacheConnPool」を参照してください。
ノート:
Oracleデータベースへの接続数を制限することもできます。「Oracleデータベースへの接続数の制限」を参照してください。
次の例では、DSN定義でのキャッシュ接続プールの接続属性を指定します。
sys.odbc.ini
ファイルのcache1
DSN定義では、UseCacheConnPool=2
、ServersPerDSN=2
およびMaxConnsPerServer=3
を指定します。
[cache1] DataStore=/users/OracleCache/database1 PermSize=64 OracleNetServiceName=oracledb DatabaseCharacterSet=AL32UTF8 UseCacheConnPool=2 ServersPerDSN=2 MaxConnsPerServer=3
または、アプリケーションから接続するときに、両方の接続属性をコマンドラインで指定することもできます。
ttIsql "DSN=cache1;OracleNetServiceName=oracledb;UseCacheConnPool=2;ServersPerDSN=2;MaxConnsPerServer=3"
ノート:
『Oracle TimesTen In-Memory Databaseリファレンス』の「MaxConnsPerServer」、「ServersPerDSN」および「UseCacheConnPool」を参照してください。