プライマリ・コンテンツに移動
Oracle® C++ Call Interfaceプログラマーズ・ガイド
12c リリース1 (12.1)
B72464-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

StatelessConnectionPoolクラス

このクラスは、データベースへの認証済でステートレスな接続プールを表します。

表13-41 StatelessConnectionPoolクラスで使用される列挙値

属性 オプション
PoolType
  • HETEROGENEOUSはデフォルトの状態です。異なる認証コンテキストを持つ接続を同じプールに作成できます。このプール型は外部認証にも対応しています。

  • HOMOGENEOUSは、プールの作成時に指定したユーザー名とパスワードを使用して、プールのすべての接続が認証されることを示します。プロキシ接続は作成できません。minConn値とincrConn値は、これらのHOMOGENEOUSプールで唯一のものとみなされます。

  • NO_RLBは、接続プールでのランタイム・ロード・バランシングをオフにします。HETEROGENEOUSプールおよびHOMOGENEOUSプールの両方で使用できます。

  • USES_EXT_AUTHは、プール内の接続が外部認証をサポートすることを示します。HETEROGENEOUSプールでのみ使用できます。

BusyOption
  • WAITは、スレッドが待機し、接続が解放されるまでブロックされることを示します。

  • NOWAITの場合はエラーが発生します。

  • FORCEGETは、最大接続数がオープンされ、すべての接続がビジーな場合でも、接続が新規に作成されることを示します。

DestroyMode
  • DEFAULTでは、まだプール内にアクティブなビジー接続があるとORA-24422エラーが発生します

  • SPD_FORCEは、プール内のビジー接続を強制的に終了し、プールを破棄することを示します。強制終了した接続数に応じたメモリーが破棄されます。


表13-42 StatelessConnectionPoolメソッドの概要

メソッド 説明

getAnyTaggedConnection()


一致するタグの制限なしに接続オブジェクトへのポインタを戻します。

getAnyTaggedProxyConnection()


接続プールからプロキシ接続を戻します。

getBusyConnections()


接続プール内のビジー接続数を戻します。

getBusyOption()


プール内の接続がすべてビジーで最大接続数に達している場合、ステートレスな接続プールの動作を戻します。

getConnection()


Connectionオブジェクトへのポインタを戻します。

getIncrConnections()


接続プール内の増分接続数を戻します。

getMaxConnections()


接続プール内の最大接続数を戻します。

getMinConnections()


接続プール内の最小接続数を戻します。

getOpenConnections()


接続プール内のオープン接続数を戻します。

getPoolName()


接続プールの名前を戻します。

getProxyConnection()


接続プールからプロキシ接続を戻します。

getTimeOut()


接続プール内の接続のタイムアウト間隔を戻します。

releaseConnection()


オプションのタグを指定してプールに接続を解放します。

setBusyOption()


次の場合に、ステートレスな接続プールの動作を指定します。

  • プール内の接続がすべてビジーの場合、かつ、

  • 最大接続数に達している場合

setPoolSize()


接続プールについて、最大、最小および増分のプール接続数を設定します。

setTimeOut()


接続プール内の接続のタイムアウト間隔を設定します。

terminateConnection()


接続をクローズしてプールから削除します。


getAnyTaggedConnection()

一致するタグの制限なしに接続オブジェクトへのポインタを戻します。

このメソッドは、データベース常駐接続プーリングが有効化された環境で動作します。

このコールの実行時に、最初にプールが指定のタグに基づいて検索されます。指定したタグを持つ接続が存在する場合は、その接続がユーザーに戻されます。一致する接続が使用可能でない場合は、適切な認証を受けたタグなし(NULLタグ付き)の接続が戻されます。日付のない接続が解放されていない場合は、適切な認証を受けた別のタグを持つ接続が戻されます。

Connectionに対するgetTag()のコールにより、接続タグを受信したかどうかが検証されます。

構文 説明
Connection *getAnyTaggedConnection(
   string &tag="")=0;
一致するタグの制限なしに、同種ステートレス接続プールから接続オブジェクトへのポインタを戻します(stringのサポートの場合)。
Connection* getAnyTaggedConnection(
   const UString &tag)=0; 
一致するタグの制限なしに、同種ステートレス接続プールから接続オブジェクトへのポインタを戻します(UStringのサポートの場合)。
Connection *getAnyTaggedConnection(
   const string &userNname,
   const string &password,
   const string &tag="")=0;
一致するタグの制限なしに、異種ステートレス接続プールから接続オブジェクトへのポインタを戻します(stringのサポートの場合)。
Connection* getAnyTaggedConnection(
   const UString &userName, 
   const UString &Password, 
   const UString &tag)=0 ;
一致するタグの制限なしに、異種ステートレス接続プールから接続オブジェクトへのポインタを戻します(UStringのサポートの場合)。

パラメータ 説明
userName
データベース・ユーザー名を指定します。
password
データベースのパスワードを指定します。
tag
要求する接続のユーザー定義型を指定します。デフォルト接続を要求する場合は、このパラメータを無視できます。

getAnyTaggedProxyConnection()

接続プールからプロキシ接続を戻します。

このメソッドは、データベース常駐接続プーリングが有効化された環境で動作します。

このコールの実行時に、最初にプールが指定のタグに基づいて検索されます。指定したタグを持つ接続が存在する場合は、その接続がユーザーに戻されます。一致する接続が使用可能でない場合は、適切な認証を受けた異なるタグを持つ接続が戻されます。日付のない接続が解放されていない場合は、適切な認証を受けた別のタグを持つ接続が戻されます。

タグの一致という制限は、空のタグの引数パラメータを渡すことで削除できます。

接続に対するgetTag()のコールにより、受信された接続タグが検証されます。

構文 説明
Connection *getAnyTaggedProxyConnection(
   const string &name,
   string roles[],
   unsigned int numRoles,
   const string tag="",
   Connection::ProxyType 
      proxyType=Connection::PROXY_DEFAULT);
接続プールからロール指定付きでプロキシ接続を取得します。ロールのサポートとstringのサポートが含まれます。
Connection* getAnyTaggedProxyConnection(
   const UString &name,
   string roles[],
   unsigned int numRoles,
   const UString &tag,
   Connection::ProxyType 
      proxyType = Connection::PROXY_DEFAULT);
接続プールからロール指定付きでプロキシ接続を取得します。ロールのサポートとUStringのサポートが含まれます。
Connection *getAnyTaggedProxyConnection(
   const string &name,
   const string tag="",
   Connection::ProxyType       proxyType=Connection::PROXY_DEFAULT);
接続プールからロール指定付きでプロキシ接続を取得します(stringのサポートの場合)。
Connection* getAnyTaggedProxyConnection(
   const UString &name,
   const UString &tag,
   Connection::ProxyType 
      proxyType = Connection::PROXY_DEFAULT);
接続プールからロール指定付きでプロキシ接続を取得します(UStringのサポートの場合)。

パラメータ 説明
name
ユーザー名を指定します。
roles
データベース・サーバー上でアクティブにするロールを指定します。
numRoles
データベース・サーバー上でアクティブにするロール数を指定します。
tag
接続に関連付けられているユーザー定義タグを指定します。
proxyType
実行するプロキシ認証の種類を指定します。ProxyTypeの定義は、表13-11を参照してください。

getBusyConnections()

接続プール内のビジー接続数を戻します。データベース常駐接続プーリングを使用する場合、この数値は、接続ブローカへの永続的な接続の数となります。

構文

unsigned int getBusyConnections() const=0;

getBusyOption()

プール内の接続がすべてビジーな場合、および最大接続数に達している場合、ステートレスな接続プールの動作を戻します。戻り値の定義については、表13-41BusyOptionを参照してください。

構文

BusyOption getBusyOption()=0; 
 

getConnection()

StatelessConnectionPoolの接続オブジェクトへのポインタを戻します。

このメソッドは、データベース常駐接続プーリングが有効化された環境で動作します。

構文 説明
Connection *getConnection()=0;
外部認証できる接続を戻します。
Connection *getConnection(
   string &tag="")=0;
接続プールのユーザー名およびパスワードを使用して認証済接続を戻します(stringのサポートの場合)。
Connection* getConnection(
   const UString &tag)=0;
接続プールのユーザー名およびパスワードを使用して認証済接続を戻します(UStringのサポートの場合)。
Connection *getConnection(
   const string &userName,
   const string &password,
   const string &tag="")=0;
異機種間ステートレス接続プールから接続オブジェクトへのポインタを戻します(stringのサポートの場合)。
Connection* getConnection(
   const UString &userName,
   const UString &password,
   const UString &tag)=0;
異機種間ステートレス接続プールから接続オブジェクトへのポインタを戻します(UStringのサポートの場合)。
Connection *getConnection(
   const string &connectionClass,
   const Connection::Purity &purity)=0;
データベース常駐接続プールから接続オブジェクトへのポインタを戻します(stringのサポートの場合)。
Connection* getConnection(
   const UString &connectionClass,
   const Connection::Purity &purity)=0;
データベース常駐接続プールから接続オブジェクトへのポインタを戻します(UStringのサポートの場合)。
Connection *getConnection(
   const string &userName,
   const string &password,
   const string &connectionClass,
   const Connection::Purity &purity)=0;
データベース常駐接続プールから接続オブジェクトへのポインタを戻します(ユーザー名およびパスワード認証。stringのサポートの場合)。
Connection* getConnection(
   const UString &userName,
   const UString &password,
   const UString &connectionClass,
   const Connection::Purity &purity)=0;
データベース常駐接続プールから接続オブジェクトへのポインタを戻します(ユーザー名およびパスワード認証。UStringのサポートの場合)。
Connection *getConnection(
   const string &connectionClass,
   const Connection::Purity &purity,
   const string &tag)=0;
データベース常駐接続プールからタグ付き接続オブジェクトを戻します(stringのサポートの場合)。
Connection* getConnection(
   const UString &connectionClass,
   const Connection::Purity &purity,
   const UString &tag)=0;
データベース常駐接続プールからタグ付き接続オブジェクトを戻します(UStringのサポートの場合)。

パラメータ 説明
userName
データベース・ユーザー名を指定します。
password
データベースのパスワードを指定します。
tag
接続に関連付けられているユーザー定義タグを指定します。このコール時には、指定のタグに基づいて最初にプールが検索されます。指定したタグを持つ接続が存在する場合はその接続が戻され、それ以外の場合は接続が新規に作成され、戻されます。
connectionClass
データベース常駐接続プールで使用される接続のクラスを指定します。
purity
データベース常駐接続プールで使用される接続の純正値を指定します。SELFまたはNEWのいずれかとなります。

getIncrConnections()

接続プール内の増分接続数を戻します。このコールが役立つのは、同種接続プールの場合のみです。データベース常駐接続プーリングを使用する場合、この数値は、接続ブローカへの永続的な接続の数となります。

構文

unsigned int getIncrConnections() const=0;

getMaxConnections()

接続プール内の最大接続数を戻します。データベース常駐接続プーリングを使用する場合、この数値は、接続ブローカへの永続的な接続の数となります。

構文

unsigned int getMaxConnections() const=0;

getMinConnections()

接続プール内の最小接続数を戻します。データベース常駐接続プーリングを使用する場合、この数値は、接続ブローカへの永続的な接続の数となります。

構文

unsigned int getMinConnections() const=0;

getOpenConnections()

接続プール内のオープン接続数を戻します。データベース常駐接続プーリングを使用する場合、この数値は、接続ブローカへの永続的な接続の数となります。

構文

unsigned int getOpenConnections() const=0;

getPoolName()

接続プールの名前を戻します。

構文

string getPoolName() const=0;

getProxyConnection()

接続プールからプロキシ接続を戻します。

このメソッドは、データベース常駐接続プーリングが有効化された環境で動作します。

構文 説明
Connection *getProxyConnection(
   const string &userName,
   string roles[],
   unsigned int numRoles,
   const string& tag="",
   Connection::ProxyType 
      proxyType=Connection::PROXY_DEFAULT)=0;
接続プールからロール指定付きでプロキシ接続を取得します(ロールのサポートとstringのサポートの場合)。
Connection* getProxyConnection(
   const UString &userName,
   UString roles[], 
   unsigned int numRoles, 
   const UString &tag, 
   Connection::ProxyType 
      proxyType = Connection::PROXY_DEFAULT);
接続プールからロール指定付きでプロキシ接続を取得します(ロールのサポートとUStringのサポートの場合)。
Connection *getProxyConnection(
   const string &userName,
   const string &connectionClass,
   const Connection::Purity &purity)=0;
データベース常駐接続プールからプロキシ接続を取得します(stringのサポートの場合)。
Connection *getProxyConnection(
   const UString &userName,
   const UString &connectionClass,
   const Connection::Purity &purity)=0;
データベース常駐接続プールからプロキシ接続を取得します(UStringのサポートの場合)。
Connection *getProxyConnection(
   const string &userName,
   string roles[],
   unsigned int numRoles,
   const string &connectionClass,
   const Connection::Purity &purity)=0;
接続プールからロール指定付きでプロキシ接続を取得します(ロールのサポートおよびデータベース常駐接続プーリング。stringのサポートの場合)。
Connection* getProxyConnection(
   const UString &userName,
   UString roles[], 
   unsigned int numRoles, 
   const UString &connectionClass,
   const Connection::Purity &purity)=0;
接続プールからロール指定付きでプロキシ接続を取得します(ロールのサポートおよびデータベース常駐接続プーリング。UStringのサポートの場合)。
Connection *getProxyConnection(
   const string &userName,
   const string& tag="",
   Connection::ProxyType 
      proxyType=Connection::PROXY_DEFAULT)=0;
接続プールからロール指定なしでプロキシ接続を取得します(stringのサポートの場合)。
Connection* getProxyConnection(
   const UString &userName,
   const UString &tag,
   Connection::ProxyType 
   proxyType = Connection::PROXY_DEFAULT)
接続プールからロール指定なしでプロキシ接続を取得します(UStringのサポートの場合)。

パラメータ 説明
userName
ユーザー名を指定します。
roles
データベース・サーバー上でアクティブにするロールを指定します。
numRoles
データベース・サーバー上でアクティブにするロール数を指定します。
tag
接続に関連付けられているユーザー定義タグを指定します。このコールの実行時に、最初にプールが指定のタグに基づいて検索されます。指定したタグを持つ接続が存在する場合はその接続が戻され、それ以外の場合は接続が新規に作成され、戻されます。
proxyType
実行するプロキシ認証の種類を指定します。ProxyTypeの定義は、表13-11を参照してください。
connectionClass
データベース常駐接続プールで使用される接続のクラスを指定します。
purity
データベース常駐接続プールで使用される接続の純正値を指定します。SELFまたはNEWのいずれかとなります。

getStmtCacheSize()

文キャッシュのサイズを取得します。

構文

unsigned int getStmtCacheSize() const=0;

getTimeOut()

接続プール内の接続のタイムアウト間隔を戻します。

構文

unsigned int getTimeOut() const=0;

releaseConnection()

オプションのタグを指定してプールに接続を解放します。

このメソッドは、データベース常駐接続プーリングが有効化された環境で動作します。

構文 説明
void releaseConnection(
   Connection *connection,
   const string& tag="");
stringタグをサポートする場合です。
void releaseConnection(
   Connection *connection,
   const UString &tag);
UStringタグをサポートする場合です。


パラメータ 説明
connection
解放する接続を指定します。
tag
接続に関連付けられているユーザー定義タグを指定します。このパラメータのデフォルトは""で、接続のタグを削除します。

setBusyOption()

プール内の接続がすべてビジーな場合、および最大接続数に達している場合、ステートレスな接続プールの動作を指定します。

構文

void setBusyOption( 
   BusyOption busyOption)=0;
パラメータ 説明
busyOption
有効な値の定義は、表13-41BusyOptionを参照してください。

setPoolSize()

接続プールについて、最大、最小および増分のプール接続数を設定します。

構文

void setPoolSize( 
   unsigned int maxConn=1,
   unsigned int minConn=0,
   unsigned int incrConn=1)=0;
パラメータ 説明
maxConn
接続プール内の最大接続数を指定します。
minConn
同種接続プール内に限った最小接続数を指定します。
incrConn
同種接続プール内に限った増分接続数を指定します。

setTimeOut()

接続プール内の接続のタイムアウト間隔を設定します。OCCIは、アイドル時間が指定タイムアウト間隔を超えている、この接続プールに関連している接続を、すべて終了します。

この属性が設定されていない場合、プール領域が必要になると、最も以前に使用された接続がタイムアウトになります。Oracleでは、プールに接続を解放する際に、タイムアウトの接続の有無のみをチェックします。

構文

void setTimeOut( 
   unsigned int connTimeOut=0)=0;
パラメータ 説明
connTimeOut
タイムアウト間隔を秒数で指定します。

setStmtCacheSize()

文キャッシュを有効化または無効化します。0 (ゼロ)以外の値を指定すると、指定したサイズのキャッシュによる文キャッシュが有効化されます。値0 (ゼロ)を指定すると、キャッシュが無効化されます。

ユーザーが個々の接続のキャッシュ・サイズを変更し、タグを付けてプールに戻した場合、キャッシュ・サイズはプールに対して設定されている値には戻りません。接続のタグを解除すると、キャッシュ・サイズはプールに指定されているキャッシュ・サイズにリセットされます。

構文

void setStmtCacheSize(
   unsigned int cacheSize)=0;
パラメータ 説明
cacheSize
文キャッシュのサイズを指定します。

terminateConnection()

接続をクローズしてプールから削除します。

このメソッドは、データベース常駐接続プーリングが有効化された環境で動作します。

構文

void terminateConnection( 
   Connection *connection)=0;
パラメータ 説明
connection
終了する接続を指定します。