我有這表明與ServiceStack ORMServicestack ORM db.Close()不會終止連接過程
var dbFactory = new OrmLiteConnectionFactory(DB_CONNECTION_STRING, MySqlDialect.Provider);
var db = dbFactory.Open();
Console.WriteLine(db.State.ToString());
db.Close();
db.Dispose();
結果簡單的mysql數據庫連接
Open
但是代碼時,我打了SQL命令
show full processlist;
Id User Host db Command Time State Info Rows_sent Rows_examined
81107052 user1 <111.21.96.32>:51120 my_db Sleep 7 NULL 0 0
81107178 user1 localhost my_db Query 0 init show full processlist 0 0
81107179 user1 localhost my_db Sleep 0 NULL 0 0
該過程與編號81107052
是過程whic h從代碼執行開始,但是進入睡眠狀態,不會以db.Close()終止。 這會觸發<max_connections_reached>
並行應用程序使用錯誤。
那麼如何關閉連接過程?
沒有運氣,仍然是同樣的問題依然存在! – dexterslab
@dexterslab也許它是在你的代碼中的其他地方,你沒有正確處理數據庫連接,也無法與其他線程共享數據庫連接,每個線程都需要解析和處理他們自己的連接。 – mythz
'@mythz在連接字符串中添加'Pooling = false'解決了http://stackoverflow.com/questions/5567097/using-mysqlconnection-in-c-sharp-does-not-close-properly中描述的問題 – dexterslab