gpt4 book ai didi

sql-server - COM+ VB6 应用程序 : RM_ENLIST_FAILED_TOO_MANY_ENLISTS error

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

我遇到了从 VB6 应用程序 (Com+) 启动事务的奇怪行为,此遗留应用程序在同一事务中调用对 DB2 和 SQLServer 的多个查询。
返回的错误是:

[Microsoft][ODBC Driver Manager] Failed to enlist on calling object's transaction query=SELECT COUNT (*) as FOO FROM BAR
FOR FETCH ONLY WITH UR SorgenteErr: Microsoft OLE DB Provider for ODBC Drivers
9:42:42 AM [2032]: Error: -2147467259

通常 msdtc 日志显示 2 资源管理器的招募,如下所示:

pid=2440       ;tid=4636       ;time=10/08/2020-10:48:11.404   ;seq=535        ;eventid=RM_ENLISTED_IN_TRANSACTION               ;tx_guid=bed0e21a-c138-4ff0-a94e-3dd819694ef7     ;"TM Identifier='(null)                                            '" ;"resource manager #1002 enlisted as transaction enlistment #1. RM guid = '62f2ad11-5eab-45f9-89d6-53d7488cfb6e'"
pid=2440 ;tid=4636 ;time=10/08/2020-10:48:11.545 ;seq=536 ;eventid=RM_ENLISTED_IN_TRANSACTION ;tx_guid=bed0e21a-c138-4ff0-a94e-3dd819694ef7 ;"TM Identifier='(null) '" ;"resource manager #1003 enlisted as transaction enlistment #2. RM guid = 'bd440a1c-7334-4170-b1d5-a5c9e25eb1a0'"

在一种情况下,当查询数量由于某些应用程序逻辑而增加时,我们遇到了一种奇怪的行为;
通常应用程序按预期工作,但有时资源管理器奇怪地开始从 2 增加到 32 触发 RM_ENLIST_FAILED_TOO_MANY_ENLISTS 错误。

尝试登记资源管理器失败,因为已达到最大登记数限制。

pid=2440       ;tid=4636       ;time=10/23/2020-10:48:17.810   ;seq=566        ;eventid=RM_ENLISTED_IN_TRANSACTION               ;tx_guid=bed0e21a-c138-4ff0-a94e-3dd819694ef7     ;"TM Identifier='(null)                                            '" ;"resource manager #1033 enlisted as transaction enlistment #32. RM guid = '5596fb4e-6c48-441c-af48-2d17adfb4ea0'"
pid=2440 ;tid=4636 ;time=10/23/2020-10:48:18.092 ;seq=567 ;eventid=RM_ENLIST_FAILED_TOO_MANY_ENLISTS ;tx_guid=bed0e21a-c138-4ff0-a94e-3dd819694ef7 ;"TM Identifier='(null) '" ;"attempt to enlist the resource manager failed because the limit on number of maximum enlistments has been reached. RM guid = 'e260c743-46b4-4f96-a343-1553bc7974eb'"

据我所知,资源管理器应该以正确的行为为每个数据库保留一个。
您是否知道任何可能触发这种征用过多资源管理器(每个资源管理器都有不同的 GUID)的意外行为的原因?

需要注意的一件重要事情是,当我们在客户端计算机和 DB2 连接计算机上从 9.7 FP 9a 切换到 11.1.4 FP5 Db2 驱动程序时,此行为开始。

最佳答案

如果您已将驱动程序(就地升级安装)从 9.7 升级到 11.1,请尝试重新安装驱动程序(卸载、新安装、目录节点和数据库(如有必要)以及您的自定义配置)。从 9.7 升级可能会在配置中留下一些不正确的东西,这可能会导致 XA 事务出现问题。

关于sql-server - COM+ VB6 应用程序 : RM_ENLIST_FAILED_TOO_MANY_ENLISTS error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64544252/

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