COM + VB6应用程序:RM_ENLIST_FAILED_TOO_MANY_ENLISTS错误

系统弹出

从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错误。

attempt to enlist the resource manager failed because the limit on number of maximum enlistments has been reached.

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,请尝试重新安装驱动程序(卸载,新安装,目录节点和db(如果需要)以及自定义配置)。从9.7升级可能会导致配置不正确,从而可能导致XA事务出现问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

c#.net COM dll中断了对vb6应用程序的引用

来自分类Dev

通过COM Interop向VB6应用程序公开集合

来自分类Dev

编写新的 c# 应用程序来替换 vb6 应用程序时,可以使用什么来替换 COM 对象?

来自分类Dev

从ShowDialog表单引发的事件是否不会一直通过com interop引发到调用vb6应用程序?

来自分类Dev

找不到实体框架提供程序-从VB6内部调用C#Com DLL

来自分类Dev

用C#重建更新的VB6 COM类

来自分类Dev

将.NET ArrayList封送至VB6 [Com interop]

来自分类Dev

COM(VB6)事件在AutoIt中有延迟处理

来自分类Dev

将.NET ArrayList封送至VB6 [Com interop]

来自分类Dev

VB6 RegFree Com一键式部署

来自分类Dev

尝试从C#调用VB6应用程序时出现文件/访问错误

来自分类Dev

如何使用VB6应用程序与DCOM配合使用?我收到462错误

来自分类Dev

VB6应用程序支持何时结束?

来自分类Dev

应用程序崩溃错误需要com.android.launcher3.permission.WRITE_SETTINGS或grantUriPermission

来自分类Dev

编译错误-在Redhat“ Openshift”应用程序中找不到com.google.gson包

来自分类Dev

强制VB6编译器在调用.net com dll时使用早期绑定

来自分类Dev

C#Com Interop类方法在VB6中不可见?

来自分类Dev

如何使用COM公开.netstandard2.0库以在VB6中使用?

来自分类Dev

调试VS2015中经典ASP页面中使用的VB6 COM对象

来自分类Dev

在pythonanywhere.com上部署Flask网站/应用程序

来自分类Dev

如何从apps.ubuntu.com下载应用程序?

来自分类Dev

Parse.com压力测试iOS应用程序

来自分类Dev

对Parse.com应用程序的拒绝服务攻击

来自分类Dev

使用隔离COM时,在CoCreateInstance期间应用程序挂起

来自分类Dev

在基于.NET的COM对象的CoCreateInstance期间挂起应用程序

来自分类Dev

如何从https://apps.ubuntu.com下载应用程序

来自分类Dev

如何从apps.ubuntu.com下载应用程序?

来自分类Dev

如何从https://apps.ubuntu.com下载应用程序

来自分类Dev

C#桌面应用程序和Parse.com

Related 相关文章

  1. 1

    c#.net COM dll中断了对vb6应用程序的引用

  2. 2

    通过COM Interop向VB6应用程序公开集合

  3. 3

    编写新的 c# 应用程序来替换 vb6 应用程序时,可以使用什么来替换 COM 对象?

  4. 4

    从ShowDialog表单引发的事件是否不会一直通过com interop引发到调用vb6应用程序?

  5. 5

    找不到实体框架提供程序-从VB6内部调用C#Com DLL

  6. 6

    用C#重建更新的VB6 COM类

  7. 7

    将.NET ArrayList封送至VB6 [Com interop]

  8. 8

    COM(VB6)事件在AutoIt中有延迟处理

  9. 9

    将.NET ArrayList封送至VB6 [Com interop]

  10. 10

    VB6 RegFree Com一键式部署

  11. 11

    尝试从C#调用VB6应用程序时出现文件/访问错误

  12. 12

    如何使用VB6应用程序与DCOM配合使用?我收到462错误

  13. 13

    VB6应用程序支持何时结束?

  14. 14

    应用程序崩溃错误需要com.android.launcher3.permission.WRITE_SETTINGS或grantUriPermission

  15. 15

    编译错误-在Redhat“ Openshift”应用程序中找不到com.google.gson包

  16. 16

    强制VB6编译器在调用.net com dll时使用早期绑定

  17. 17

    C#Com Interop类方法在VB6中不可见?

  18. 18

    如何使用COM公开.netstandard2.0库以在VB6中使用?

  19. 19

    调试VS2015中经典ASP页面中使用的VB6 COM对象

  20. 20

    在pythonanywhere.com上部署Flask网站/应用程序

  21. 21

    如何从apps.ubuntu.com下载应用程序?

  22. 22

    Parse.com压力测试iOS应用程序

  23. 23

    对Parse.com应用程序的拒绝服务攻击

  24. 24

    使用隔离COM时,在CoCreateInstance期间应用程序挂起

  25. 25

    在基于.NET的COM对象的CoCreateInstance期间挂起应用程序

  26. 26

    如何从https://apps.ubuntu.com下载应用程序

  27. 27

    如何从apps.ubuntu.com下载应用程序?

  28. 28

    如何从https://apps.ubuntu.com下载应用程序

  29. 29

    C#桌面应用程序和Parse.com

热门标签

归档