ヘッダーをスキップ
Oracle TimesTen In-Memory Database TTClassesガイド
リリース7.0
E05171-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

TTConnectionPool

TTConnectionPoolクラスは、マルチスレッド・アプリケーションによって、接続のプールの管理に使用されます。

通常、マルチスレッド・アプリケーションは次のいずれかの基本的な方法を使用して作成できます。

アプリケーションは、TTConnectionPoolクラスを使用するために、クラスの単一のインスタンスを作成します。その後、多数のTTConnectionオブジェクトを作成しますが、それらのConnectメソッド(実際にそれらをTimesTenに接続するメソッド)はコールしません。アプリケーションは次に、TTConnectionPool::AddConnectionToPoolメソッドをコールして接続オブジェクトをプールに追加します。その後、TTConnectionPool::ConnectAllをコールして、すべての接続をTimesTenに接続します。TimesTenを使用するスレッドは、getConnectionとfreeConnectionメソッドを使用し、アイドル状態の接続を取得して返します。

パブリック・メンバー

なし

パブリック・メソッド

メソッド
説明
TTConnectionオブジェクト、またはTTConnectionから導出されたクラスのオブジェクトを接続プールに追加するために使用されます。 
すべてのTTConnectionオブジェクトを同時にTimesTenに接続します。
スレッドの接続プールからアイドル状態の接続を確認します。
別のスレッドへの再割当てができるように接続をプールに返します。

接続プール内のすべての接続をTimesTenから切断します。

TTConnectionPoolにステータス情報を問い合せます。

AddConnectionToPool

int AddConnectionToPool (TTConnection*)

このメソッドは、TTConnectionオブジェクト、またはTTConnectionから導出されたクラスのオブジェクトを接続プールに追加するために使用されます。

ConnectAll

void ConnectAll (const char* connStr, TTStatus&)

AddConnectionToPoolによってTTConnectionオブジェクトが接続プールに追加された後、ConnectAllメソッドを使用して、すべてのTTConnectionオブジェクトを同時にTimesTenに接続できます。

例外が有効な場合は、エラーが発生するとTTStatusオブジェクトが例外としてスローされます。例外が無効な場合は、メソッドから返される際に、発生したエラーに関する情報が、最後のパラメータとしてメソッドに渡されたTTStatus&オブジェクトに格納されます。

getConnection

TTConnection* getConnection (int timeout_millis=0)

スレッドの接続プールからアイドル状態の接続を確認します。アイドル状態のTTConnectionオブジェクトへのポインタが返されます。スレッドはその後、トランザクションを実行し、CommitまたはRollbackのいずれかでそれを終了してから、freeConnectionメソッドを使用して接続をプールに返します。

プール内にアイドル状態の接続がない場合は、freeConnectionのコールによって接続がプールに返されるまで、getConnectionをコールするスレッドがブロックされます。オプションのタイムアウトをミリ秒単位で指定できます。タイムアウトが指定されると、getConnectionは空き接続が出るまで、timeoutミリ秒を上限として待機し、その時間内に接続が使用可能にならなければコール元にNULLを返します。

freeConnection

void freeConnection (TTConnection*)

別のスレッドへの再割当てができるよう、接続をプールに返します。アプリケーションでは、トランザクション中の接続を解放しないでください。freeConnectionをコールする直前に、TTConnection::CommitまたはTTConnection::Rollbackをコールする必要があります。

DisconnectAll

void DisconnectAll (TTStatus&)

接続プール内のすべての接続をTimesTenから切断します。

アプリケーションでは、プロセス障害の分析とリカバリに関連するオーバーヘッドを回避するために、終了の前にDisconnectAllをコールする必要があります。

例外が有効な場合は、エラーが発生するとTTStatusオブジェクトが例外としてスローされます。例外が無効な場合は、メソッドから返される際に、発生したエラーに関する情報が、最後のパラメータとしてメソッドに渡されたTTStatus&オブジェクトに格納されます。

getStats

void getStats(int *nGets, int *nFrees, int *nWaits, int *nTimeouts,

       int *maxInUse, int *nForcedCommits)

TTConnectionPoolにステータス情報を問い合せます。次のデータが返されます。