2017-10-17 148 views
0

我已經編程了幾年,我們有一個默認的dll用於數據訪問。最近似乎在這裏發生了一些數據挖掘或網站抓取,雖然我們的SQL數據庫連接沒有問題,但許多訪問as/400的程序仍在長時間保持連接打開並閒置時間。我查看了我們的默認數據訪問DLL並添加了代碼來關閉每個函數後的連接,但這並沒有幫助。我對db2/as/400沒有多少經驗......如何從代碼中關閉所有這些打開/空閒連接?程序不關閉連接到db2400/as/400

+0

在處理數據庫連接時,應該總是使用'using'。這將確保正確關閉連接和處理物體。請參閱https://stackoverflow.com/questions/5243398/will-a-using-block-close-a-database-connection – VDWWD

+0

我們正在使用'使用',但我讀到,實際上可能是問題的一部分,當處理as/400 - 可能嗎? – deebs

回答

1

如果您正在使用連接池,則按設計工作。

您確定連接實際打開嗎?你如何確定?

如果您只看到IBM i上的QZDASOINIT作業存在鎖定,那麼這也是設計。第一次使用後,系統將很難關閉表格(光標)。當再次使用相同的工作時,系統只會僞造它們;以便在重新使用時提供更快的響應。

如果試圖進行需要獨佔訪問的操作,系統將硬關閉僞關閉遊標。

+0

我相信我們正在使用連接池。我想把它作爲一個測試 - 會有什麼影響? – deebs

+1

@deebs,只是性能下降......因爲新的連接將被重複打開/關閉。 – Charles