Microsoft SQL Server 2008 - 错误1206 - Microsoft分布式事务处理协调器(MS DTC)已取消分布式事务

时间:2012-08-02 09:28:31

标签: sql-server-2008 vb6 adodb pivotal-crm

我正在运行Pivotal应用程序(5.9)并且有一个始终崩溃的服务器进程(MS SQL错误1206)。

  1. 我有一个带有更新按钮的Pivotal“活动表单”,单击该按钮时会调用服务器进程(VB 6自定义DLL)
  2. 此自定义DLL:
    1. 使用Pivotal API检索可以使用Pivotal应用程序(“users”标准表)的所有用户的列表,然后使用连接字符串创建自己与另一个数据库的连接。)
    2. 对于每个用户,它构造并运行查询:
    3. strSql =从“& dbName&”中选择SUM(stoResourceSize)totalResourceSize。 “.dbo.Resource,其中StorageID = 3,XptDestinationAddress喜欢” strSql = strSql& “'%”& userName& “%'”
  3. 用于运行查询的连接字符串如下:

    strConnect = "Driver={SQL Server};" & _
        "Server=" & SatteliteName & ";" & _
        "UID=" & SyncStreamDBName & ";" & _
        "Trusted_Connection=Yes"
    

    它工作正常但是在处理了大约80个用户后查询崩溃,错误1206和SQLState = 37000

    我可以每次都重现这个问题。在给定时间,此查询将崩溃。

    我添加了很多跟踪,如果我在服务器上“手动”运行它,最后一个查询工作正常。 它不会每次都在同一个用户上崩溃,看起来它是随机的。此外,在应用程序中存在另一个服务器过程,该过程可以运行相同的查询但仅针对一个用户。那个将运行良好,永远不会崩溃。 我也尝试启用ODBC跟踪,但它不会给我任何有用的信息。

    我很狡猾,这是一个连接或配置问题,但我不知道是什么。 这个问题在开发和测试环境中都是可重现的。

    编辑:实际上我的服务器进程似乎可以在各个点崩溃,不一定在执行该请求时崩溃。 当我打开ADODB记录集时,它似乎崩溃了(当然,在触摸任何记录集之前,我验证EOF和BOF都是假的,它们都是假的。)

0 个答案:

没有答案