背景:
我正在使用C++編寫的程序,該程序在SQL Native Client上使用ODBC建立與SQL Server 2000數據庫交互的連接。SQL本機客戶端ODBC應用程序在SQLDisconnect和不共享後不斷開連接?
問題:
我的連接被抽象成其打開時該對象被實例化的連接,並且當所述對象被銷燬關閉連接的對象。我可以看到對象正在被銷燬:它們的析構函數正在被觸發,在這些析構函數內部SQLDisconnect(ConnHandle)
被調用,然後是SQLFreeHandle(SQL_HANDLE_DBC, ConnHandle);
然而,使用sp_Who2
或SQL中的性能監視器來觀察連接數顯示連接數量不增加,儘管這些連接被破壞。
直到執行足夠長的功能鏈才能創建幾千個這樣的對象,並且因此可以連接數千個連接,這個問題還沒有被證明是有問題的。
問題:
有沒有人見過這樣的事情?什麼可能導致這種情況?我最初的谷歌搜索沒有證明非常有成果!
編輯:
我已驗證SQLDisconnect
沒有錯誤返回。
連接池已關閉。實際上,當我嘗試使用SQLSetEnvAttr
啓用它時,我的應用程序在第二次調用SQLDriverConnect
時崩潰。
謝謝你的迴應。我已經爲我的問題添加了一個編輯來解決您的問題。 – antik 2008-12-23 00:02:30