windows server 2003 中 SQL Server 2000 分散式交易 錯誤解決方案

來源:互聯網
上載者:User
server|window|錯誤|分布式|解決 癥狀如果在 Windows .NET Server 上安裝的 SQL Server 2000 中運行連結的伺服器查詢,可能會返回下列錯誤(即使 MSDTC 正在該伺服器上運行):
Server:Msg 8501, Level 16, State 3, Line 3
MSDTC on server 'server name' is unavailable.在 SQL Server 錯誤記錄檔中,您會發現由運行該查詢的 spid 引發的下列錯誤:
Resource Manager Creation Failed:Result Code = 0x8004d01c 原因這是設計使然。如果在"本地系統"帳戶下運行"分散式交易協調器服務"就會發生此錯誤。 解決方案最近為了提高 RPC 安全性對 DTC 所做的更改要求 MSDTC 作為"NT Authority\NetworkService"運行。這是 .NET Server 的預設選項。在 Windows NT 和 Windows 2000 中,預設情況下 MSDTC 服務是在"本地系統"帳戶下啟動並執行。

警告:"登錄編輯程式"使用不當可造成嚴重問題,這些問題可能需要重新安裝作業系統。Microsoft 不保證能夠解決因為"登錄編輯程式"使用不當而產生的問題。使用"登錄編輯程式"需要您自擔風險。

若要將 MSDTC 服務帳戶從"本地系統"更改為"NT Authority\NetworkService",請執行下列步驟: 1.運行 regedt32,瀏覽至 HKEY_LOCAL_MACHINE oftware\Microsoft\MSDTC。
添加一個 DWORD 值 TurnOffRpcSecurity,值資料為 1。2.開啟命令提示,運行"net stop msdtc",然後運行"net start msdtc"。3.轉至"元件服務管理工具"。

a. 瀏覽至"啟動管理工具"。b. 選擇"元件服務"。c. 展開"元件服務"樹,然後展開"我的電腦"。d. 按右鍵"我的電腦",然後選擇"屬性"。e. 在 MSDTC 選項卡中,確保選中了下列選項:
網路 DTC 訪問網路管理網路事務XA 交易
另外,"DTC 登入帳戶"一定要設定為"NT Authority\NetworkService"。f. 單擊"確定"。這樣將會提示您"MS DTC 將會停止並重新啟動。所有的依賴服務將被停止。請按'是'繼續"。單擊"是"繼續。g. 單擊"確定"關閉"我的電腦"屬性視窗。4.再次運行 regedt32,瀏覽至 HKEY_LOCAL_MACHINE oftware\Microsoft\MSDTC,然後刪除 TurnOffRpcSecurity 項。現在您的 MSDTC 服務應該在"NT Authority\NetworkService"帳戶下運行了,並且不會再出現該錯誤。
更多資訊
當"MSDTC 安全性"配置下的"網路 DTC 訪問"禁用時,如果運行連結的伺服器查詢則會返回下列錯誤:
Server:Msg 7391, Level 16, State 1, Line 2 The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.[OLE/DB provider returned message:New transaction cannot enlist in the specified transaction coordinator.]
跟蹤標記 7300 開啟時: Server:Msg 7391, Level 16, State 1, Line 2 The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.[OLE/DB provider returned message:New transaction cannot enlist in the specified transaction coordinator.] OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a].MSDTC 服務一定要按照上面"解決方案"一節中的說明進行設定,才能防止此錯誤。

再現現象的步驟 1.轉至"啟動管理工具服務"。2.按右鍵"分散式交易協調器"服務,轉至"登入"選項卡,選擇"登入身份"下的"本地系統"帳戶。3.停止然後重新啟動該服務。4.從查詢分析器,運行下列指令碼:
exec sp_addlinkedserver remote1exec sp_setnetname remote1, <remote server name>goexec remote1.pubs.dbo.sp_executesql N'create table t (c1 int)'goset xact_abort ongobegin traninsert into remote1.pubs.dbo.t values (1)commit trango


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。