Update for the MS DRDA Service to better support distributed transactions


The Microsoft DRDA Service supports DRDA Distributed Unit of Work (DRDA DUW) two-phase commit transactions and XA distributed transactions in order to enable reliable updates over the network. Host Integration Server (HIS) 2013 Cumulative Update 3 (CU3) includes fixes and improvements to the DRDA Service distributed transactions support, as follows.

DRDA DUW transactions

Unlike the release version of the DRDA Service or previous cumulative updates, this update enables support for DRDA DUW transactions between DRDA Client and DRDA Service that are mapped to XA transactions between DRDA Service and SQL Server. This support occurs by distributing the DRDA DUW transaction (mapped to an XA transaction ID) to SQL Server and by enlisting the XA transaction with MS DTC. DRDA Service maintains a file-based (transactionlog.data) transaction record log (UOWID, XID, state, log data) for all DRDA sessions. When a DRDA session ends with an in-doubt transaction, DRDA Service requests that DRDA Client resynchronize the logs. And when DRDA Service starts up and finds in-doubt transactions in the log, DRDA Service requests that DRDA Client resynchronize the logs.

XA transactions

XA transactions between DRDA Client and DRDA Service are now distributed to SQL Server and are enlisted with MS DTC. During transaction recovery, DRDA Service returns to DRDA Client an in-doubt list that's based on information in the DTC transaction log.

Cumulative update information

This update is included in Cumulative Update 3 for Host Integration Server 2013.


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information

Data Integration (Configuration) Service for DRDA

Configuring Service for DRDA

Application configuration file
The DRDA Service configuration is stored in the MsDrdaService.exe.config application configuration file, and associated XML files (error message mapping and data type mapping). At run time, the DRDA Service monitors the MsDrdaService.exe.config file for changes. When changes are detected, the DRDA Service reads and uses the changed configuration information when it processes new in-bound connections.

Post-installation, IT professionals can customize the DRDA Service configuration by editing the MsDrdaService.exe.config application configuration file by using an XML editor and the associated C:\Program Files\Microsoft Host Integration Server 2013\system\Schemas\HostIntegrationDrdaServiceConfiguration.xsd file.

Configuring SQL Server connections

The resynchronizationManager element of the MsDrdaService.exe.config file contains the transaction resynchronization settings for managing in-bound SQL client distributed transactions. The resynchronizationManager type is the Microsoft.HostIntegration.Drda.Server.ResynchronizationManager that processes in-bound distributed transactions. This includes transaction enlistment with Microsoft Distributed Transaction Coordinator, transaction logging, and transaction in-doubt list resynchronization.

<hostIntegration.drdaAs.drdaService xmlns="http://schemas.microsoft.com/his/DrdaAs/DrdaService/2013">
<service name="DrdaService1">
<resynchronizationManager type="Microsoft.HostIntegration.Drda.Server.ResynchronizationManager, Microsoft.HostIntegration.Drda.Server,Version=9.0.1000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
resyncRetryDurationInMinutes = "3"
resyncIntervalInMinutes = "1"
transactionLogLocation =""

Example 1: Stock resynchronizationManager element added to the hostIntegration.drdaAs.drdaService section of the MsDrdaService.exe.config file.

Note You must add to the MsDrdaService.exe.config the new resynchronizationManager element before you run PowerShell to read or write settings within this new element.

Transaction expiry duration
The transactionExpriryDuration attribute instructs the DRDA Service about the duration of time to keep a transaction in a transaction record file. After the set period has passed, the service remotes the transaction from the file. This optional attribute accepts a duration value. The default value is PT3D (Period of Time is 3 days). The duration value is specified in the PnYnMnDTnHnMnS form.

Item Description
P Period of time for the duration (required)
nY Number of years.
nM Number of months.
nD Number of days.
T Start of a time section (required to specify a time duration that consists of hours, minutes, or seconds).
nH Number of hours.
nM Number of minutes.
S Number of seconds.
Table 1: Duration of time expressed in XML format.

Resynchronization retry duration
The resyncRetryDurationInMinutes attribute instructs the DRDA Service about the duration (in minutes) within which to retry processing an item in the resynchronization in-doubt transaction list. This optional attribute accepts an integer value. The default value is 3 minutes.

Resynchronization interval
The resyncIntervalInMinutes attribute instructs the DRDA Service about the interval (in minutes) between processing of items in the resynchronization in-doubt transaction list. This optional attribute accepts an integer value. The default value is 1 minute.

Transaction log location
The transactionLogLocation attribute instructs the DRDA Service about where it should write the transaction log file. This optional attribute accepts a string value. The default value is an empty string that's defined as the Host Integration Server trace folder.

For more information, see the MSDN documentation about DRDA Service Distributed Transactions.

Article ID: 3032484 - Last Review: Jan 27, 2016 - Revision: 1