巧用數(shù)據(jù)庫(kù)連接監(jiān)控組件解決關(guān)閉問(wèn)題
一,解決方案圖
DBConnectionManage.config: 配置文件,配置兩個(gè)節(jié)點(diǎn),一個(gè)是組件監(jiān)視連接的***數(shù)量一個(gè)是系統(tǒng)控制連接的有效時(shí)間
MConnectionWrap:這個(gè)是被監(jiān)視對(duì)象的封裝類,包括連接、過(guò)期時(shí)間、開(kāi)啟連接的業(yè)務(wù)類的監(jiān)視器(GCHandle)
DBConnectionMonitor:連接監(jiān)視主類,提供添加監(jiān)視對(duì)象到一個(gè)字典里,后臺(tái)線程循環(huán)遍歷字典去處理被監(jiān)視的對(duì)象
TestConnectionMonitor:這個(gè)項(xiàng)目是測(cè)試示例以及如何使用連接監(jiān)視器的示例代碼
總體思路:在我們的業(yè)務(wù)類往往有開(kāi)啟連接的操作,在開(kāi)啟連接后同時(shí)把連接加入到監(jiān)視器里,然后監(jiān)視器會(huì)根據(jù)連接所在業(yè)務(wù)類的狀態(tài)和設(shè)置的連
接有效期來(lái)進(jìn)行處理(關(guān)閉連接,移除被監(jiān)視對(duì)象)
二,效果圖
三,代碼下載
原文鏈接:http://www.cnblogs.com/oldhu/archive/2012/09/25/2701788.html
【編輯推薦】