Event ID 4191 — Microsoft Distributed Transaction Coordinator Service Log Availability

Applies To: Windows Server 2008

The Microsoft Distributed Transaction Coordinator service (MSDTC) is running on a clustered server for increased reliability, based on the failover capabilities of the clustered servers.

Event Details

Product: Windows Operating System
ID: 4191
Source: Microsoft-Windows-MSDTC
Version: 6.0
Symbolic Name: IDS_DTC_E_TMSTARTFAILED_UNABLETOUNPACKNAMEOBJECT
Message: MS DTC Transaction Manager start failed. Unable to unpack name object, error %1.%0

Resolve

Increase the log size or resolve old transactions

The system indicates that there is a problem with the size of the log file for the Microsoft Distributed Transaction Coordinator service (MSDTC). You may be able to fix the problem by resolving old transactions in the Transactions List in the Component Services administrative tool or by increasing the size of the log file. Restart MSDTC if you change the size of the log file.

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

Open Component Services and manually resolve old transactions:

To open Component Services and manually resolve old transactions:

  1. Click Start, and then click Run.

  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.

  3. Click Component Services, click Computers, click My Computer, and then click Distributed Transaction Coordinator.

  4. Click Local DTC, and then click Transaction List.

  5. In the Transaction List, right-click the transaction that you want to resolve, point to Resolve, and then click Commit.

    When a transaction's Commit outcome is forced (that is, the transaction is resolved manually as committed), the transaction is designated as Forced Commit.

Open Component Services and change the size of the MSDTC log file:

To open Component Services and change the size of the MSDTC log file:

  1. Click Start, and then click Run.
  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
  3. Click Component Services, click Computers, click My Computer, click Distributed Transaction Coordinator, and then click Local DTC.
  4. Right-click the Local DTC, and then click Properties.
  5. In the Local DTC properties dialog box, click the Logging tab. Under Log Information, increase the size of the log file by typing a new number in Capacity, and then click OK.

Restart MSDTC:

To restart MSDTC:

  1. Click Start, and then click Run.

  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.

  3. Click Services.

  4. In the Services pane, right-click Distributed Transaction Coordinator, and then click Restart.

    The system stops and then restarts MSDTC.

Change the MSDTC log path

Ensure that the log path in the Component Services administrative tool points to a folder that exists in the file system.

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To open Component Services and check the location of the Microsoft Distributed Transaction Coordinator service (MSDTC) log file:

  1. Click Start, and then click Run.
  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
  3. Click Component Services, click Computers, click My Computer, click Distributed Transaction Coordinator, and then click Local DTC.
  4. Right-click the Local DTC, and then click Properties.
  5. In the Local DTC properties dialog box, click the Logging tab. Under Log Information, check whether the path in Location points to a valid folder on the file system. If it does not, type a new path in Location, and then restart MSDTC.

To restart MSDTC:

  1. Click Start, and then click Run.

  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.

  3. Click Services.

  4. In the Services pane, right-click Distributed Transaction Coordinator, and then click Restart.

    The system stops and then restarts MSDTC.

Free disk space, or move the log file to another drive

There is not enough disk space for the log file for Microsoft Distributed Transaction Coordinator service (MSDTC) in its current location. Check the current location of the MSDTC log file, and then free disk space on that drive by deleting files, or move the log file to another drive with more disk space.

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

Check the location of the MSDTC log file

To open Component Services and check the location of the MSDTC log file:

  1. Click Start, and then click Run.
  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
  3. Click Component Services, click Computers, click My Computer, click Distributed Transaction Coordinator, and then click Local DTC.
  4. Right-click the Local DTC, and then click Properties.
  5. In the Local DTC properties dialog box, click the Logging tab. Under Log Information, check the path in Location to identify the current drive and location of the log file. By default, the log file is located in the \windows\system32 folder.

If you decide to move the log file to another drive, first stop MSDTC, move the log file, and then restart MSDTC.

Stop MSDTC

To stop MSDTC:

  1. Click Start, and then click Command Prompt.
  2. At the command prompt, type net stop msdtc, and then press ENTER.

Move the MSDTC log file to another drive

To open Component Services and move the MSDTC log file to another drive:

  1. Click Start, and then click Run.
  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
  3. Click Component Services, click Computers, click My Computer, click Distributed Transaction Coordinator, and then click Local DTC.
  4. Right-click the Local DTC, and then click Properties.
  5. In the Local DTC properties dialog box, click the Logging tab. Under Log Information, in Location, type a new drive letter and location for the log file.

Restart MSDTC

To restart MSDTC:

  1. Click Start, and then click Command Prompt.
  2. At the command prompt, type net start msdtc, and then press ENTER.

Remove the read-only attribute from the MSDTC log

The system indicates that the log file for the Microsoft Distributed Transaction Coordinator service (MSDTC) is read only. Find the log file. By default, the log file is located in the \windows\system32 folder. When you locate the log file, remove the read-only file attribute.

To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To open Component Services and find the location of the MSDTC log file:

  1. Click Start, and then click Run.
  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
  3. Click Component Services, click Computers, click My Computer, click Distributed Transaction Coordinator, and then click Local DTC.
  4. Right-click the Local DTC, and then click Properties.
  5. In the Local DTC properties dialog box, click the Logging tab. Under Log Information, find the path in Location to identify the current drive and location of the log file. By default, the log file is located in the \windows\system32 folder.

Run the MSDTC Resetlog utility

The system indicates that the problem in the log file for the Microsoft Distributed Transaction Coordinator service (MSDTC) may be resolved by running the Resetlog utility. Before you run this utility, ensure that there are no transactions in the Transaction List with a status of In Doubt.

A status of In Doubt means that there is no information available about the outcome of this transaction. This can happen if the connection was lost between the MSDTC proxy and the transaction manager that is acting as the commit coordinator. The transaction may have committed or not. MSDTC lost communication with that transaction manager after preparing, but before receiving, the information about the transaction's outcome.

The transaction remains prepared and in doubt until communication is restored with the superior transaction manager. The system administrator can force an In Doubt transaction to commit manually by using the Component Services administrative tool.

Verify that all Resource Managers (RMs) that enlist in MSDTC transactions are consistent. RMs operate with relational databases, Message Queuing, transactional files, and object-oriented databases. After you are sure that all RMs are consistent, you can force an In Doubt transaction to commit manually.

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To verify the status of transactions and commit In Doubt transactions manually:

  1. Click Start, and then click Run.

  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.

  3. Click Component Services, click Computers, click My Computer, and then click Distributed Transaction Coordinator.

  4. Click Local DTC, and then click Transaction List.

  5. In the Transaction List, look for any transactions with a status of In Doubt. Right-click a transaction with the status of In Doubt, point to Resolve, and then click Commit.

    When a transaction's Commit outcome is forced (that is, the transaction is committed manually), the transaction is designated as Forced Commit.

To run the Reset utility:

  1. Click Start, and then click Command Prompt.
  2. At the command prompt, type msdtc -resetlog, and then press ENTER.

Increase the number of MSDTC log buffers

The system indicates that the problem in the log file for the Microsoft Distributed Transaction Coordinator service (MSDTC) might be resolved if you increase the number of log buffers by using the Component Services administrative tool.

To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To open Component Services and increase the number of log buffers:

  1. Click Start, and then click Run.

  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.

  3. Click Component Services, click Computers, click My Computer, click Distributed Transaction Coordinator, and then click Local DTC.

  4. Right-click the Local DTC, and then click Properties.

  5. In the Local DTC properties dialog box, click the Tracing tab. Under Logging Options, type a new number in Max. Num. Of Memory Buffers (size PageSize).

    The default maximum value is 25. If you increase this limit, MSDTC writes a message to Event Viewer. This memory is taken out of the nonpageable buffer. Therefore, if the amount of memory that is available in the nonpageable buffer is not sufficient, you might not be able to set a high number for this value. In this case, MSDTC displays a warning message. If this happens, click OK.

Restore Msdtclog.dll, and restart MSDTC

The system indicates that there is a problem with the Msdtclog.dll file, which is located in the \windows\system32 folder. Check this folder to see if the Msdtclog.dll file is there. If the Msdtclog.dll file is present in the \windows\system32 folder, stop and then restart the Microsoft Distributed Transaction Coordinator service (MSDTC). If the file is not there, restore it from a backup (or other means) to this location, and then restart MSDTC.

To perform these procedures, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To open Component Services and restart MSDTC:

  1. Click Start, and then click Run.

  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.

  3. Click Services.

  4. In the Services pane, right-click Distributed Transaction Coordinator, and then click Restart.

    The system stops and then restarts the MSDTC.

To stop and then restart MSDTC if the Msdtclog.dll file is not present in the default location:

  1. Click Start, and then click Command Prompt.
  2. At the command prompt, type net stop msdtc, and then press ENTER.
  3. At the command prompt, type net start msdtc, and then press ENTER.

If you continue to get this error, note the details in the event message, and then contact Microsoft Customer Service and Support (CSS). For information about how to contact CSS, see Enterprise Support (https://go.microsoft.com/fwlink/?LinkId=52267).

Reinstall MSDTC

The system reports an incompatible version of the Microsoft Distributed Transaction Coordinator service (MSDTC). This problem may be resolved by uninstalling and then reinstalling MSDTC.

To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To uninstall and then reinstall MSDTC:

  1. Click Start, and then click Command Prompt.
  2. At the command prompt, type msdtc -uninstall, and then press ENTER.
  3. At the command prompt, type msdtc -install, and then press ENTER.

Verify

Use the Component Services administrative tool to verify that the log file for the Microsoft Distributed Transaction Coordinator service (MSDTC) is created in the appropriate location.

To perform this procedure, you must have membership in Administrators, or you must have been delegated the appropriate authority.

To open Component Services and verify the location of the MSDTC log file:

  1. Click Start, and then click Run.
  2. Type comexp.msc, and then click OK. If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
  3. Click Component Services, click Computers, click My Computer, click Distributed Transaction Coordinator, and then click Local DTC.
  4. Right-click the Local DTC, and then click Properties.
  5. In the Local DTC properties dialog box, click the Logging tab. Under Log Information, verify that the location of the log file is appropriate for the MSDTC.

Microsoft Distributed Transaction Coordinator Service Log Availability

Application Server