您正在运行 BizTalk Server 的计算机应用程序日志中收到"TDDS 从源数据库读取失败"错误消息

适用于: BizTalk Server 2009 DeveloperBizTalk Server 2009 EnterpriseBizTalk Server 2009 Standard

症状


您收到类似于以下服务器运行 Microsoft BizTalk Server 2006年或 Microsoft BizTalk Server 2004年的应用程序日志中的错误消息︰
读取错误。异常信息︰ TDDS 从源数据库读取失败。SQLServer: SQLSERVER,数据库︰
BizTalkMsgBoxDb
您还可能在应用程序事件日志中收到下列错误消息之一︰
错误消息 1
另一个 TDDS 正在处理相同的数据,或者在 SQL server 锁 TDDS 没有孤立的会话。SQL Server: SQLSERVER数据库︰
BizTalkMsgBoxDb
错误消息 2
另一个 TDDS 正在处理相同的数据,或者在 SQL server 锁 TDDS 没有孤立的会话。无法打开数据库登录登录。登录失败。
错误消息 3
另一个 TDDS 正在处理相同的数据,或者在 SQL server 锁 TDDS 没有孤立的会话。尚未初始化的连接字符串属性。SQLServer:
SQLSERVER、 数据库︰ BizTalkMsgBoxDb
注意SQLSERVER表示正在房屋 BizTalk MessageBox 数据库的 SQL Server 的计算机的名称、登录名是用户名称的占位符和BizTalkMsgBoxDb是 BizTalk Server MessageBox 数据库的名称的占位符。

原因


由于以下原因,可能会收到此错误消息︰
  • 为登录为 BizTalk Server 主机实例,跟踪已启用指定的用户帐户不是运行包括了健康状况和活动跟踪、 业务活动监视和 MessageBox 数据库的 SQL Server 的计算机上的 BizTalk 应用程序用户组的成员。
  • 孤立的 SQL 会话阻止跟踪数据解码服务 (TDDS),也称为 BAM 事件总线服务,启动。

解决方案


要解决此问题,请检查错误说明紧跟在后面的症状部分中列出的错误文本的文本。根据紧跟在后面的错误文本的错误说明的文本,请执行以下步骤︰
  • 如果显示的错误文本内容类似于下面的错误消息︰
    执行权限被拒绝 TDDS_Lock,表xxx、 所有者xxx对象上。SQLServer: xxx,数据库︰ xxx
    请确保指定为 BizTalk Server 主机实例启用了跟踪登录是正在运行 SQL Server 的计算机上的 BizTalk 应用程序用户组的成员的用户帐户包括健康状况和活动跟踪、 业务活动监视和 MessageBox 数据库。此外请确保没有其他 BizTalk 服务器处理同一 BizTalk MessageBox 数据库中相同的跟踪数据。

    注意:xxx是表、 数据库所有者、 正在运行 SQL Server 的计算机的实际名称和数据库名称的占位符。
  • 如果显示的错误文本内容类似于下面的错误消息︰
    超时已过期。在操作完成之前已超时或服务器没有响应。
    请按照以下 Microsoft 开发人员网络 (MSDN) 文章解决孤立的 SQL 会话中列出的步骤操作︰

状态


此行为是设计使然。

详细信息


"另一个 TDDS 正在处理相同的数据或在 SQL server 锁 TDDS 没有孤立的会话"错误消息指示程序处理多个跟踪数据解码服务 (TDDS),在同一时间和同一数据。这种锁定的数据,并防止对数据的访问。如果您收到此错误消息在聚簇索引或多节点 BizTalk Server 环境中,请按照下列步骤,以确保您的域组添加到 BizTalk Server 安装时创建正确的 SQL Server 数据库角色。

注意:您必须在 SQL Server 安装了 BizTalk Server 的每个实例上执行以下步骤。

Microsoft SQL Server 2005

将 BAMArchive 数据库配置

  1. 打开 SQL Server 管理 Studio。
  2. 展开要配置,展开数据库,展开的 SQL Server 的实例
    BAMArchive,展开安全性,再展开
    角色,然后单击数据库角色
  3. 双击BTS_ADMIN_USERS。如果 BizTalk Server 管理员组不是此角色的成员,将 BizTalk Server 管理员组添加到角色,该角色,然后单击
    OK.
  4. 单击用户。如果 BizTalk 独立的主机用户组不是此数据库的登录,将 BizTalk 独立的主机用户组登录添加到数据库,然后单击
    OK.
  5. 单击数据库角色,然后双击BTS_HOST_USERS。如果 BizTalk 独立的主机用户组不是 BTS_HOST_USERS 角色的成员,将 BizTalk 独立的主机用户组登录添加到 BTS_HOST_USERS 角色,然后单击
    OK.

将 BAMPrimaryImport 数据库配置

  1. 数据库展开
    BAMPrimaryImport
  2. 展开安全性,然后单击
    用户
  3. 将 BizTalk 服务帐户 (BtsService) 帐户添加为用户。当您运行 BizTalk Server 配置向导 (Configuration.exe),是不会自动执行此步骤。要执行此操作,请右键单击
    用户,然后单击新用户,添加用户,并单击确定
  4. 展开角色,然后单击
    数据库角色
  5. 双击BAM_EVENT_WRITER、 添加 BizTalk 服务帐户和 BizTalk Server 管理员组到 BAM_EVENT_WRITER 角色的登录,然后单击确定
  6. 双击BAM_ManagementWS、 添加 BizTalk 服务帐户和 BizTalk Server 管理员组到 BAM_ManagementWS 角色的登录,然后单击确定

将 BizTalkDTADb 数据库配置

  1. 数据库展开
    BizTalkDTADb
  2. 展开安全性,再展开
    角色,然后单击数据库角色
  3. 双击BAM_EVENT_WRITER。将 BizTalk Server 管理员组登录和 BizTalk 服务帐户登录名添加到 BAM_EVENT_WRITER 角色,然后单击确定
  4. 双击HM_EVENT_WRITER。将 BizTalk Server 管理员组登录和 BizTalk 服务帐户登录名添加到 HM_EVENT_WRITER 角色,然后单击确定

将 BizTalkMgmtDb 数据库配置

  1. 数据库展开
    BizTalkMgmtDb
  2. 展开安全性,再展开
    角色,然后单击数据库角色
  3. 双击BAM_CONFIG_READER。将 BizTalk Server 管理员组登录和 BizTalk 服务帐户登录名添加到 BAM_CONFIG_READER 角色,然后单击确定

将 BizTalkMsgBoxDb 数据库配置

  1. 数据库展开
    BizTalkMgmtDb
  2. 展开安全性,然后单击
    用户
  3. 用鼠标右键单击右窗格中新用户将 BizTalk 服务帐户作为登录名添加到这个数据库中,和,然后单击确定
  4. 展开角色,然后单击
    数据库角色
  5. 双击BAM_EVENT_READER,将 BizTalk 服务帐户登录添加到 BAM_EVENT_WRITER 角色,然后单击
    OK.

Microsoft SQL Server 2000

将 BAMArchive 数据库配置

  1. 打开 SQL Server 企业管理器。
  2. 展开要配置,展开数据库,展开的 SQL Server 的实例
    BAMArchive,然后单击角色
  3. 双击BTS_ADMIN_USERS

    如果 BizTalk Server 管理员组不是此角色的成员,请单击
    添加要添加组,然后单击
    OK.

    注意:如果 BizTalk Server 管理员组不可用,请执行以下步骤︰
    1. 单击取消
    2. 单击登录
    3. 添加新的登录名的数据库,为 BizTalk Server 管理员组,然后单击确定
    4. 单击角色
    5. 单击添加将 BizTalk Server 管理员组添加到角色。
    6. 单击确定
  4. 单击用户

    如果 BizTalk 独立的主机用户组不是此数据库的登录,右键单击右窗格中,单击新用户,将 BizTalk 独立的主机用户组登录添加到数据库中,,然后单击
    OK.
  5. 单击角色,然后双击
    BTS_HOST_USERS.

    如果 BizTalk 独立的主机用户组不是 BTS_HOST_USERS 角色的成员,单击添加以将 BizTalk 独立的主机用户组登录添加到 BTS_HOST_USERS 角色,然后单击确定

将 BAMPrimaryImport 数据库配置

  1. 数据库展开
    BAMPrimaryImport
  2. 作为用户,您必须添加该 BizTalk 服务帐户 (BtsService)。当您运行 BizTalk Server 配置向导 (ConfigFramework.exe),是不会自动执行此步骤。若要执行此操作,请执行以下步骤:
    1. 单击用户
    2. 右键单击右窗格中,单击新用户,然后将 BizTalk 服务帐户登录添加到此数据库。
    3. 单击确定
  3. 单击角色,然后双击
    BAM_EVENT_WRITER.
  4. 将 BizTalk 服务帐户和 BizTalk Server 管理员组登录名添加到 BAM_EVENT_WRITER 角色。
  5. 单击确定
  6. 在 BizTalk Server 2003 中,双击角色下的BAMQueryWS 。在 BizTalk Server 2006,双击
    角色下的ManagementWS
  7. 将 BizTalk 服务帐户和 BizTalk 独立的主机用户组登录名添加到 BAMQueryWS 角色。
  8. 单击确定

将 BizTalkDTADb 数据库配置

  1. 数据库展开
    BizTalkDTADb
  2. 单击角色,然后双击
    BAM_EVENT_WRITER.
  3. 将 BizTalk Server 管理员组登录和 BizTalk 服务帐户登录添加到 BAM_EVENT_WRITER 角色。
  4. 单击确定
  5. 角色中,双击
    HM_EVENT_WRITER.
  6. 将 BizTalk Server 管理员组和 BizTalk 服务帐户登录名添加到 HM_EVENT_WRITER 角色。
  7. 单击确定

将 BizTalkMgmtDb 数据库配置

  1. 数据库展开
    BizTalkMgmtDb
  2. 单击角色,然后双击
    BAM_CONFIG_READER.
  3. 将 BizTalk 服务帐户添加到 BAM_CONFIG_READER 角色。
  4. 单击确定

将 BizTalkMsgBoxDb 数据库配置

  1. 数据库展开
    BizTalkMsgBoxDb
  2. 单击用户
  3. 用鼠标右键单击右窗格中,单击新用户,然后将作为登录服务帐户添加到此数据库。
  4. 单击确定
  5. 角色中,双击
    BAM_EVENT_READER的角色。
  6. 将 BizTalk 服务帐户添加到 BAM_EVENT_READER 角色。
  7. 单击确定
重要:默认情况下,这些数据库的安全设置配置 BizTalk Server 2004年时已设置。

孤立会话的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) Web 站点︰