考慮下面的代碼:AdsConnection未關閉?
private static void GetData<TConnection, TCommand>(string connectionString, DataTable dataFromDbf, string commandText)
where TConnection : IDbConnection
where TCommand : IDbCommand {
using(IDbConnection oConn = GetConnection<TConnection>(connectionString)) {
oConn.Open();
IDbCommand oCmd = oConn.CreateCommand();
oCmd.CommandText = commandText;
dataFromDbf.Load(oCmd.ExecuteReader());
oConn.Close();
}
}
的方法是通用的,因爲不是所有的客戶有Adavatage DB服務器,我們需要回落到一個OleDbConnection。 然而,在大多數情況下,我們使用AdsConnection對象(來自Advantage.Data.Provider.dll)。
上面的代碼關閉連接,並在退出using語句時丟棄對象。
當我們使用Advantage Management Utility查看Ads服務器上的所有連接時,我們注意到連接保持打開狀態。但不是所有的!我們稱該方法可能爲200次,只有少數保持打開狀態,有時會超過客戶端MAX_CONNECTIONS。我們可以解決這個問題,謝謝Jens Mühlenhoff。
的問題是:
爲什麼不調用oConn.Close()當連接緊密?任何人有任何想法?
超。調用FlushConnectionPool()做到了。謝謝。 – user1393612