Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー データベース管理 » データベースの開始とデータベースへの接続 » SQL Anywhere データベース接続

 

接続プーリング

接続プールによって、データベースサーバーに対して複数の短時間接続を行うアプリケーションのパフォーマンスが向上する可能性があります。接続プールが接続に対して有効になっていると、接続は切断されたときに自動的にキャッシュされ、アプリケーションが再接続された時点で再利用できます。接続プールは、ConnectionPool (CPOOL) 接続パラメーターで制御します。同じ接続文字列を使用してアプリケーションで指定回数の接続を行うと、接続がプールされます。

接続をキャッシュするには、同じ接続文字列を使用してアプリケーションで最低でも 5 回の接続を行う必要があります。キャッシュされた接続を再利用するには、接続名はそのつどユニークでもかまいませんが、他のすべての接続パラメーターは同じにする必要があります。

アプリケーションで接続を再度処理するときに、同じ接続文字列に対して使用できる接続がキャッシュされている場合は、キャッシュされた接続が再利用されます。接続は、ConnectionPool (CPOOL) 接続パラメーターで指定された期間中、キャッシュされた状態のままになります (デフォルトでは 60 秒)。

アプリケーションの動作に変更があると、キャッシュされた接続は再利用されません。たとえば、キャッシュされた接続は、次の場合に再利用されません。

  • 接続が存在しないときに自動的に停止するデータベースの場合。

  • 接続が無効になっている場合。

  • データベースサーバーが接続制限値に達した場合。

  • パスワードが変更された場合。

アプリケーションに対して接続プーリングを透過的にするため、接続のキャッシュ時に障害が発生した場合には接続が切断されます。キャッシュされた接続を再利用しようとするときに障害が発生すると、データベースサーバーで通常の接続が行われます。

接続が切断され、CPOOL 接続パラメーターで指定された最大接続数に達していない場合は、接続がキャッシュされます。接続が再初期化されます。接続はアプリケーションによって切断されますが、キャッシュされた接続はデータベースサーバーに接続したままになります。接続のクリーンアップと再初期化には、次の処理が含まれます。

  • 未処理のすべてのトランザクションのロールバック。

  • テンポラリテーブル、テンポラリ関数、変数の削除。

  • 接続オプションと接続カウンターーのリセット。

  • データベースサーバーの接続カウントの増分と減分。キャッシュされた接続があるデータベースサーバーが停止した場合、アクティブな接続があることは通知されません。

  • 定義済みのすべての切断イベントと接続イベントの実行。

  • login_procedure データベースオプションの実行とログインポリシーの検証。

  • 接続 ID のリセット。

 他の接続プール製品での SQL Anywhere 接続プールの使用
 接続プールと読み込み専用のスケールアウト
 参照