Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

FIX: The size of DTC log file cannot be changed in Microsoft Windows Server 2003 SP1


View products that this article applies to.

Symptoms

When you try to change the size of the Microsoft Distributed Transaction Coordinator (DTC) log file in Microsoft Windows Server 2003, the size of the DTC log file does not change.

Note This problem occurs when you run the DTC in a cluster environment.

↑ Back to the top


Cause

This problem occurs because of the way that the DTC handles cluster node names. If the DTC cluster node name contains more than or fewer than 15 characters, the name is read incorrectly and the size of the log file cannot be changed.

↑ Back to the top


Workaround

Important This article contains information about how to modify the registry. Make sure to back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:
256986 Description of the Microsoft Windows registry
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.

To work around this problem, create a new script file to change the DTC log file size value in the Microsoft Windows registry:
  1. Click Start, point to All Programs, point to Accessories, and then click Notepad.
  2. In the Notepad window, add the following code:
    '==========================================================================
    '
    ' NAME: SetMSDTCLogSize2003Cluster.vbs
    '
    ' AUTHOR: Mark D. MacLachlan, Microsoft
    ' DATE  : 6/20/2006
    '
    '    This code is copyright (c) 2006 Microsoft Corporation.
    '
    '    All rights reserved.
    '
    '    THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
    '    ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED To
    '    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
    '    PARTICULAR PURPOSE.
    '
    '    IN NO EVENT SHALL MICROSOFT AND/OR ITS RESPECTIVE SUPPLIERS BE
    '    LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
    '    DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
    '    WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
    '    ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
    '    OF THIS CODE OR INFORMATION.
    '
    ' COMMENT: Sets the MSDTC log size in clustered 2003 servers.
    '
    '==========================================================================
    
    On Error Resume Next
    Const HKEY_LOCAL_MACHINE = &H80000002
    Set WSHShell = Wscript.CreateObject("WScript.Shell")
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
    ".\root\default:StdRegProv")
    
    NewLogSize = GetLogSize
    
    Set StdOut = WScript.StdOut
    strKeyPath = "Cluster\Resources\"
    oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
    
    For Each subkey In arrSubKeys
    	Key = WSHShell.RegRead("HKLM\" & strKeyPath & subkey & "\Name")
    	If Trim(Key) = "ms dtc" Then
    	   MSDTCGUID = strKeyPath & subkey & "\"
    	End If
    	 Err.Clear
         Key = vbNothing
    Next
    oReg.EnumKey HKEY_LOCAL_MACHINE, MSDTCGUID, arrSubKeys
    For Each subkey In arrSubKeys
        LogSize = WSHShell.RegRead("HKLM\" & MSDTCGUID & subkey & "\DtcLogSize")
        If Err = 0 Then
        	LogLocation = "HKLM\" & MSDTCGUID & subkey & "\DtcLogSize"
        	WSHShell.RegWrite LogLocation, NewLogSize
        End If 
    Next
    WScript.Sleep 1000
    CurrentLogSize = WSHShell.RegRead(LogLocation)
    
    InformText = "Log Size Set To: " & CurrentLogSize & "MB" &_ 
                 vbCrLf & "Click Yes to restart services for the change to take affect." &_ 
                 vbCrLf & "Please be patient, this may take a few minutes."
                 
    If Msgbox(InformText, vbYesNo, "Restart Services?") = vbYes Then
    	MakeItSo
    Else
    	WScript.Echo "You must execute the following commands for changes to take affect:" &_ 
    	vbCrlf & "NET STOP MSDTC" &_ 
    	vbCrlf & "MSDTC -RESETLOG" &_ 
    	vbCrlf & "NET START MSDTC"
    End If
    WScript.Quit
      
    Function GetLogSize()
       ExtendedLogSize = InputBox("Enter New MSDTC Log Size Value (MB)","Set New Log Size")
       If IsNumeric(ExtendedLogSize) Then
           GetLogSize = ExtendedLogSize
       Else
           GetLogSize
       End If    
    End Function
    
    
    Function MakeItSo()
    	'Stop the MSDTC service.
    	StopMSDTC
    	'Wait for service to be stopped.
    	While  CheckMSDTCStatus <> "Stopped" 
    		WScript.Sleep 10
    	Wend
    	'Reset the log size.
    	WSHShell.Run ("CMD.EXE /C MSDTC -RESETLOG")
    	'Restart the MSDTC service.
    	wscript.sleep 1000
    	StartMSDTC
    	While  CheckMSDTCStatus <> "Running" 
    		WScript.Sleep 10
    	Wend
    	MsgBox "Services Restarted Successfully, New Log Size Is Now Active"
    End Function
    
    Function StartMSDTC()
    'Start the MSDTC service.
    	Set objWMIService = GetObject("winmgmts:" _
    	    & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    	Set colServiceList = objWMIService.ExecQuery _
    	        ("Select * from Win32_Service where Name='MSDTC'")
    	For each objService in colServiceList
    	    errReturn = objService.StartService()
    	Next
    End Function
    
    Function StopMSDTC()
    'Stop the MSDTC service.
    	Set objWMIService = GetObject("winmgmts:" _
    	    & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    	Set colServiceList = objWMIService.ExecQuery _
    	        ("Select * from Win32_Service where Name='MSDTC'")
    	For each objService in colServiceList
    	    errReturn = objService.StopService()
    	Next
    End Function
    
    Function CheckMSDTCStatus()
    'Get the MSDTC current status.
    	Set objWMIService = GetObject("winmgmts:" _
    	    & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    	Set colRunningServices = objWMIService.ExecQuery _
    	    ("Select * from Win32_Service where Name='MSDTC'")
    	For Each objService in colRunningServices 
    	    CheckMSDTCStatus = objService.State
    	Next
    End Function
  3. On the File menu, click Save As.
  4. Click Desktop, type ChangeMSDTCLogSize.vbs in the File name box, and then click Save.

    A new script file that is named ChangeMSDTCLogSize.vbs is created on the Windows desktop.
  5. Minimize all open windows, and then double-click ChangeMSDTCLogSize.vbs.

    The ChangeMSDTCLogSize.vbs script is started.
  6. When you are prompted, type 5, and then click OK.

    In this example, the size of the DTC log file is changed to 5 MB. You can enter any numeric value that you want.
  7. Click Yes to restart the MSDTC service and enable the new log file size.

↑ Back to the top


Resolution

Service pack information

To resolve this problem, obtain the latest service pack for Windows Server 2003. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
889100 How to obtain the latest service pack for Windows Server 2003

Hotfix information

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site: Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.

Prerequisites

You must have Windows Server 2003 Service Pack 1 (SP1) installed.

Restart requirement

You must restart your computer after you apply this hotfix.

Hotfix replacement information

This hotfix does not replace a previously released hotfix.

Hotfix file information

After the hotfix is installed, the English version of this hotfix has the file attributes, or a later version of the file attributes, that are listed in the following table:
Windows Server 2003, x86-based versions
File nameFile versionFile sizeDateTimePlatformSP requirementService branch
Catsrv.dll2001.12.4720.2698273,92009-May-200603:22x86SP1SP1QFE
Catsrvut.dll2001.12.4720.2698619,00809-May-200603:22x86SP1SP1QFE
Clbcatq.dll2001.12.4720.2698513,53609-May-200603:22x86SP1SP1QFE
Colbact.dll2001.12.4720.269858,88009-May-200603:22x86SP1SP1QFE
Comadmin.dll2001.12.4720.2698196,60809-May-200603:22x86SP1SP1QFE
Comrepl.dll2001.12.4720.269888,57609-May-200603:22x86SP1SP1QFE
Comsvcs.dll2001.12.4720.26981,268,73609-May-200603:22x86SP1SP1QFE
Comuid.dll2001.12.4720.2698596,48009-May-200603:22x86SP1SP1QFE
Es.dll2001.12.4720.2698238,59209-May-200603:22x86SP1SP1QFE
Msdtcprx.dll2001.12.4720.2698470,52809-May-200603:22x86SP1SP1QFE
Msdtctm.dll2001.12.4720.26981,010,17609-May-200603:22x86SP1SP1QFE
Msdtcuiu.dll2001.12.4720.2698165,88809-May-200603:22x86SP1SP1QFE
Mtxclu.dll2001.12.4720.269879,36009-May-200603:22x86SP1SP1QFE
Mtxdm.dll2001.12.4720.269820,99209-May-200603:22x86SP1SP1QFE
Mtxoci.dll2001.12.4720.2698111,10409-May-200603:22x86SP1SP1QFE
Ole32.dll5.2.3790.26981,247,74409-May-200603:22x86SP1SP1QFE
Olecli32.dll5.2.3790.269875,77609-May-200603:22Not ApplicableSP1SP1QFE
Olecnv32.dll5.2.3790.269838,91209-May-200603:22x86SP1SP1QFE
Rpcss.dll5.2.3790.2698421,88809-May-200603:22x86SP1SP1QFE
Stclient.dll2001.12.4720.269864,00009-May-200603:22x86SP1SP1QFE
Txflog.dll2001.12.4720.269898,81609-May-200603:22x86SP1SP1QFE
Updspapi.dll6.2.29.0371,42412-Oct-200523:13x86NoneNot Applicable
Windows Server 2003, x64-based versions
File nameFile versionFile sizeDateTimePlatformSP requirementService branch
Catsrv.dll2001.12.4720.2698418,30409-May-200604:23x64SP1SP1QFE
Catsrvut.dll2001.12.4720.26981,083,90409-May-200604:23x64SP1SP1QFE
Clbcatq.dll2001.12.4720.2698882,17609-May-200604:23x64SP1SP1QFE
Colbact.dll2001.12.4720.269897,28009-May-200604:23x64SP1SP1QFE
Comadmin.dll2001.12.4720.2698288,76809-May-200604:23x64SP1SP1QFE
Comrepl.dll2001.12.4720.2698188,92809-May-200604:23x64SP1SP1QFE
Comsvcs.dll2001.12.4720.26982,194,94409-May-200604:23x64SP1SP1QFE
Comuid.dll2001.12.4720.26981,478,14409-May-200604:23x64SP1SP1QFE
Es.dll2001.12.4720.2698365,56809-May-200604:23x64SP1SP1QFE
Msdtcprx.dll2001.12.4720.2698830,97609-May-200604:23x64SP1SP1QFE
Msdtctm.dll2001.12.4720.26982,072,57609-May-200604:23x64SP1SP1QFE
Msdtcuiu.dll2001.12.4720.2698291,32809-May-200604:23x64SP1SP1QFE
Mtxclu.dll2001.12.4720.2698145,40809-May-200604:23x64SP1SP1QFE
Mtxdm.dll2001.12.4720.269830,20809-May-200604:23x64SP1SP1QFE
Mtxoci.dll2001.12.4720.2698175,10409-May-200604:23x64SP1SP1QFE
Ole32.dll5.2.3790.26982,547,20009-May-200604:23x64SP1SP1QFE
Olecli32.dll5.2.3790.2698131,58409-May-200604:23x64SP1SP1QFE
Olecnv32.dll5.2.3790.269856,83209-May-200604:23x64SP1SP1QFE
Rpcss.dll5.2.3790.2698698,36809-May-200604:23x64SP1SP1QFE
Stclient.dll2001.12.4720.2698101,88809-May-200604:23x64SP1SP1QFE
Txflog.dll2001.12.4720.2698180,22409-May-200604:23x64SP1SP1QFE
Wcatsrv.dll2001.12.4720.2698273,92009-May-200604:23x86SP1WOW
Wcatsrvut.dll2001.12.4720.2698619,00809-May-200604:23x86SP1WOW
Wclbcatq.dll2001.12.4720.2698513,53609-May-200604:23x86SP1WOW
Wcolbact.dll2001.12.4720.269858,88009-May-200604:23x86SP1WOW
Wcomadmin.dll2001.12.4720.2698196,60809-May-200604:23x86SP1WOW
Wcomsvcs.dll2001.12.4720.26981,268,73609-May-200604:23x86SP1WOW
Wcomuid.dll2001.12.4720.2698596,48009-May-200604:23x86SP1WOW
Wes.dll2001.12.4720.2698238,59209-May-200604:23x86SP1WOW
Wmsdtcprx.dll2001.12.4720.2698470,52809-May-200604:23x86SP1WOW
Wmsdtcuiu.dll2001.12.4720.2698165,88809-May-200604:23x86SP1WOW
Wmtxclu.dll2001.12.4720.269879,36009-May-200604:23x86SP1WOW
Wmtxdm.dll2001.12.4720.269820,99209-May-200604:23x86SP1WOW
Wmtxoci.dll2001.12.4720.2698111,10409-May-200604:23x86SP1WOW
Wole32.dll5.2.3790.26981,247,74409-May-200604:23x86SP1WOW
Wolecli32.dll5.2.3790.269875,77609-May-200604:23Not ApplicableSP1WOW
Wolecnv32.dll5.2.3790.269838,91209-May-200604:23x86SP1WOW
Wstclient.dll2001.12.4720.269864,00009-May-200604:23x86SP1WOW
Wtxflog.dll2001.12.4720.269898,81609-May-200604:23x86SP1WOW
Updspapi.dll6.2.29.0462,04809-May-200604:29x64NoneNot Applicable
Windows Server 2003, Itanium-based versions
File nameFile versionFile sizeDateTimePlatformSP requirementService branch
Catsrv.dll2001.12.4720.2698657,40809-May-200604:23IA-64SP1SP1QFE
Catsrvut.dll2001.12.4720.26981,631,74409-May-200604:23IA-64SP1SP1QFE
Clbcatq.dll2001.12.4720.26981,352,19209-May-200604:23IA-64SP1SP1QFE
Colbact.dll2001.12.4720.2698181,76009-May-200604:23IA-64SP1SP1QFE
Comadmin.dll2001.12.4720.2698420,35209-May-200604:23IA-64SP1SP1QFE
Comrepl.dll2001.12.4720.2698285,18409-May-200604:23IA-64SP1SP1QFE
Comsvcs.dll2001.12.4720.26983,365,88809-May-200604:23IA-64SP1SP1QFE
Comuid.dll2001.12.4720.26981,977,85609-May-200604:23IA-64SP1SP1QFE
Es.dll2001.12.4720.2698701,95209-May-200604:24IA-64SP1SP1QFE
Msdtcprx.dll2001.12.4720.26981,337,85609-May-200604:24IA-64SP1SP1QFE
Msdtctm.dll2001.12.4720.26983,097,08809-May-200604:24IA-64SP1SP1QFE
Msdtcuiu.dll2001.12.4720.2698486,40009-May-200604:24IA-64SP1SP1QFE
Mtxclu.dll2001.12.4720.2698208,89609-May-200604:24IA-64SP1SP1QFE
Mtxdm.dll2001.12.4720.269847,61609-May-200604:24IA-64SP1SP1QFE
Mtxoci.dll2001.12.4720.2698322,04809-May-200604:24IA-64SP1SP1QFE
Ole32.dll5.2.3790.26983,999,74409-May-200604:24IA-64SP1SP1QFE
Olecli32.dll5.2.3790.2698252,41609-May-200604:24IA-64SP1SP1QFE
Olecnv32.dll5.2.3790.269890,11209-May-200604:24IA-64SP1SP1QFE
Rpcss.dll5.2.3790.2698859,64809-May-200604:24IA-64SP1SP1QFE
Stclient.dll2001.12.4720.2698149,50409-May-200604:24IA-64SP1SP1QFE
Txflog.dll2001.12.4720.2698301,56809-May-200604:24IA-64SP1SP1QFE
Wcatsrv.dll2001.12.4720.2698273,92009-May-200604:24x86SP1WOW
Wcatsrvut.dll2001.12.4720.2698619,00809-May-200604:24x86SP1WOW
Wclbcatq.dll2001.12.4720.2698513,53609-May-200604:24x86SP1WOW
Wcolbact.dll2001.12.4720.269858,88009-May-200604:24x86SP1WOW
Wcomadmin.dll2001.12.4720.2698196,60809-May-200604:24x86SP1WOW
Wcomsvcs.dll2001.12.4720.26981,268,73609-May-200604:24x86SP1WOW
Wcomuid.dll2001.12.4720.2698596,48009-May-200604:24x86SP1WOW
Wes.dll2001.12.4720.2698238,59209-May-200604:24x86SP1WOW
Wmsdtcprx.dll2001.12.4720.2698470,52809-May-200604:24x86SP1WOW
Wmsdtcuiu.dll2001.12.4720.2698165,88809-May-200604:24x86SP1WOW
Wmtxclu.dll2001.12.4720.269879,36009-May-200604:24x86SP1WOW
Wmtxdm.dll2001.12.4720.269820,99209-May-200604:24x86SP1WOW
Wmtxoci.dll2001.12.4720.2698111,10409-May-200604:24x86SP1WOW
Wole32.dll5.2.3790.26981,247,74409-May-200604:24x86SP1WOW
Wolecli32.dll5.2.3790.269875,77609-May-200604:24Not ApplicableSP1WOW
Wolecnv32.dll5.2.3790.269838,91209-May-200604:24x86SP1WOW
Wstclient.dll2001.12.4720.269864,00009-May-200604:24x86SP1WOW
Wtxflog.dll2001.12.4720.269898,81609-May-200604:24x86SP1WOW
Updspapi.dll6.2.29.0638,68809-May-200604:29IA-64NoneNot Applicable

↑ Back to the top


Status

Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section. This problem was first corrected in Windows Server 2003 Service Pack 2.

↑ Back to the top


More information

Steps to reproduce the problem

  1. Click Start, point to Administrative Tools, and then click Component Services.
  2. Double-click Component Services, and then double-click Computers.
  3. Right-click My Computer, and then click Properties.
  4. Click MSDTC.

    Note By default, the value of the Capacity setting is 4.
  5. Change the value of the Capacity setting to 5, and then click OK.
  6. Click Start, point to Administrative Tools, and then click Component Services.
  7. Double-click Component Services, and then double-click Computers.
  8. Right-click My Computer, and then click Properties.
  9. Click MSDTC. Notice that the value of the Capacity setting has been reset to 4, and that the size of the C:\mstdtc\msdtc.log log file has not changed.
  10. Click OK.

↑ Back to the top


Keywords: kbautohotfix, kbwinserv2003sp2fix, kbwinserv2003presp2fix, kbqfe, kbhotfixserver, kbfix, KB919034

↑ Back to the top

Article Info
Article ID : 919034
Revision : 9
Created on : 3/21/2007
Published on : 3/21/2007
Exists online : False
Views : 193