您正在使用 BizTalk Server 電腦的應用程式記錄檔中收到 「 TDDS 無法從此來源資料庫讀取 」 錯誤訊息

適用於: Microsoft BizTalk Server 2009 DeveloperMicrosoft BizTalk Server 2009 EnterpriseMicrosoft BizTalk Server 2009 Standard

狀況


您會收到類似下列的伺服器正在執行 Microsoft BizTalk Server 2006年或 Microsoft BizTalk Server 2004年的應用程式記錄檔中的錯誤訊息︰
讀取時發生錯誤。例外狀況資訊︰ TDDS 無法從來源資料庫讀取。SQLServer: SQLSERVER,資料庫︰
BizTalkMsgBoxDb
您也可能會收到下列錯誤訊息之一,應用程式事件日誌中︰
錯誤訊息 1
可能是另一個 TDDS 正在處理相同的資料,或孤兒工作階段鎖定 TDDS 的 SQL server 中。SQL Server: SQLSERVER資料庫︰
BizTalkMsgBoxDb
錯誤訊息 2
可能是另一個 TDDS 正在處理相同的資料,或孤兒工作階段鎖定 TDDS 的 SQL server 中。無法開啟所要求的登入 [登入' 資料庫。登入失敗。
錯誤訊息 3
可能是另一個 TDDS 正在處理相同的資料,或孤兒工作階段鎖定 TDDS 的 SQL server 中。尚未初始化的 ConnectionString 屬性。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 環境中,請遵循下列步驟以確定您的網域群組,加入正確的 SQL Server 資料庫角色安裝 BizTalk Server 時所建立的。

注意您必須在每個 SQL Server 安裝 BizTalk Server 的執行個體上,請遵循下列步驟。

Microsoft SQL Server 2005

設定 BAMArchive 資料庫

  1. 開啟 SQL Server Management 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,為 「 BAM_EVENT_WRITER 」 角色,新增 BizTalk 服務帳戶的登入,然後按一下
    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. 加入 BAM_EVENT_WRITER 角色的 BizTalk 服務帳戶,BizTalk Server 系統管理員群組的登入。
  5. 按一下 [確定]
  6. 在 BizTalk Server 2003 中,按兩下在 [角色] 下的BAMQueryWS 。在 [BizTalk Server 2006,連按兩下
    在 [角色] 下的ManagementWS
  7. 加入 BAMQueryWS 角色的 BizTalk 服務帳戶,BizTalk 隔離的主應用程式使用者群組的登入。
  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) 網站︰