解決windows 2003+Sql2000中OLEDB分佈式事務無法啓動的解決方案

在開發分佈式數據庫軟件時,經常碰到下面的錯誤:
服務器: 消息 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 oftware/Microsoft/MSDTC。
添加一個 DWORD 值 TurnOffRpcSecurity,值數據爲 1。
2、重啓MS DTC服務。
3、打開“管理工具”的“組件服務”。
    a. 瀏覽至"啓動管理工具"。    b. 選擇"組件服務"。    c. 展開"組件服務"樹,然後展開"我的電腦"。    d. 右鍵單擊"我的電腦",然後選擇"屬性"。     在 MSDTC 選項卡中,確保選中了下列選項:
網絡 DTC 訪問 網絡管理 網絡事務XA 事務
另外,"DTC 登錄帳戶"一定要設置爲"NT Authority/NetworkService"。4、重啓MS DTC服務。
5、再次運行 regedt32,瀏覽至 HKEY_LOCAL_MACHINE oftware/Microsoft/MSDTC,然後刪除 TurnOffRpcSecurity 項。

但是實際上該方法基本上解決不了問題,經過長時間的反覆實踐,我終於按下面的方法解決了:
(方法二)
1、按照方法一的方法處理一遍,如果不行,再繼續下面的方法
2、安裝windows 2003 sp1,安裝好後,方法一中的第4步設置對話框和原來不一樣了,選擇“事務管理通訊”中的“不要求驗證”
3、最好安裝好MDAC2.8

4、安裝netbios協議
5、通過查找,在C:找到名爲“hosts”的文件(沒有擴展名),通常路徑爲C:/WINDOWS/system32/drivers/etc,將對方服務器的IP和計算機對應起來,參考如下:
==========================================================================================
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# 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 localhost
192.168.1.2 中心
192.168.1.3 西站
192.168.106.35 信息中心2
==============================================================================================
一定要將每臺服務器的hosts文件都修改好
通過以上辦法,我的分佈式就可以正常運行了,速度也非常快

 另外,因爲不可能爲一個開發人員配多臺電腦,許多人都有用虛擬PC的習慣,我們知道,虛擬PC實際上是一個文件,爲了省力,安裝好一臺後,通常將文件複製一下,就成了新的一臺PC,根據實驗,這樣建立起來的兩臺虛擬PC進行分佈式時也會出現這樣的錯誤,所以不能偷懶,兩臺虛擬PC都必須老老實實的從頭安裝.

發佈了32 篇原創文章 · 獲贊 8 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章