2011-12-02 144 views
1

我有一臺運行MSDTC的Windows 2003服務器。我已將其設置爲「無身份驗證模式」,並允許入站出站設置。我的MSDTC有效,但當天的第一筆交易失敗。在即時另一筆交易中,它將開始工作。MSDTC間歇性失敗

錯誤是:該事務已被隱式或顯式提交或中止(從HRESULT異常:0x8004D00E)。

所以我開始MSDTC跟蹤,在跟蹤文件,它示出了這一點:

PID = 2144; TID = 2528;時間= 12/02/2011-10:49:39.140; SEQ = 531;事件ID = TRACING_STARTED ;;「MSDTC正在恢復長時間事務的跟蹤」

pid = 2144; tid = 2528; time = 12/02/2011-10:49:39.140; seq = 532;事件ID = TRANSACTION_BEGUN; tx_guid = 4df1b0cf-26a0-43ba-8f41-965d80f92441;「交易開始了,描述:''」

pid = 2144; tid = 3288; time = 12/02/2011-10:49:39.140; seq = 533;事件ID = RM_ENLISTED_IN_TRANSACTION; tx_guid = 4df1b0cf-26a0-43ba-8f41-965d80f92441; 「資源管理器#1002徵作爲事務登記#1 RM GUID = '4e45a393-b02a-42bf-8f66-62bcb17fee8e'」

PID = 2144; TID = 4164 ;時間= 12/02/2011-0:49:58.390; SEQ = 534;事件ID = TRANSACTION_PROPOGATION_FAILED_CONNECTION_DOWN_FROM_REMOTE_TM; tx_guid = 4df1b0cf-26a0-43ba-8f41-965d80f92441; 「沒有傳播完成交易的子節點 'DBSERVER',因爲與遠程交易管理器的連接去了」

PID = 2144; TID = 4164;時間= 12/02/2011-10:49:58.390; SEQ = 535; eventid = TRANSACTION_ABORTING; tx_guid = 4df1b0cf-26a0-43ba-8f41-965d80f92441;「transaction is aborting」

pid = 2144; tid = 4164; time = 12/02/2011-10:49:58.390; seq = 536 ;事件ID = RM_ISSUED_ABORT; tx_guid = 4df1b0cf-26a0-43ba-8f41-965d80f92441; 「中止請求發出到資源管理器#1002爲事務登記#1」

PID = 2144; TID = 2528;時間= 12/02/2011 -10:49:58.422; SEQ = 537;事件ID = RM_ACKNOWLEDGED_ABORT; tx_guid = 4df1b0cf-26a0-43ba-8f41-965d80f92441; 「從資源管理器#1002中止請求用於事務登記#1的接收的確認」

PID = 2144; TID = 2528;時間= 12/02/2011-10:49:58.422; SEQ = 538; eventid = TRANSACTION_ABORTED; tx_guid = 4df1b0cf-26a0-43ba-8f41-965d80f92441;「transaction has been aborted」

pid = 2144; tid = 3640; time = 12/02/2011-10:50:29.437; seq = 539;事件ID = TRACING_STOPPED ;;「MSDTC被暫停的長跟蹤 - 壽命交易由於缺乏活動的」

我已經從這裏施加戴維布利昂的劈,http://davybrion.com/blog/2010/03/msdtc-woes-with-nservicebus-and-nhibernate/

另外設置超時間隔爲10分鐘在交易選項中。

如果服務器保持空閒一段時間,交易將失敗。

在此先感謝..

+1

你看過這篇知識庫文章:http://support.microsoft.com/kb/922430。看起來**非常類似於您的問題。看起來你有兩臺服務器:一臺應用服務器和一臺DBServer?兩臺服務器上的DTC設置是否相同?服務器之間是否有防火牆?如果您有防火牆,有時可以幫助跟蹤防火牆中的活動。 –

+0

謝謝Tuzo,我的服務器在局域網中,他們沒有防火牆,儘管一個在工作組中,另一個在域中。現在我已經將它們都轉移到了域名中。從未見過這篇文章。根據文章,我已經更改了服務器上的註冊表。如果它是固定的,我會發布狀態。謝謝 – Bhoomi

+1

感謝Tuzo。這是同樣的問題。你的文章幫助我。我的問題已修復。 – Bhoomi

回答

1

這裏的知識庫文章,幫助:922430

如果MS DTC事務跟蹤日誌文件包含此數據,請按照下列步驟操作:

Click Start, click Run, type regedit, and then click OK. 
Locate the following registry subkey: 
HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC 
Right-click MSDTC, point to New, and then click DWORD Value. 
Type CmMaxNumberBindRetries, and then press ENTER. 
Right-click CmMaxNumberBindRetries, and then click Modify. 
Click Decimal. 
In the Value data box, type 60. 

該值增加時,該客戶端長度計算機等待來自服務器計算機的綁定數據包響應。如果客戶端計算機未收到綁定數據包響應,則此值是客戶端計算機停止事務之前秒數的兩倍。例如,60的值等於30秒。

說明值60只是推薦值。可能需要對您的配置進行額外的測試。 單擊確定。 重新啓動MS DTC。 注意對於響應緩慢的情況,請確保在外圍網絡中包含防火牆時,Kerberos身份驗證(UDP 88和TCP 88)所需的端口已打開。端口UDP 389和TCP 389(都用於LDAP以查找KDC)也必須打開。

+0

你能否更新知識庫文章鏈接? – Lijo