2009-07-17 54 views
0

我有一個針對兩個數據庫執行分佈式查詢的Business Objects Web Intelligence報表。Business Objects XI默認執行DISTRIBUTED TRANSACTION - 如何關閉?

當運行此查詢包含一個BEGIN DISTRIBUTED TRANSACTION QUERY

SET XACT_ABORT ON
GO
USE Pipeline2
GO
BEGIN DISTRIBUTED TRANSACTION
SELECT * FROM [CQSR_PROD] .CqUSer.Cq4User1 .Defect
COMMIT TRAN
GO

我得到這個錯誤:

服務器:消息7391,級別16,狀態1,2號線 因爲OLE DB提供程序「SQLOLEDB」無法啓動分佈式事務不能執行該操作。 [OLE/DB提供程序返回的消息:新事務無法登記到指定的事務協調器中。 ] OLE DB錯誤跟蹤[OLE/DB提供程序'SQLOLEDB'ITransactionJoin :: JoinTransaction返回0x8004d00a]。

我想解決此錯誤。我看到這個知識庫文章......

http://support.microsoft.com/kb/839279

也是迄今爲止Sys系統管理員已經啓用「允許入站」複選框,但沒有幫助。我相信所有涉及Windows 2003服務器的服務器。

獲取對生產服務器所做的更改以嘗試KB文章中介紹的其餘選項比拉動牙齒更糟糕,因爲他們對其更改非常謹慎。因此,我正在尋找解決辦法:

有沒有辦法告訴BO 不是在查詢時執行分佈式事務?如果我從上面的SQL中刪除「BEGIN DISTRIBUTED TRANSACTION」,所有的工作。我似乎認爲BO默認是這樣做的。

回答