自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

封裝ADO類進(jìn)行連接說明介紹

開發(fā) 后端
本文覆蓋了ADO類的特性、結(jié)構(gòu)、以及具體的使用方法等等,相信這些對您掌握這個ADO.NET中核心成員是有所幫助。。。

我本來說封裝的一個ADO類,有興趣的可以去看看,使用還是非常方便,ADO類開發(fā)了一個多線程的網(wǎng)絡(luò)服務(wù)程序a.exe,因?yàn)槁犝fADO不是線程安全的,所以認(rèn)為多線程不能共享連接。

現(xiàn)在的運(yùn)行方式是處理一個客戶請求開啟一個線程,每個線程都會打開一個數(shù)據(jù)庫連接,(線程運(yùn)行結(jié)束的時候,就會關(guān)閉連接)。開始運(yùn)行較為穩(wěn)定,運(yùn)行一兩天之后,打開連接就失敗了,ADO類重起服務(wù)程序之后,就可以連接成功。另外,該服務(wù)程序a.exe需要查詢、插入、更新數(shù)據(jù)庫中的表,同時另一個程序b.exe需要更新同樣的表,web服務(wù)器也要通過ASP查詢、插入這些表。問題如下:

 1)導(dǎo)致連接失敗的原因是什么呢?ADO類打開的連接太多?(最多的時候a.exe有六個線程同時運(yùn)行,但是他們會頻繁的打開、關(guān)閉連接)。聽別人說“連接池”可以解決打開連接太多的帶來的問題,哪位高手解釋一下“連接池”如何實(shí)現(xiàn)?

 2)b.exe在更新表中的記錄的時候,出現(xiàn)錯誤,大意如下:”0x80004005錯誤,spid 65作為事務(wù)死鎖的犧牲品,被禁止了,請重新運(yùn)行事務(wù)”,是不是進(jìn)程間訪問數(shù)據(jù)庫互斥操作導(dǎo)致的?如何解決呢?a.exe和b.exe采用不同的數(shù)據(jù)庫用戶登錄,也不行。事務(wù)死鎖會不會導(dǎo)致連接失敗呢? #t#

3)DB Connection 和 Session有何不同?二者的關(guān)系是什么呢?如何共享Connection呢?如何ADO類實(shí)現(xiàn)?

我已經(jīng)查閱了很多資料,一直沒能解決問題,請各位高手指點(diǎn)幾句。 因?yàn)槲沂切率殖鮼聿榈?,分?jǐn)?shù)有限,等有分了,再加分。 導(dǎo)致連接失敗的原因應(yīng)該是死鎖,這時很多進(jìn)程都在等待其他的進(jìn)程釋放連接,如果死鎖,肯定導(dǎo)致連接失敗 。

連接最好不要放到Session和Application中去,這樣在訪問人數(shù)多的時候容易死鎖,ADO類不是線程共享的,如果ADO類放到Session和Application中,連接一直不能被釋放,而總的連接數(shù)是固定的,其他的程序就一直等待連接的釋放,從而導(dǎo)致請求的隊(duì)列越來越長。

建立一個進(jìn)程共享區(qū),ADO類當(dāng)用戶請求連接并在查詢完成要釋放連接時,不關(guān)閉此連接,而是把這個連接放到共享區(qū)中。下一個用戶請求查詢時,先從共享區(qū)找有無可用連接,如果有,使用該連接查詢,如無,則新建一個,使用完畢后同樣放入共享區(qū)。

這樣帶來的問題:
  1、共享區(qū)里的連接要做保護(hù),以免不同進(jìn)程同時使用一個連接;
  2、要限制共享區(qū)連接的數(shù)目,以免資源耗盡;
  3、要寫一個查詢可用連接的算法。

責(zé)任編輯:chenqingxiang 來源: javaeye.com
相關(guān)推薦

2009-12-29 15:22:40

ADO.NET類庫

2009-12-28 09:58:52

ADO操作

2009-12-25 09:25:54

ADO.NET實(shí)例

2010-01-04 15:37:41

ADO連接

2009-12-24 15:42:01

ADO類庫

2009-12-29 15:30:15

ADO Insert

2010-01-04 16:24:07

ADO連接池

2009-12-18 15:11:50

ADO.NET類

2009-12-31 14:18:46

ADO.NET類庫

2009-12-31 10:16:45

ADO.NET體系結(jié)構(gòu)

2009-08-19 09:36:03

ADO封裝類

2009-12-23 09:55:23

ADO.NET數(shù)據(jù)源

2009-12-24 15:34:44

ADO步驟

2009-12-29 13:46:50

ADO.NET類庫

2009-12-25 17:11:40

ADO方法

2009-12-22 15:08:46

ADO控件

2009-12-30 16:05:20

ADO.NET實(shí)例

2009-12-22 11:17:58

ADO.NET產(chǎn)品

2009-12-28 10:03:58

ADO 對象

2010-01-04 10:27:04

DataTable對象
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號