Question

I have a Business Objects Web Intelligence report that is performing a distributed query against two databases.

When I run this query that includes a 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

I get this error:

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].

I want to resolve this error. I have seen this KB article...

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

and so far the Sys Admins have enabled the "Allow Inbound" check box but that didn't help. I believe all servers involved as Windows 2003 Servers.

Getting changes made to production servers to try the remaining options explained inthe KB article is worse than pulling teeth as they are very cautious about their changes. As a result, I am looking for a work around:

Is there a way to tell BO NOT to perform a distributed transaction when querying? If I remove the "BEGIN DISTRIBUTED TRANSACTION" from the above SQL, all works. I t seems that BO does this by default.

Was it helpful?

Solution

I tried two avenues.

1) Try to get BO not to initiate a DIST Transaction 2) Try to resolve the error that BO returns when performing a DIST TRANS on our serevrs.

I was successful finding a solution for #2:

http://www.howtogeek.com/howto/windows/fix-new-transaction-cannot-enlist-in-the-specified-transaction-coordinator-on-server-2003-sp2/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top