Delphi 7アプリケーションでプーリングを有効にするには何が必要ですか?私の接続文字列は次のとおりです。Delphi 7アプリケーションでOLEDBリソースプーリングを有効にする方法
プロバイダ= SQLOLEDB.1;初期カタログ=%sの;データソース=%sの;パスワード=%sの;ユーザID =%sの; OLE DBサービス= -1は
私ができますSQLServer:GeneralStatistics UserConnectionsパフォーマンスカウンタを見て、接続プーリングが達成されていないことを伝えてください。アプリケーションが実行されると、これは大きく変動します。接続プーリングでは、安定した状態を達成することが期待されます。また、Logins/secとLogouts/secカウンタが両方とも非常に高いことがわかります。接続プーリングが使用されている場合、Logouts/secはゼロまたはほぼゼロになります。私は、リソースプーリングこの記事見つかっ検索で
:それはあなたがOLEDB SDK(またはCOM)で作業している場合」ことを示唆している
http://www.ddj.com/database/184416942
は、ATLを使用して、レベル、あなたはいくつかのより多くのコードを記述する必要があります"(接続文字列にOLE Db Services = -1を追加する以外は)接続プールを取得するには
CDataSource db; CDBPropSet dbinit(DBPROPSET_DBINIT);
dbinit.AddProperty(DBPROP_AUTH_USERID、 "MyName); dbinit.AddProperty(DBPROP_INIT_DATASOURCE、" MyServer); dbinit.AddProperty(DBPROP_INIT_CATALOG、「MYDB); dbinit.AddProperty(DBPROP_INIT_PROMPT、(短い)4); dbinit.AddProperty(DBPROP_INIT_LCID、(長い)1033); dbinit.AddProperty(DBPROP_INIT_OLEDBSERVICES、(長い)DBPROPVAL_OS_ENABLEALL)。 HRESULT時間= db.OpenWithServiceComponents(_T(「SQLOLEDB」)、&のdbinit);
残念ながら、そのコードは私にはギリシャ語であると私は、Delphi(またはその必要さえあれば)にそれを変換するかどうかはわかりません。
接続文字列をまったく変更しないように注意してください。リソースプーリングを有効にするために他に何が必要なのでしょうか?
しかし、実際にサーバーへの接続を閉じずにコードを開いたり閉じたりする接続プーリングの機能はありませんか?私がIISで同じコードを実行すると、アプリケーションの存続期間が最後であるDbサーバーへの2つの接続が作成されます。 –
これは、既存の最近アクティブな接続の再利用によるものです。カウントが0になったとします...あなたはプールがデータベースへの接続を開いたままにしておくべきと思いますか?ゼロで、私はそれがクリーンアップを開始し、最終的にすべての接続を終了すると信じています。私は正確な時間枠をテストしていない。 –
Darianに感謝します。IISがいくつかの接続を開いている理由を説明します。私は答えとしてマークし、テストがそうでないことを証明するならば編集します。 –