How to configure MS-DTC for a Fabasoft Folio environment

Summary

MSDTC is used in Microsoft Windows environments with Microsoft SQL Server. Enviroments using Oracle or PostgreSQL instead use Fabasoft's own implementation, Distributed Transaction Manager (DTM).

Please note: A hotfix for Fabasoft Folio (and subordinated Fabasoft eGov-Suite and eCRM-Suite) is available to improve MS-DTC usage of Fabasoft Folio. Fabasoft recommends to install this hotfix. See details about the hotfix .

Information

Distributed transactions ensure the consistency of transactions across the borders of a database/tablespace. Fabasoft Folio uses 2-phase-commit with distributed transactions to ensure consistency. If the distributed transaction coordinator fails, Fabasoft Folio will result in errors indicating a DTC problem.

Possible errors and messages indicating a problem with MSDTC

The following error messages indicate a problem with MSDTC. The messages may appear in the Webbrowser client, Windows Eventlog of backend- and other Folio servers, and/or Fabasoft Tracer output.

No DTC found

Cannot commit distributed transaction

Bootstrap error: Unable to contact the Microsoft DTC

Could not prepare distributed transaction

The transaction manager has disabled its support for remote/network transactions

The transaction has already been implicitly or explicitly committed or aborted

New transaction cannot enlist in the specified transaction coordinator

Solution

Note: In the following, Microsoft Distributed Transaction Coordinator is abbreveated as MSDTC for easier readability.

Fabasoft Folio Configuration

In the Current Domain object, check if the property " Use 2-phase-commit" is activated. This needs to be enabled (default) to use distributed transactions.

Microsoft Windows Configuration

Make sure MSDTC is configured as cluster resource in a cluster enviroment (usually backendservers and database servers).

Make sure MSDTC is started on other servers using Fabasoft Folio Kernel (web servers, conversion servers, Mindbreeze servers etcetera)

On non-clustered servers using Fabasoft Folio, in Windows Services, we recommend to change the startup type from Automatic (Delayed Start) to Automatic . Otherwise the Fabasoft Folio Kernel may fail to connect to MSDTC after a server restart.

How to disable MSDTC distributed transactions

Warning: It is strongly recommended to leave distributed transactions enabled. Disabling distributed transactions means that multiple database transactions inside a Fabasoft Folio transaction are not monitored anymore. If a single database transaction inside a Folio transaction fails, Folio is not able to rollback the other database transactions. This may lead to inconsistency in the database.

In the case of problems configuring MSDTC you can disable the MSDTC usage.

This can be done in two ways:

Disabling MSDTC usage per Kernel/Server instance

Disabling MSDTC for the whole Fabasoft Folio Domain.

Disabling MSDTC usage per Kernel/Server instance

Logon as the webservice (or other service's Windows user)

Open regedit.exe and navigate to HKEY_CURRENT_USER\Software\Fabasoft\Environment

Create a string value named ENABLEDTC with the value False

Restart the webservice or Kernel instance

Disabling MSDTC usage for the whole Fabasoft Folio Domain

Open the Fabasoft Webbrowser Client

Navigate to the Domain Administration, Domain objects

Open the Current Domain object

Uncheck the property Enable 2-Phase Commit and apply the change.

Restart all Kernel instances to apply the change.

If you cannot open the Fabasoft Webbrowser Client because of a MSDTC error, first disable MSDTC by the environment variable.

Please re-enable MSDTC usage after you have fixed MSDTC in your environment.