Last update: 4 August 2017
This article is a description how to test distributed transactions in a Fabasoft Folio environment with more than one COO-Service.
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 urgently recommends to install this hotfix. See details for this hotfix .
Microsoft Distributed Transaction Coordinator (MSDTC) is used to control transactions spanning to more than one COO-Service in an SQL Server environment (Microsoft Windows). MSDTC is a Microsoft Windows service and needs to be available on all servers involved to the distributed transaction (SQL Server, Fabasoft Backendservers, Webservers,...)
Fabasoft Distributed Transaction Manager (DTM) is used to control transactions spanning to more than one COO-Service in an Oracle or PostgreSQL environment (Microsoft Windows and Linux). Fabasoft DTM is implemented in the COO-Service binary. No 3rd party or operating system services are used.
Distributed transactions ensure the consistency of transactions across the borders of a database/tablespace.
To test distributed transactions it is necessary to insert/update multiple objects in one (distributed) transaction. A distributed transaction is only initialized, if database changes span to at least two COO-Services (databases/tablespaces). As opposed to this, multiple changes in one database/tablespace do not perform a distributed transaction, but a normal transaction.
This example explains how to create two objects in different databases/tablespaces, so a distributed transaction is used.
Summary: This guide shows interesting perfmon counters, and how to perform a distributed transaction by creating two objects using different COO-Services.
1. Run Perfmon (MSDTC only)
2. Find object classes with different object placements
3. Create a distributed transaction
4. Repeat the test for COO-Services on different backendservers (e.g. cluster environment)
To ensure that MSDTC is working also in a distributed environment (cluster), retry the above test with COO-Services on different backendservers.