在開發分散式資料庫軟體時,經常碰到下面的錯誤:
伺服器: 訊息 7391,層級 16,狀態 1,行 6
該操作未能執行,因為 OLE DB 提供者 'SQLOLEDB' 無法啟動分
布式事務。
[OLE/DB provider returned message: 不能在指定的交易處理器中
獲得新事務。]
-----------------------------------------
伺服器: 訊息 8520,層級 20,狀態 1,行 8
內部 MSDTC 事務的提交失敗: Result Code = 0x8004d019。
串連中斷
-----------------------------------------
搜尋了網上類似問題的解決方案,都建議採用下面的方法(方法一):
1、運行 regedt32,瀏覽至 HKEY_LOCAL_MACHINE oftwareMicrosoftMSDTC。
添加一個 DWORD 值 TurnOffRpcSecurity,值資料為 1。
2、重啟MS DTC服務。
3、開啟“管理工具”的“元件服務”。
a. 瀏覽至"啟動管理工具"。
b. 選擇"元件服務"。
c. 展開"元件服務"樹,然後展開"我的電腦"。
d. 按右鍵"我的電腦",然後選擇"屬性"。
在 MSDTC 選項卡中,確保選中了下列選項:
網路 DTC 訪問 網路管理 網路事務XA 交易
另外,"DTC 登入帳戶"一定要設定為"NT AuthorityNetworkService"。4、重啟MS DTC服務。
5、再次運行 regedt32,瀏覽至 HKEY_LOCAL_MACHINE oftwareMicrosoftMSDTC,然後刪除 TurnOffRpcSecurity 項。
但是實際上該方法基本上解決不了問題,經過長時間的反覆實踐,我終於按下面的方法解決了:
(方法二)
1、按照方法一的方法處理一遍,如果不行,再繼續下面的方法
2、安裝windows 2003 sp1,安裝好後,方法一中的第4步設定對話方塊和原來不一樣了,選擇“交易管理通訊”中的“不要求驗證”
3、最好安裝好MDAC2.8
3、通過尋找,在C:找到名為“hosts”的檔案(沒有副檔名),通常路徑為C:WINDOWSsystem32driversetc,將對方伺服器的IP和電腦對應起來,參考如下:
========================================
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
# www.knowsky.com
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
http://www.bkjia.com/PHPjc/631241.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631241.htmlTechArticle在開發分散式資料庫軟體時,經常碰到下面的錯誤: 伺服器: 訊息 7391,層級 16,狀態 1,行 6 該操作未能執行,因為 OLE DB 提供者 'SQLOL...