2010-01-29 34 views
1

您好林:使用SQL Server與當地甲骨文鏈接服務器的分佈式事務, 如下面的SQL腳本編寫分佈式事務

GO 
BEGIN DISTRIBUTED TRANSACTION; 
    SET XACT_ABORT off; 
    GO 

    SELECT MAX(DEPTNO)+1, 
    FROM [WSF08_CONTA_ORADATA_II]..[SCOTT].DEPT 

    SET XACT_ABORT on; 
    GO 

COMMIT TRANSACTION; 

所以,當我運行該腳本,我得到了如下的錯誤和SQL Server凍結,停止並斷開我的聯繫。

消息7399,級別16,狀態1,第3行
OLE DB提供程序 「OraOLEDB.Oracle」 鏈接服務器 「WSF08_CONTA_ORADATA_II」 報告錯誤。該提供商報告意外的災難性失敗。
Msg 7303,Level 16,State 1,Line 3 無法初始化鏈接服務器「WSF08_CONTA_ORADATA_II」的OLE DB提供程序「OraOLEDB.Oracle」的數據源對象。

我做錯了什麼?我可以在Oracle上通過SSMS在查詢中沒有短語「BEGIN DISTRIBUTED TRANSACTION;」做CRUDS ..爲什麼?..我在後端服務器上使用SQL Server 2000作爲FrontSide Server和Oracle 10g,當我正在使用9i我從來沒有像這樣的問題

+0

是的,我可以做SELECT和插入「BEGIN DISTRIBUTED TRANSACTION;」選項 – 2010-01-29 21:35:24

回答

2

在分佈式事務中註冊SQL Server和Oracle MSDTC需要啓用XA事務。見Supporting XA Transactions

當DTC充當符合XA 事務管理器,甲骨文,IBM DB/2, 的Sybase,Informix和其他 符合XA的資源管理器可以 參與交易的是 DTC控件。

相關問題