Jump to: navigation, search

Solve MSDTC-related problems


From version 4 on, UBIK® uses the Distributed Transaction Coordinator (MSDTC or DTC) to manage database transactions. However, there's the necessity for correct configuration on both the database server as well as the application server to make it work. This article explains how to do that.

IC Hint square.pngOn Microsoft Azure SQL Database services, MSDTC is not supported - but apparently, it's not needed either (as documented [here]). So If you don't face any problems this article can be ignored when working with Azure SQL Database.


Problem Symptoms

  • UBIK® Studio or a UBIK® service can't connect to your database or fails to create a session
  • Database view creation or instance data transfer doesn't work because of an exception
  • There's an error/exception log entry like: "Communication with the underlying transaction manager has failed"

Solution

[edit]

Configuring MSDTC Network Access

MSDTC has to be configured on both the machine where the database is hosted and the machine where the UBIK® software accessing the database is run. Usually, this is a database server and an application server provided by the customer or hosted in the cloud.

The configuration is described here:

Use the following steps to configure DTC network access:

  • Open the "Component Services" console (typing that into the Windows start menu should find you the right app)
  • In the Component Services console, you should see a tree view to the left.
  • Navigate down Console Root - Component Services - Computers - My Computer - Distributed Transaction Coordinator - Local DTC
  • Right-click on "Local DTC" and click on "Properties"
  • In the "Security" tab of the properties dialog, enable the checkboxes for
    • "Network DTC Access" right at the top
    • "Allow Inbound" in the section "Transaction Manager Configuration"
    • "Allow Outbound" in the section "Transaction Manager Configuration"
  • Choose the radio box for "No Authentication Required" in the section "Transaction Manager Configuration".
  • Make sure the "NT AUTHORITY\NetworkService" account without credentials is specified in the "DTC Logon Account" section.
  • Click Apply and OK.
IC Attention.pngPlease make sure this is done in both the database server as well as the application server!
IC Attention.pngThe involved (host and client) machine names have to be found via DNS or NetBIOS; MSDTC doesn't work with just IP-addresses.
IC Hint square.pngIf the customer requires it, you might have to adapt the authentication settings. This is not explored in this article.

See also