DTC issues using Oracle and .NET 4 - RM_COMMIT_DELIVERY_FAILED_DUE_TO_CONNECTION_DOWN

303 views Asked by At

First a little intro to our setup:

  • WCF based app with EF 4 context injected using Unity (no singleton)
  • Oracle running on a seperate physical machine
  • NServiceBus handling messages that access Oracle through the same context as above

The problem we are experiencing, only on our UAT environment, is that we cannot send multiple messages without receiving distributed transaction locks on DTC. The DTC trace tells us this:

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

Any bright ideas?

1

There are 1 answers

1
Bjorn Bailleul On

It seems the problem lies within our client app WCF configuration.

Deep down in our framework we are setting TransactionFlow = true which tries to setup a transaction scope starting from the client. If we run our request and fire of a NServiceBus message we loose the link with our client and cannot commit the transaction.

So TransactionFlow = false in app.config saved us.