全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 ページ
公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
pooledDbManager クラス

コネクションプールのデータベースマネージャ [詳解]

#include <pooledDatabaseManager.h>

+ pooledDbManager の継承関係図

公開メンバ関数

 pooledDbManager ()
 
 pooledDbManager (const connectParams *param)
 
 ~pooledDbManager ()
 
void abortTrn ()
 
void beginSnapshot (short bias=CONSISTENT_READ, binlogPos *bpos=NULL)
 
void beginTrn (short bias)
 
uchar_td * clientID () const
 
databasedb () const
 
int enableTrn ()
 
void endSnapshot ()
 
void endTrn ()
 
bool isOpened () const
 
bool isUseXa () const
 
char_td mode () const
 
__int64 option ()
 
void reset (int v)
 
void setOption (__int64 v)
 
void setUseXa (bool v)
 
short_td stat () const
 
table_ptr table (const _TCHAR *name)
 
void unUse ()
 
const _TCHAR * uri () const
 
void use (const connectParams *param=NULL)
 
int usingCount () const
 
- 基底クラス idatabaseManager に属する継承公開メンバ関数
virtual ~idatabaseManager ()
 

静的公開メンバ関数

static int maxConnections ()
 
static void reserve (size_t size, const connectParams &param)
 
static void setMaxConnections (int maxWorkerNum)
 

詳解

コネクションプールのデータベースマネージャ

プロセスに唯一実装されるコネクションプールからデータベースを利用するためのデータベースマネージャです。
このクラスは、Webアプリケーションで、コネクションプールを使用する際にデータベースとテーブルの取得、管理に使います。
C++から利用する場合は、プロジェクトにconnectionPool.cppを加えてください。tdclcpp内には含まれていません。
始めに、プロセス開始後に static pooledDbManager::setMaxConnections() を呼び出してプールするコネクション数を設定します。 データベースの接続要求時に、利用可能なデータベースがない場合、最大 setMaxConnections() まで新しい接続を開始します。一度接続がされると、プロセスが終了するまで接続を終了することなく再利用されます。
既に、プールされた接続が最大数に達しさらに要求があった場合は、どれか他の接続が空きになるまで待機します。
コネクションプールからデータベースを利用する時にこのクラスのインスタンスを生成し、コンストラクタに接続先を渡すか、 use()に接続先を渡すとこのインスタンスが利用可能なデータベースマネージャになります。
pooledDbManagerはスレッドごとにインスタンスを作成してください。pooledDbManager自体はほとんどリソースを持ちません。コネクションプールからの取り出しと返却、一時預かりを担います。 activeTableにこのインスタンスを直接渡せます。
通常のテーブルアクセスする場合は table() 関数にて利用可能な table インスタンスを得ることができます。
データベースの利用が終わったら、 unUse() を呼び出します。これで、この内部データベースがプールに戻され他のスレッドから利用できる状態になります。
また、例外saftyにするため、デストラクタで自動的に unUse() が呼び出されます。

構築子と解体子

pooledDbManager ( )
inline

コンストラクタ。この状態ではまだ利用可能ではありません。利用するめに use() を呼び出してください。

pooledDbManager ( const connectParams param)
inline

コンストラクタ。paramで指定したデータベースをプールからと取り出して利用可能な状態にします。

~pooledDbManager ( )
inline

デストラクタ。 use() が呼ばれ、 unUse() が未呼び出しの場合自動で unUse() を呼び出します。

関数詳解

void abortTrn ( )
inlinevirtual

トランザクションを中止し変更を無効にします。詳しくは nsdatabase::abortTrn() を参照してください。

idatabaseManagerを実装しています。

void beginSnapshot ( short  bias = CONSISTENT_READ,
binlogPos bpos = NULL 
)
inlinevirtual

スナップショットを開始します。詳しくは nsdatabase::beginSnapshot() を参照してください。

idatabaseManagerを実装しています。

void beginTrn ( short  bias)
inlinevirtual

トランザクションを開始します。詳しくは nsdatabase::beginTrn() を参照してください。

idatabaseManagerを実装しています。

uchar_td* clientID ( ) const
inlinevirtual

現在のカレントデータベースのclientIDポインタを返します。

idatabaseManagerを実装しています。

database* db ( ) const
inlinevirtual

現在のカレントデータベースを返します。

idatabaseManagerを実装しています。

int enableTrn ( )
inlinevirtual

トランザクションが開始されているかどうかを返します。

idatabaseManagerを実装しています。

void endSnapshot ( )
inlinevirtual

スナップショットを終了します。詳しくは nsdatabase::endSnapshot() を参照してください。

idatabaseManagerを実装しています。

void endTrn ( )
inlinevirtual

トランザクションをコミットします。詳しくは nsdatabase::endTrn() を参照してください。

idatabaseManagerを実装しています。

bool isOpened ( ) const
inlinevirtual

現在のカレントデータベースがオープンされているかどうかを返します。

idatabaseManagerを実装しています。

bool isUseXa ( ) const
inline

XAトランザクションが有効かどうかを返します。

注釈
現在の実装は完全なXAトランザクションではありません。複数のデータベースがあった場合1回の トランザクション開始終了呼び出しで use() を呼び出したすべてのデータベースのそれを呼び出します。
static int maxConnections ( )
inlinestatic

setMaxConnections() で指定された最大コネクション数を返します。

char_td mode ( ) const
inlinevirtual

現在のカレントデータベースのオープンモードを返します。

idatabaseManagerを実装しています。

__int64 option ( )
inlinevirtual

オプション値を取得します。

idatabaseManagerを実装しています。

static void reserve ( size_t  size,
const connectParams param 
)
inlinestatic

呼び出し元プロセスで利用するparamで指定した接続先のコネクションを事前に作成済みにしプールします。

static bool reset ( int  v)
inlinevirtual

プールされた接続をすべて切断します。waitSecで指定した秒数の間コネクションの開放を待ちます。 その間にすべて開放され切断できた場合はtrueを返します。

idatabaseManagerを実装しています。

static void setMaxConnections ( int  maxWorkerNum)
inlinestatic

呼び出し元プロセスで利用する最大コネクション数を指定します。接続先が複数の場合でもその合計の数を指定してください。

void setOption ( __int64  v)
inlinevirtual

オプション値をセットします。

idatabaseManagerを実装しています。

void setUseXa ( bool  v)
inline

XAトランザクションを使用するかを指定します。

注釈
現在の実装は完全なXAトランザクションではありません。複数のデータベースがあった場合1回の トランザクション開始終了呼び出しで use() を呼び出したすべてのデータベースのそれを呼び出します。
short_td stat ( ) const
inlinevirtual

現在のカレントデータベースの最後のデータベースオペレーションの結果を返します。

idatabaseManagerを実装しています。

table_ptr table ( const _TCHAR *  name)
inlinevirtual

nameで渡されたテーブル名から table オブジェクトを取得して返します。

indexで渡されたテーブル番号から table オブジェクトを取得して返します。

idatabaseManagerを実装しています。

void unUse ( )
inlinevirtual

データベースの利用を終了し、プールに返却します。

idatabaseManagerを実装しています。

const _TCHAR* uri ( ) const
inlinevirtual

現在のデータベースの接続先uriを返します。

idatabaseManagerを実装しています。

void use ( const connectParams param=NULL = NULL)
inlinevirtual

paramで指定した接続先にのデータベースをプールから取り出し利用可能な状態にします。
使用し終わったら unUse() を呼び出してください。 paramがNULLの場合は既にプールされたデータベースから取り出して利用可能な状態にします。このオプションを選択する場合、 reserve() を使用して同じ接続先へのコネクションを事前に作成しておく必要があります。また、プールされたコネクションの接続先はすべて同じであるとの前提になります。接続先が同じであるかのチェックは行われません。

idatabaseManagerを実装しています。

static int usingCount ( ) const
inline

現在使用中のコネクション数を返します。

Transactd SDK 2018年07月31日(火) 19時40分38秒 doxygen