错误信息:Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务
生活随笔
收集整理的這篇文章主要介紹了
错误信息:Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Microsoft 分布式事務(wù)處理協(xié)調(diào)器 (MS DTC) 是一個(gè)事務(wù)管理器,它允許客戶端應(yīng)用程序在一個(gè)事務(wù)中包含多個(gè)不同的數(shù)據(jù)源。MS DTC 協(xié)調(diào)在所有已在事務(wù)中登記的服務(wù)器間提交分布式事務(wù)。
Microsoft? SQL Server? 安裝可通過(guò)下列方法參與分布式事務(wù):
1,調(diào)用運(yùn)行 SQL Server 的遠(yuǎn)程服務(wù)器上的存儲(chǔ)過(guò)程。?
2,自動(dòng)或顯式地將本地事務(wù)提升為一個(gè)分布式事務(wù)并在該事務(wù)中登記遠(yuǎn)程服務(wù)器。
3, 執(zhí)行分布式更新以更新多個(gè) OLE DB 數(shù)據(jù)源上的數(shù)據(jù)。如果這些 OLE DB 數(shù)據(jù)源支持 OLE DB 分布式事務(wù)接口,SQL Server 還可以將它們登記在分布式事務(wù)中。 MS DTC 服務(wù)協(xié)調(diào)正確完成分布式事務(wù),以確保所有服務(wù)器上的全部更為永久性的,或在發(fā)錯(cuò)誤時(shí)刪除所有更新。?
SQL->CREATE TABLE test1 ([id] int ,email varchar(50))
表test1在A服務(wù)器中,表email在B服務(wù)器中,其表結(jié)構(gòu)和test1一樣。在A服務(wù)器中運(yùn)行
SQL->EXEC sp_addlinkedserver 'B','SQL Server'?
SQL->GO
SQL->EXEC sp_addlinkedsrvlogin 'B','false','sa','sa','123456'
同樣在B服務(wù)器中運(yùn)行以上代碼,不同的是服務(wù)器名稱的變化。
在B服務(wù)器中執(zhí)行如下語(yǔ)句:
SQL->CREATE PROCEDURE dbo.usp_test?
SQL->AS
SQL->SELECT id,email FROM email?
SQL->GO
這樣就把為AB服務(wù)器互相添加了Linked Server,并在AB服務(wù)器中啟動(dòng)MSDTC服務(wù)。在A服務(wù)器中運(yùn)行如下語(yǔ)句:
SQL->BEGIN TRANSACTION Ta
SQL->INSERT INTO test (id,email)?
SQL->EXEC a.test.dbo.usp_test?
SQL->COMMIT TRANSACTION Ta
運(yùn)行出錯(cuò),錯(cuò)誤如下:
服務(wù)器: 消息 7391,級(jí)別 16,狀態(tài) 1,行 1
該操作未能執(zhí)行,因?yàn)?OLE DB 提供程序 'SQLOLEDB' 無(wú)法啟動(dòng)分布式事務(wù)。 [OLE/DB provider returned message: 新事務(wù)不能登記到指定的事務(wù)處理器中。 ] OLE DB 錯(cuò)誤跟蹤[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。<br>估計(jì)是MSDTC的相關(guān)配置有問(wèn)題。檢查MSDTC配置。似乎都滿足先制條件。苦思,終不得解,去網(wǎng)上找相關(guān)資料。終于不負(fù)有心人,找到了解決方法。繼續(xù)…… 解決方法: 組件服務(wù)=WIN+R調(diào)出運(yùn)行框,輸入dcomcnfg 組件服務(wù)--> a.展開(kāi)"組件服務(wù)"樹(shù),然后展開(kāi)"我的電腦"。b.右鍵單擊"我的電腦",然后選擇"屬性"。C.在 MSDTC 選項(xiàng)卡中‘安全配置’按鈕,確保選中了下列選項(xiàng):網(wǎng)絡(luò) DTC 訪問(wèn)。網(wǎng)絡(luò)事務(wù) XA 事務(wù) d.另外,"DTC 登錄帳戶"一定要設(shè)置為"NT Authority\NetworkService"。e單擊"確定",重新啟動(dòng)MSDTC。?
再次運(yùn)行以上語(yǔ)句,結(jié)果成功。
總結(jié)
以上是生活随笔為你收集整理的错误信息:Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 为IDOC创建tRFC连接
- 下一篇: 什么是IDOC,以及IDOC的步骤