Business Objects XI 默认执行分布式事务 - 如何关闭?
我有一个 Business Objects Web Intelligence 报表,它正在对两个数据库执行分布式查询。
当我运行此包含 BEGIN DISTRIBUTED TRANSACTION QUERY
SET xact_abort ON
的查询时 去
使用管道2
去
开始分布式交易
从 [CQSR_PROD].CqUSer.Cq4User1.Defect
中选择 * 提交 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
到目前为止,系统管理员已启用“允许入站”复选框,但这没有帮助。 我相信所有涉及的服务器都是 Windows 2003 服务器。
对生产服务器进行更改以尝试知识库文章中解释的其余选项比拔牙更糟糕,因为他们对更改非常谨慎。 因此,我正在寻找解决方法:
有没有办法告诉 BO 在查询时不执行分布式事务? 如果我从上面的 SQL 中删除“BEGIN DISTRIBUTED TRANSACTION”,则一切正常。 看来BO默认是这么做的。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我尝试了两种途径。
1)尝试让BO不要发起DIST Transaction
2) 尝试解决 BO 在我们的服务器上执行 DIST TRANS 时返回的错误。
我成功找到了#2的解决方案:
http://www.howtogeek.com/howto/windows/fix-new-transaction-cannot-enlist-in-the-specified-transaction-coordinator-on -server-2003-sp2/
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/