ページの先頭行へ戻る
Symfoware Server V10.0.0 アプリケーション開発ガイド(ODBCドライバ編)

2.1.2 ODBCコネクションプーリング機能

ODBCコネクションプーリング機能について説明します。

ODBCコネクションプーリング機能とは

ODBCコネクションプーリング機能 (以降、プーリング機能と呼びます)とは、アプリケーションから切断要求されたコネクションをプール中に保存しておき、次の接続要求があった場合に再利用する機能で、ODBCドライバマネージャが提供しています。

インターネット環境では、数多くのパソコン上のWebブラウザからアクセス要求が発生し、Symfoware/RDBのデータベースへの接続および切断が繰り返されます。この状況下でプーリング機能を利用すると、コネクションが再利用されてパフォーマンスが向上します。

ODBCコネクションプーリング機能リソースプーリング機能

ADOやADO.NETを利用した場合には、ODBCドライバマネージャが提供するプーリング機能の他に、OLE DBコアコンポーネントが提供するリソースプーリング機能を利用することができます。プーリング機能とリソースプーリング機能の同時使用はできません。

ODBCドライバマネージャが提供するプーリング機能では、プール中の使用されていないコネクションを自動的に解放するまでの時間(プーリング時間)を指定することができます。一方、OLE DBコアコンポーネントが提供するリソースプーリング機能では、プーリング時間を指定することができず、OS任せになります(長時間接続されたままになります)。Webサーバへの電文を遮断してSymfoware/RDBのデータベースの保守を行うケースを想定して、プーリング時間を指定できるODBCドライバマネージャのプーリング機能を利用することを推奨します。


以降では、ODBCドライバマネージャが提供するプーリング機能の利用方法について説明しています。

プーリング機能を利用するための事前準備

プーリング機能を有効にするには、ODBCデータソースアドミニストレータを設定する必要があります。

設定する情報は以下のとおりです。

CPTimeout

CPTimeout値が示す時間が経過すると、保持していたコネクションが自動的に解放されます。初期値は60秒です。0を指定すると、プーリング機能は無効になります。

Retry Wait

Retry Wait値は、サーバが応答していないと判断された時に接続プールがブロックされる時間の長さ(秒単位)です。プールの中に不良な接続がある場合、ODBCドライバマネージャは、接続が最初に再使用される前に接続を試行します。なお、接続が再度失敗した場合、ODBCドライバマネージャはエラーを返し、接続を時間でマークします。その時点からRetry Wait値が期限切れになるまで、ODBCドライバマネージャは、接続を試行することなく、失敗を返します。初期値は120秒です。

ODBCデータソースアドミニストレータの設定方法

ODBCデータソースアドミニストレータは、以下の手順で設定します。

なお、設定方法については、“ODBCデータソースアドミニストレータ 3.5”を例にとって説明します。

  1. Windows(R)のコントロールパネルから、ODBCを実行します。

  2. [接続プール]タブを選択します。

  3. プーリング機能の利用状況が確認できるようにする場合は、[パフォーマンスモニタ]セクションで[有効にする]を選択します。

  4. Retry Wait値を変更する場合は、[再試行までの待ち時間]セクションに秒単位で指定します。

  5. [接続プールのタイムアウト]セクションで、Symfoware ODOSまたはSymfoware ODOS(UniCode)をダブルクリックします。

  6. [このドライバに接続をプールする]を選択します。

  7. CPTimeout値を変更する場合は、[未使用の接続がプール内に保持される時間]に秒単位で指定します。

  8. [OK]をクリックします。

アプリケーションの記述

プーリング機能は、Visual Basicの初期値では無効に設定されています。

したがって、プーリング機能を有効にするためにアプリケーションは、コネクションを接続する前にSQLSetEnvAttr関数を発行する必要があります。また、SQLDriverConnect関数を使用して接続を行う場合は、SQL_DRIVER_NOPROMPTパラメタを指定する必要があります。プールされたコネクションは、同一のドライバの間でのみ再利用することができます。

注意

IIS、Visual Basic.NETの初期値では、プーリング機能は有効に設定されています。したがって、コネクションを接続する前にSQLSetEnvAttr関数を発行する必要はありません。

プーリング機能の確認方法

以下の方法でプーリング機能の状態を確認することができます。

以下のようなカウンタが[ODBC Connection Pooling]オブジェクトの下に表示されます。

プーリング機能の利用上の注意事項

以下にプーリング機能を利用する場合の注意点を示します。