gpt4 book ai didi

db2 - TransactionScope 不适用于 DB2 提供者

转载 作者:行者123 更新时间:2023-12-04 05:53:03 25 4
gpt4 key购买 nike

我一直在尝试将 TransactionScopeDB2 数据库一起使用(使用 DB2 .Net 提供程序 v 9.0.0.2 和 c# 2.0)根据 IBM 的说法,应该支持它。

我已尝试在 IBM 论坛上找到的所有建议(例如 here)都无济于事。

我在我的 XP Sp2 机器上启用了 XA 事务,也在 Win 2003 Server 机器上尝试过,但我总是得到臭名昭著的错误:

ERROR [58005] [IBM][DB2/NT] SQL0998N  Error occurred during

transaction or heuristic processing. Reason Code = "16". Subcode = "2-80004005". SQLSTATE=58005

Windows 事件日志说:

The XA Transaction Manager attempted to load the XA resource

manager DLL. The call to LOADLIBRARY for the XA resource manager DLL failed: DLL=C:\APPS\IBM\DB2v95fp2\SQLLIB\BIN\DB2APP.DLL File=d:\comxp_sp2\com\com1x\dtc\dtc\xatm\src\xarmconn.cpp Line=2467.

此外,授予 NETWORK SERVICE 用户对该文件夹和 dll 的全部权限。

这是 MSDTC 启动消息

MS DTC started with the following settings:

Security Configuration (OFF = 0 and ON = 1): Network Administration of Transactions = 0, Network Clients = 0, Inbound Distributed Transactions using Native MSDTC Protocol = 0, Outbound Distributed Transactions using Native MSDTC Protocol = 0, Transaction Internet Protocol (TIP) = 0, XA Transactions = 1

如有任何帮助,我们将不胜感激!

谢谢,弗罗林

最佳答案

我设法让老旧的 IBM DB2 v7 ODBC 驱动程序在 TransactionScope 中工作。它要求:

  • 在 MSDTC 属性中启用 XA 事务
  • 在注册表项 HKLM\SOFTWARE\Microsoft\MSDTC\XADLL 下输入的值,名称为“DB2CLI.DLL”,值为“C:\PROGRA~1\IBM\SQLLIB\BIN\DB2CLI.DLL”(dll 路径8.3 格式 - v9 使用 DB2APP.DLL)
  • 重启
  • 在处理 TransactionScope 之前不关闭连接。回想起来似乎很明显。 :)

我不确定这是否与您的特定情况相关。 IBM documentation将原因代码 16、子代码 2 显示为“MSDTC 无法注册 DB2 连接”。 MSDTC 在查找 DB2 dll 时似乎存在一些问题 - 也许检查上面引用的注册表项?

关于db2 - TransactionScope 不适用于 DB2 提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1403946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com