2013-12-11 49 views
0

首先一點介紹給我們的設置:DTC問題4 - RM_COMMIT_DELIVERY_FAILED_DUE_TO_CONNECTION_DOWN

  • 基於WCF的應用程序與EF 4背景下注射使用Unity(無單)
  • 甲骨文在一個單獨的物理運行機
  • NServiceBus處理那些訪問Oracle通過相同的上下文上述

我們所遇到的問題的消息,只有在我們的UAT環境,是我們如果未收到DTC上的分佈式事務鎖,則無法發送多個消息。 DTC跟蹤告訴我們這個:

1. TRANSACTION_COMMITTED 
2. RM_ISSUED_COMMIT 
3. RM_ISSUED_COMMIT 
4. RM_ACKNOWLEDGED_COMMIT  
5. RM_COMMIT_DELIVERY_FAILED_DUE_TO_CONNECTION_DOWN 

任何好的想法?

回答

1

看來問題在於我們的客戶端應用程序WCF配置。

在我們的框架內部深處,我們設置了TransactionFlow = true,它試圖從客戶端開始設置事務範圍。如果我們運行我們的請求並觸發NServiceBus消息,我們將失去與客戶端的鏈接,並且無法提交事務。

所以TransactionFlow = false在app.config中救了我們。