2010-05-17 174 views
1

我從開發人員那裏繼承了一套.Net c#應用程序,它與Unix服務器上的Informix數據庫進行通信。ODBC連接池

代替使用通常的管理數據庫連接的方法(一次性模式/「開放遲到/關閉早期」),代碼似乎在每個應用程序加載並且未關閉時打開一個ODBC連接。

是否有任何方法可以查看打開了多少個ODBC連接?

我正在嘗試重構應用程序中的代碼以使用.NET最佳做法,但由於當前代碼正常工作而遇到阻力。

+0

當連接未被使用時,.NET框架使用連接池。但連接在啓動時打開並在結束時關閉。所以,彙集不可能有效。 – Kangkan 2010-05-17 14:29:04

+0

使用什麼ODBC驅動程序?根據ODBC驅動程序的類型,池化工作方式可能有所不同 – IMHO 2010-05-17 15:43:54

回答

1

您可以在ODBC管理器中啓用ODBC跟蹤,啓動應該打開請求的池連接的ODBC連接。編輯ODBC跟蹤文件文件,並且可以調用SQLConnect或SQLDriverConnect調用的數量,以提供應用程序所做的ODBC連接總數。任何發生的SQLDisconnect都表示連接已關閉,應該考慮連接的總數...

+0

謝謝。 我做到了這一點,並能夠看到同時打開一些應用程序,超過25個連接在我自己的機器上保持打開狀態。 – Beansy 2010-05-18 09:33:05

2

「但我遇到了阻力,因爲當前的代碼有效。」

給予阻力者+1。

如果確實需要正確支持所需的功能,而且沒有任何性能問題,那麼沒有任何問題,如果沒有任何問題被破壞,則無需修復。

我見過太多編碼雅皮士搞砸了工作系統,因爲他們認爲他們知道「更好」的方式來組織代碼。

如果您確信您的代碼組織方式(您所稱的「最佳實踐」)與現有系統中應用的代碼相比具有任何優勢,請將其應用於新項目中以向企業展示。如果確實有明顯的好處,那麼相信我,用戶會注意到。如果沒有,那麼你已經被教授了一個非常重要的教訓,即「哪種編碼方式是最好的」並不重要。

+0

當我說當前的代碼有效時,這個項目正在進行,產品還沒有發佈給用戶。路線圖中的新功能由於現有代碼庫的設計/實施方式而變得更加難以實施。 我想重構代碼的原因是爲了使它更易於維護,並使我們能夠引入單元測試,因爲我相信這將爲我們節省將來的時間和金錢。 感謝您的咆哮...... – Beansy 2010-05-18 09:27:51