無法啟動分散式交易
一.A.不用事務,關用SELECT 語句.是否可以分散式查詢?
B.LINKSERVER 在做分布式更新事務時不能對本機操作.(就是不能環回分散式交易)
C.DBCC TRACEON (3604, 7300)--用跟蹤看更詳細錯誤資訊.
D.下載MS提供的DTCPing.exe 分裝在兩台機上,按README說明來運行它.看出錯資訊.
http://download.microsoft.com/download/complus/msdtc/1.7/nt45/en-us/DTCPing.exe
二.兩台機的MSDTC是否都開啟了.
1. 單擊“開始”,指向“控制台”,然後單擊“添加/刪除程式”。
2. 單擊“添加/刪除 Windows 組件”。
3. 選擇“應用程式伺服器”,然後單擊“詳細資料”。
4. 選擇“啟用網路 DTC 訪問”,然後單擊“確定”。
5. 單擊“下一步”。
6. 單擊“完成”。
7. 停止分散式交易協調器服務,然後重新予以啟動。
8. 停止參與分散式交易的任何資源管理員服務(如 Microsoft SQL Server 或 Microsoft Message Queue Server),然後重新予以啟動。
三.MSDTC設定是否正確.
1.開啟命令提示,運行"net stop msdtc",然後運行"net start msdtc"。
2.轉至"元件服務管理工具"。
3.瀏覽至"啟動管理工具"。
4.選擇"元件服務"。
a.展開"元件服務"樹,然後展開電腦。
b.按右鍵"我的電腦",然後選擇"屬性"。
C.在 MSDTC 選項卡中,確保選中了下列選項: 網路 DTC 訪問
網路管理
網路事務
XA 事務
d.另外,"DTC 登入帳戶"一定要設定為"NT Authority/NetworkService"。
5.單擊"確定"。這樣將會提示您"MS DTC 將會停止並重新啟動。
所有的依賴服務將被停止。請按'是'繼續"。單擊"是"繼續。
6.單擊"確定"關閉"我的電腦"屬性視窗。
四.MSDTC依賴於RPC,RPC使用的連接埠是135,測試135連接埠是否開啟.是否有防火牆?如果有先關了防火牆.
telnet IP 135
如果是關閉的開啟它.
五. 有的機由於各種原因),SQLOLEDB不能使用分散式交易,更改為"MSDASQL" 的ODBC方式聯結.
使用RRAS而不是RAS.(控制面版--管理工具--遠程服務管理員)
Check whether you are using Remote Access Server (RAS) to access remote servers. If so, make sure that you have implemented Routing RAS (RRAS). Linked server does not work on RAS because RAS allows only one way communication.
六.檢查你的兩台伺服器是否在同一個域中.
如果不在同一個域中,是否建立可信任聯結.
七.如果是WIN2000,升級到SP4
八.升級MDAC到2.6以上,最好是2.8.
其它的一些資料:
分散式交易在Windows 2003的配置比較麻煩,原來我就碰到過怎麼設定也啟動不了的情況,近日在別人指導下弄好了,順便寫個配置步驟,希望對大家有用
1、 添加/刪除程式中,選擇添加Windows組件,選擇應用程式伺服器,選擇啟用分散式交易網路訪問
2、 在DTC所涉及的所有伺服器中,啟用NETBIOS,確保所有伺服器能相互ping通對方,具體為修改所有伺服器中的C:/Windows/System32/Drivers/etc/hosts檔案(具體可參考hosts檔案的內部協助)。[注意]必須修改所有的伺服器中的hosts檔案
3、 禁用SQL Server 的DTC RPC安全,具體為在HKEY_LOCAL_MACHINE/Software/Microsoft/MSDTC下建立一個DWord鍵,名稱為TurnOffRpcSecurity,設定其值為1
4、 重啟MSDTC
5、 關閉網路防火牆(或者開放相應的連接埠)
6、 參考:
http://www.support.microsoft.com/?kbid=555017&SD=tech
http://support.microsoft.com/default.aspx?scid=kb;zh-tw;306843
http://support.microsoft.com/kb/250367/
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/lanman/archive/2009/07/03/4319288.aspx