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

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ プログラミング » OLE DB と ADO の開発

 

OLE DB 接続プーリング

OLE DB の .NET Framework データプロバイダは、OLE DB セッションプーリングを使用して接続を自動的にプールします。アプリケーションが接続を閉じても、実際には接続は閉じません。代わりに、接続は一定時間保持されます。アプリケーションが接続を再度開くと、ADO/OLE DB では、アプリケーションが同じ接続文字列を使用することを認識し、開いている接続を再使用します。たとえば、アプリケーションで Open/Execute/Close を 100 回実行しても、実際には 1 回開いて、1 回閉じるのみです。最後の閉じる操作は、約 1 分のアイドル時間が経過した後で行われます。

接続が外的手段 (Sybase Central などの管理ツールを使用した強制切断など) で終了した場合は、サーバとの次の対話まで、この状態が発生したことが ADO/OLE DB によって把握されません。強制的に切断する場合は、十分に注意してください。

接続プーリングを制御するフラグは DBPROPVAL_OS_RESOURCEPOOLING (1) です。このフラグは、接続文字列の接続パラメータを使用してオフにできます。

接続文字列で OLE DB Services=-2 と指定すると、接続プーリングが無効になります。サンプル接続文字列を以下に示します。

Provider=SAOLEDB;OLE DB Services=-2;...

接続文字列で OLE DB Services=-4 と指定すると、接続プーリングとトランザクションのエンリストが無効になります。サンプル接続文字列を以下に示します。

Provider=SAOLEDB;OLE DB Services=-4;...

接続プーリングを無効にして、アプリケーションで同じ接続文字列を使用して接続を頻繁に開いたり閉じたりすると、パフォーマンスが低下します。

 参照