共用方式為


當您嘗試在 MS DTC 中啟動交易時,新交易無法登記在指定的交易協調器中

本文可協助您解決Microsoft分散式交易協調器 #MS DTC 中啟動交易時的問題。

原始產品版本: Windows
原始 KB 編號: 922430

重要

本文包含如何修改「登錄檔」的相關資訊。 修改登錄前,請務必先備份。 並了解如何在發生問題時還原登錄。 如需如何備份、還原及修改登錄的詳細資訊,請參閱 進階使用者的 Windows 登錄資訊。

徵兆

請參考下列案例:

  • 您有與伺服器電腦通訊的用戶端電腦。
  • MS DTC 會安裝在這兩部電腦上。
  • 下列一或多個條件成立:
    • 您可以重新啟動其中一部電腦。
    • 您可以在任一部電腦上重新啟動 MS DTC。
    • 計算機位於不同的網域中。

在此案例中,當您嘗試在 MS DTC 中啟動交易時,會收到下列錯誤訊息:

新交易無法在指定的交易協調器中登記 (0x8004d00a)

此外,第一筆交易會失敗。 後續的交易會成功一段時間。 不過,後續的交易可能會再次失敗。 如果後續的交易失敗,您會收到下列錯誤訊息:

新交易無法在指定的交易協調器中登記 (0x8004d00e)

原因

當用戶端電腦與伺服器電腦之間的 MS DTC 連線關閉時,可能會發生此問題。 例如,閑置逾時、遠端過程調用 (RPC) 逾時,或防火牆可能會關閉用戶端電腦與伺服器電腦之間的 MS DTC 連線。 發生新的交易要求時,用戶端計算機必須與伺服器計算機重新建立 MS DTC 連線。

當用戶端電腦嘗試重新建立與伺服器計算機的 MS DTC 連線時,用戶端電腦會傳送封包。 然後,用戶端計算機會等候來自伺服器計算機的系結封包回應。 根據預設,如果客戶端計算機在 4 秒內未收到伺服器電腦的回應,用戶端電腦就會停止交易。 伺服器電腦的回應可能會因為網路等待時間問題或驗證延遲而延遲。 當伺服器計算機的回應最終到達用戶端計算機時,後續的交易就會成功。

第一個交易可能需要很長的時間,然後稍後要求執行分散式交易可能會立即完成。 當 MS DTC 的用戶端與 Kerberos (KDC) 伺服器通訊時,可能會發生此問題。 一般而言,如果客戶端和伺服器位於具有防火牆的不同網域中,就會發生此問題。

例如,此問題發生在下列案例中:

  • Web 服務位於網域中的周邊網路。 Web 服務必須使用交易與內部網路中另一個網域中的資料庫伺服器。
  • 防火牆位於周邊網路與內部網路之間。 因為使用者數據報通訊協定 (UDP) 埠 88 (Kerberos) 遭到封鎖,因此發生第一筆交易的過度延遲。
  • Kerberos 要求的重試和重試間隔等於過度延遲(超過 100 秒)。

解決方法

警告

如果您使用登錄編輯程式或其他方法修改登錄時不正確,就可能發生嚴重的問題。 可能需要重新安裝作業系統才能解決這些問題。 Microsoft cannot guarantee that these problems can be solved. 修改登錄的風險請自負。

若要確定您遇到本文中所述的問題,請確認 MS DTC 事務歷史記錄檔包含下列數據:

;eventid=TRANSACTION_PROPOGATION_FAILED_CONNECTION_DOWN_FROM_REMOTE_TM ;tx_guid=f11cd9c9-7b8a-41e3-a904-4840123bacf7 ;”無法將交易傳播至子節點 'ComputerName',因為與遠端交易管理員的連線已關閉」

注意

在此數據中,「傳播」一詞是文字傳播的拼錯。 propogate 一詞是傳播字組的拼字錯誤。

如果 MS DTC 事務追蹤記錄檔包含此資料,請遵循下列步驟:

  1. 選取 [開始],選取 [執行],輸入 [regedit],然後選取 [確定]

  2. 找出下列登錄子機碼:
    HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC

  3. 以滑鼠右鍵按兩下 [MSDTC],指向 [ 新增],然後選取 [DWORD 值]。

  4. 輸入 CmMaxNumberBindRetries,然後按 ENTER。

  5. 以滑鼠右鍵按兩下 [CmMaxNumberBindRetries],然後選取 [ 修改]。

  6. 選取 [十進位]。

  7. 在 [ 值數據 ] 方塊中,輸入 60

    此值會增加用戶端電腦從伺服器計算機等候系結封包回應的時間長度。 如果客戶端電腦未收到系結封包回應,則此值是客戶端電腦停止交易之前的秒數。 例如,值為 60 等於 30 秒。 60 的值只是建議的值。 您可能需要對組態進行其他測試。

  8. 選取 [確定]。

  9. 重新啟動 MS DTC。

注意

針對緩慢的回應案例,請確定當周邊網路涉及防火牆時,Kerberos 驗證所需的埠 (UDP 88 和傳輸控制通訊協定 (TCP) 88 會開啟。 埠 UDP 389 和 TCP 389 (同時適用於輕量型目錄存取通訊協定 (LDAP) 才能尋找金鑰發佈中心 (KDC)也必須開啟。