解決windows 2003+Sql2000中OLEDB分布式事務(wù)無法啟動(dòng)的解決方案
在開發(fā)分布式數(shù)據(jù)庫軟件時(shí),經(jīng)常碰到下面的錯(cuò)誤:服務(wù)器: 消息 7391,級(jí)別 16,狀態(tài) 1,行 6該操作未能執(zhí)行,因?yàn)?OLE DB 提供程序 'SQLOLEDB' 無法啟動(dòng)分布式事務(wù)。[OLE/DB provider returned message: 不能在指定的事務(wù)處理器中獲得新事務(wù)。]-----------------------------------------服務(wù)器: 消息 8520,級(jí)別 20,狀態(tài) 1,行 8內(nèi)部 MSDTC 事務(wù)的提交失敗: Result Code = 0x8004d019。
連接中斷-----------------------------------------搜索了網(wǎng)上類似問題的解決方案,都建議采用下面的方法(方法一):1、運(yùn)行 regedt32,瀏覽至 HKEY_LOCAL_MACHINE oftwareMicrosoftMSDTC。添加一個(gè) DWORD 值 TurnOffRpcSecurity,值數(shù)據(jù)為 1。2、重啟MS DTC服務(wù)。3、打開“管理工具”的“組件服務(wù)”。 a. 瀏覽至'啟動(dòng)管理工具'。;b. 選擇'組件服務(wù)'。;c. 展開'組件服務(wù)'樹,然后展開'我的電腦'。;d. 右鍵單擊'我的電腦',然后選擇'屬性'。;;在 MSDTC 選項(xiàng)卡中,確保選中了下列選項(xiàng): 網(wǎng)絡(luò) DTC 訪問 網(wǎng)絡(luò)管理 網(wǎng)絡(luò)事務(wù)XA 事務(wù)另外,'DTC 登錄帳戶'一定要設(shè)置為'NT AuthorityNetworkService'。4、重啟MS DTC服務(wù)。5、再次運(yùn)行 regedt32,瀏覽至 HKEY_LOCAL_MACHINE oftwareMicrosoftMSDTC,然后刪除 TurnOffRpcSecurity 項(xiàng)。
但是實(shí)際上該方法基本上解決不了問題,經(jīng)過長(zhǎng)時(shí)間的反復(fù)實(shí)踐,我終于按下面的方法解決了:(方法二)1、按照方法一的方法處理一遍,如果不行,再繼續(xù)下面的方法2、安裝windows 2003 sp1,安裝好后,方法一中的第4步設(shè)置對(duì)話框和原來不一樣了,選擇“事務(wù)管理通訊”中的“不要求驗(yàn)證”3、最好安裝好MDAC2.83、通過查找,在C:找到名為“hosts”的文件(沒有擴(kuò)展名),通常路徑為C:WINDOWSsystem32driversetc,將對(duì)方服務(wù)器的IP和計(jì)算機(jī)對(duì)應(yīng)起來,參考如下:========================================# Copyright (c) 1993-1999 Microsoft Corp.## This is a sample HOSTS file used by Microsoft TCP/IP for Windows.# www.mypchelp.cn# This file contains the mappings of IP addresses to host names. Each# entry should be kept on an individual line. The IP address should# be placed in the first column followed by the corresponding host name.# The IP address and the host name should be separated by at least one# space.## Additionally, comments (such as these) may be inserted on individual# lines or following the machine name denoted by a '#' symbol.## For example:##;;;102.54.94.97;;rhino.acme.com; # source server#;;;;38.25.63.10;;x.acme.com;;;# x client host
127.0.0.1 localhost192.168.1.2 中心192.168.1.3 西站192.168.106.35 信息中心2=============================================一定要將每臺(tái)服務(wù)器的hosts文件都修改好通過以上辦法,我的分布式就可以正常運(yùn)行了,速度也非常快
