Microsoft KB Archive/919034

From BetaArchive Wiki

Article ID: 919034

Article Last Modified on 3/21/2007



APPLIES TO

  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 Service Pack 1
  • Microsoft Windows Server 2003, 64-Bit Datacenter Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition




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.

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.

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.


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

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 name File version File size Date Time Platform SP requirement Service branch
Catsrv.dll 2001.12.4720.2698 273,920 09-May-2006 03:22 x86 SP1 SP1QFE
Catsrvut.dll 2001.12.4720.2698 619,008 09-May-2006 03:22 x86 SP1 SP1QFE
Clbcatq.dll 2001.12.4720.2698 513,536 09-May-2006 03:22 x86 SP1 SP1QFE
Colbact.dll 2001.12.4720.2698 58,880 09-May-2006 03:22 x86 SP1 SP1QFE
Comadmin.dll 2001.12.4720.2698 196,608 09-May-2006 03:22 x86 SP1 SP1QFE
Comrepl.dll 2001.12.4720.2698 88,576 09-May-2006 03:22 x86 SP1 SP1QFE
Comsvcs.dll 2001.12.4720.2698 1,268,736 09-May-2006 03:22 x86 SP1 SP1QFE
Comuid.dll 2001.12.4720.2698 596,480 09-May-2006 03:22 x86 SP1 SP1QFE
Es.dll 2001.12.4720.2698 238,592 09-May-2006 03:22 x86 SP1 SP1QFE
Msdtcprx.dll 2001.12.4720.2698 470,528 09-May-2006 03:22 x86 SP1 SP1QFE
Msdtctm.dll 2001.12.4720.2698 1,010,176 09-May-2006 03:22 x86 SP1 SP1QFE
Msdtcuiu.dll 2001.12.4720.2698 165,888 09-May-2006 03:22 x86 SP1 SP1QFE
Mtxclu.dll 2001.12.4720.2698 79,360 09-May-2006 03:22 x86 SP1 SP1QFE
Mtxdm.dll 2001.12.4720.2698 20,992 09-May-2006 03:22 x86 SP1 SP1QFE
Mtxoci.dll 2001.12.4720.2698 111,104 09-May-2006 03:22 x86 SP1 SP1QFE
Ole32.dll 5.2.3790.2698 1,247,744 09-May-2006 03:22 x86 SP1 SP1QFE
Olecli32.dll 5.2.3790.2698 75,776 09-May-2006 03:22 Not Applicable SP1 SP1QFE
Olecnv32.dll 5.2.3790.2698 38,912 09-May-2006 03:22 x86 SP1 SP1QFE
Rpcss.dll 5.2.3790.2698 421,888 09-May-2006 03:22 x86 SP1 SP1QFE
Stclient.dll 2001.12.4720.2698 64,000 09-May-2006 03:22 x86 SP1 SP1QFE
Txflog.dll 2001.12.4720.2698 98,816 09-May-2006 03:22 x86 SP1 SP1QFE
Updspapi.dll 6.2.29.0 371,424 12-Oct-2005 23:13 x86 None Not Applicable
Windows Server 2003, x64-based versions
File name File version File size Date Time Platform SP requirement Service branch
Catsrv.dll 2001.12.4720.2698 418,304 09-May-2006 04:23 x64 SP1 SP1QFE
Catsrvut.dll 2001.12.4720.2698 1,083,904 09-May-2006 04:23 x64 SP1 SP1QFE
Clbcatq.dll 2001.12.4720.2698 882,176 09-May-2006 04:23 x64 SP1 SP1QFE
Colbact.dll 2001.12.4720.2698 97,280 09-May-2006 04:23 x64 SP1 SP1QFE
Comadmin.dll 2001.12.4720.2698 288,768 09-May-2006 04:23 x64 SP1 SP1QFE
Comrepl.dll 2001.12.4720.2698 188,928 09-May-2006 04:23 x64 SP1 SP1QFE
Comsvcs.dll 2001.12.4720.2698 2,194,944 09-May-2006 04:23 x64 SP1 SP1QFE
Comuid.dll 2001.12.4720.2698 1,478,144 09-May-2006 04:23 x64 SP1 SP1QFE
Es.dll 2001.12.4720.2698 365,568 09-May-2006 04:23 x64 SP1 SP1QFE
Msdtcprx.dll 2001.12.4720.2698 830,976 09-May-2006 04:23 x64 SP1 SP1QFE
Msdtctm.dll 2001.12.4720.2698 2,072,576 09-May-2006 04:23 x64 SP1 SP1QFE
Msdtcuiu.dll 2001.12.4720.2698 291,328 09-May-2006 04:23 x64 SP1 SP1QFE
Mtxclu.dll 2001.12.4720.2698 145,408 09-May-2006 04:23 x64 SP1 SP1QFE
Mtxdm.dll 2001.12.4720.2698 30,208 09-May-2006 04:23 x64 SP1 SP1QFE
Mtxoci.dll 2001.12.4720.2698 175,104 09-May-2006 04:23 x64 SP1 SP1QFE
Ole32.dll 5.2.3790.2698 2,547,200 09-May-2006 04:23 x64 SP1 SP1QFE
Olecli32.dll 5.2.3790.2698 131,584 09-May-2006 04:23 x64 SP1 SP1QFE
Olecnv32.dll 5.2.3790.2698 56,832 09-May-2006 04:23 x64 SP1 SP1QFE
Rpcss.dll 5.2.3790.2698 698,368 09-May-2006 04:23 x64 SP1 SP1QFE
Stclient.dll 2001.12.4720.2698 101,888 09-May-2006 04:23 x64 SP1 SP1QFE
Txflog.dll 2001.12.4720.2698 180,224 09-May-2006 04:23 x64 SP1 SP1QFE
Wcatsrv.dll 2001.12.4720.2698 273,920 09-May-2006 04:23 x86 SP1 WOW
Wcatsrvut.dll 2001.12.4720.2698 619,008 09-May-2006 04:23 x86 SP1 WOW
Wclbcatq.dll 2001.12.4720.2698 513,536 09-May-2006 04:23 x86 SP1 WOW
Wcolbact.dll 2001.12.4720.2698 58,880 09-May-2006 04:23 x86 SP1 WOW
Wcomadmin.dll 2001.12.4720.2698 196,608 09-May-2006 04:23 x86 SP1 WOW
Wcomsvcs.dll 2001.12.4720.2698 1,268,736 09-May-2006 04:23 x86 SP1 WOW
Wcomuid.dll 2001.12.4720.2698 596,480 09-May-2006 04:23 x86 SP1 WOW
Wes.dll 2001.12.4720.2698 238,592 09-May-2006 04:23 x86 SP1 WOW
Wmsdtcprx.dll 2001.12.4720.2698 470,528 09-May-2006 04:23 x86 SP1 WOW
Wmsdtcuiu.dll 2001.12.4720.2698 165,888 09-May-2006 04:23 x86 SP1 WOW
Wmtxclu.dll 2001.12.4720.2698 79,360 09-May-2006 04:23 x86 SP1 WOW
Wmtxdm.dll 2001.12.4720.2698 20,992 09-May-2006 04:23 x86 SP1 WOW
Wmtxoci.dll 2001.12.4720.2698 111,104 09-May-2006 04:23 x86 SP1 WOW
Wole32.dll 5.2.3790.2698 1,247,744 09-May-2006 04:23 x86 SP1 WOW
Wolecli32.dll 5.2.3790.2698 75,776 09-May-2006 04:23 Not Applicable SP1 WOW
Wolecnv32.dll 5.2.3790.2698 38,912 09-May-2006 04:23 x86 SP1 WOW
Wstclient.dll 2001.12.4720.2698 64,000 09-May-2006 04:23 x86 SP1 WOW
Wtxflog.dll 2001.12.4720.2698 98,816 09-May-2006 04:23 x86 SP1 WOW
Updspapi.dll 6.2.29.0 462,048 09-May-2006 04:29 x64 None Not Applicable
Windows Server 2003, Itanium-based versions
File name File version File size Date Time Platform SP requirement Service branch
Catsrv.dll 2001.12.4720.2698 657,408 09-May-2006 04:23 IA-64 SP1 SP1QFE
Catsrvut.dll 2001.12.4720.2698 1,631,744 09-May-2006 04:23 IA-64 SP1 SP1QFE
Clbcatq.dll 2001.12.4720.2698 1,352,192 09-May-2006 04:23 IA-64 SP1 SP1QFE
Colbact.dll 2001.12.4720.2698 181,760 09-May-2006 04:23 IA-64 SP1 SP1QFE
Comadmin.dll 2001.12.4720.2698 420,352 09-May-2006 04:23 IA-64 SP1 SP1QFE
Comrepl.dll 2001.12.4720.2698 285,184 09-May-2006 04:23 IA-64 SP1 SP1QFE
Comsvcs.dll 2001.12.4720.2698 3,365,888 09-May-2006 04:23 IA-64 SP1 SP1QFE
Comuid.dll 2001.12.4720.2698 1,977,856 09-May-2006 04:23 IA-64 SP1 SP1QFE
Es.dll 2001.12.4720.2698 701,952 09-May-2006 04:24 IA-64 SP1 SP1QFE
Msdtcprx.dll 2001.12.4720.2698 1,337,856 09-May-2006 04:24 IA-64 SP1 SP1QFE
Msdtctm.dll 2001.12.4720.2698 3,097,088 09-May-2006 04:24 IA-64 SP1 SP1QFE
Msdtcuiu.dll 2001.12.4720.2698 486,400 09-May-2006 04:24 IA-64 SP1 SP1QFE
Mtxclu.dll 2001.12.4720.2698 208,896 09-May-2006 04:24 IA-64 SP1 SP1QFE
Mtxdm.dll 2001.12.4720.2698 47,616 09-May-2006 04:24 IA-64 SP1 SP1QFE
Mtxoci.dll 2001.12.4720.2698 322,048 09-May-2006 04:24 IA-64 SP1 SP1QFE
Ole32.dll 5.2.3790.2698 3,999,744 09-May-2006 04:24 IA-64 SP1 SP1QFE
Olecli32.dll 5.2.3790.2698 252,416 09-May-2006 04:24 IA-64 SP1 SP1QFE
Olecnv32.dll 5.2.3790.2698 90,112 09-May-2006 04:24 IA-64 SP1 SP1QFE
Rpcss.dll 5.2.3790.2698 859,648 09-May-2006 04:24 IA-64 SP1 SP1QFE
Stclient.dll 2001.12.4720.2698 149,504 09-May-2006 04:24 IA-64 SP1 SP1QFE
Txflog.dll 2001.12.4720.2698 301,568 09-May-2006 04:24 IA-64 SP1 SP1QFE
Wcatsrv.dll 2001.12.4720.2698 273,920 09-May-2006 04:24 x86 SP1 WOW
Wcatsrvut.dll 2001.12.4720.2698 619,008 09-May-2006 04:24 x86 SP1 WOW
Wclbcatq.dll 2001.12.4720.2698 513,536 09-May-2006 04:24 x86 SP1 WOW
Wcolbact.dll 2001.12.4720.2698 58,880 09-May-2006 04:24 x86 SP1 WOW
Wcomadmin.dll 2001.12.4720.2698 196,608 09-May-2006 04:24 x86 SP1 WOW
Wcomsvcs.dll 2001.12.4720.2698 1,268,736 09-May-2006 04:24 x86 SP1 WOW
Wcomuid.dll 2001.12.4720.2698 596,480 09-May-2006 04:24 x86 SP1 WOW
Wes.dll 2001.12.4720.2698 238,592 09-May-2006 04:24 x86 SP1 WOW
Wmsdtcprx.dll 2001.12.4720.2698 470,528 09-May-2006 04:24 x86 SP1 WOW
Wmsdtcuiu.dll 2001.12.4720.2698 165,888 09-May-2006 04:24 x86 SP1 WOW
Wmtxclu.dll 2001.12.4720.2698 79,360 09-May-2006 04:24 x86 SP1 WOW
Wmtxdm.dll 2001.12.4720.2698 20,992 09-May-2006 04:24 x86 SP1 WOW
Wmtxoci.dll 2001.12.4720.2698 111,104 09-May-2006 04:24 x86 SP1 WOW
Wole32.dll 5.2.3790.2698 1,247,744 09-May-2006 04:24 x86 SP1 WOW
Wolecli32.dll 5.2.3790.2698 75,776 09-May-2006 04:24 Not Applicable SP1 WOW
Wolecnv32.dll 5.2.3790.2698 38,912 09-May-2006 04:24 x86 SP1 WOW
Wstclient.dll 2001.12.4720.2698 64,000 09-May-2006 04:24 x86 SP1 WOW
Wtxflog.dll 2001.12.4720.2698 98,816 09-May-2006 04:24 x86 SP1 WOW
Updspapi.dll 6.2.29.0 638,688 09-May-2006 04:29 IA-64 None Not Applicable


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.

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.

  1. Change the value of the Capacity setting to 5, and then click OK.
  2. Click Start, point to Administrative Tools, and then click Component Services.
  3. Double-click Component Services, and then double-click Computers.
  4. Right-click My Computer, and then click Properties.
  5. 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.
  6. Click OK.


Keywords: kbwinserv2003presp2fix kbqfe kbhotfixserver kbfix KB919034