OpsanBlog

Michael Coates - Microsoft Pragmatic Evangelist

Posted with:
 Windows Live Writer
 Download Live Writer

My Windows Live Local Collections:
 Las Vegas
 Los Angeles
 San Jose
 Seattle
 Washington, DC
 My Walks

Article Categories

Archives

Post Categories

Bloggers

MSDTC Error 4437

After installing a component that uses MSDTC, I saw the error 4437 in Event Log, reporting "The account that the MS DTC service is running under is invalid".  The description went on to advise that you could solve the problem by modifying the MS DTC service account in Component Services Explorer (CSE).  However, when I opened CSE, I saw the My Computer icon with a red, downward-facing arrow.  When in this state, right-clicking only a "COM Security" tabbed dialog, which won't allow you to change the identity of the service account.

So, I needed to have the COM identity in synch with the service accounts, but since I couldn't reset the COM identity using the interface, I reset the service account, granting permissions to the proper roles and removing / reinstalling DTC:

  • Open the Services window.
  • Navigate to Distributed Transaction Coordinator.
  • Modify the "Log on As" account to an account to a domain account that is a local administrator on the server.
  • Ensure the DCOM Server Process Launcher and the COM+ services are running under the Local System account.
  • Close the services window.
  • Open the CSE, right click the My Computer icon and click Properties.
  • In the "Access Permissions" panel, click the "Edit Default" button.
  • Ensure "SYSTEM", "INTERACTIVE" and the local "Administrators" are allowed Local and Remote access.
  • In the "Launch Permissions" panel, click the "Edit Default" button.
    Ensure "SYSTEM", "INTERACTIVE" and the local "Administrators" are allowed Local and Remote launch and Local and Remote Activation (check all four 'allow' boxes).
  • Click OK to get to the main window and close the CSE.
  • Stop the DTC service in a command window by typing "net stop DTC" and press enter.
  • Remove the DTC service in a command window by typing "msdtc -uninstall".
  • Confirm the DTC service is uninstalled in the Services window. If it isn't, repeat the previous step.  If that still fails, remove the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC key from the registry and repeat the previous step again.
  • Reboot the server.

When the server comes back up, reinstall the Network DTC service from Control Panel, Add/Remove Windows components, Application Server.  Once installed, open a CMD prompt and type 'msdtc -install' to install the service.  This should solve the problem.

In one of three instances, DTC still showed as installed even though there was no reference in the services window and logged Event ID 4427. In this case, uncheck the DTC box so setup removes other registry entries and reinstall.  You will need to reboot the server if this is the case.

If you still get the Event ID 4427 "Failed to initialize the needed name objects" followed by a bunch of cpp references with a command line reference of: "C:\WINDOWS\system32\sysocmgr.exe" /y /i:C:\WINDOWS\system32\sysoc.inf (note: executing this command runs Windows Component setup, bypassing the Add/Remove icon in Control Panel) you will note MSDTC appears to be uninstalled and the registry reference removed, but reinstalling from Add/Remove programs fails.  This seems to be related to the version of MSDTC left behind from removing and reinstalling.  I tried to solve this by reinstalling MSSQL SP3a, but no dice. 

In the end for this server, I removed and readded the Application Server Role (removes COM+ and IIS as well as MSDTC) on the system and re-applied Win2kSP1.  Oddly enough, I still had to open a CMD prompt and type 'msdtc -install' to get the service properly installed, but the rest of the components were there and DTC functioned properly.

I did some other DTC research in “BizTalk and MSDTC”.

posted on Sunday, May 08, 2005 7:49 PM

Feedback

# re: MSDTC Error 4437 5/3/2006 2:03 PM BILL

SAME HERE

# re: MSDTC Error 4437 7/17/2006 7:29 PM csw

did the job. thanks for the help

# re: MSDTC Error 4437 9/29/2006 3:16 AM Simon

doesn't msdtc-uninstall, reboot, msdtc -install do the same thing ?

# re: MSDTC Error 4437 1/18/2007 12:21 PM Alex

Thanks, i was looking and looking and could not find anything about this. I followed your steps and server is functioning normal again.

# re: MSDTC Error 4437 2/8/2007 9:22 AM Thomas

Thank´s a lot!
I didn´t know what I did, but after reinstalling the msdtc I´d no more problems!

# re: MSDTC Error 4437 5/10/2007 2:36 AM parag

Thanks the problem was solved,
When we installed IIS and where trying to browse the local host we where getting,
500 Internal Server Error
Then after looking out for solution, we noticed that the problem was because COMPONENT SERVICES was not started and there was a problem in MSDTC
We got following errors in the event viewer "event id 4427" and "event id 4691"
After follwing the steps mentioned in this page everything is working properly.

# re: MSDTC Error 4437 6/12/2007 10:29 AM Hemant Bhadane

This was really useful as I got a copy of Virtual Server 2003 with MSDTC running under local admin.


So Now it's Fixed due to your help.

Thanks,
Hemant Bhadane
MCTS BizTalk 2006 and BizTalk 2004

# re: MSDTC Error 4437 2/4/2008 3:25 PM james

You saved me!!!

# re: MSDTC Error 4437 3/29/2008 8:40 AM srohilla

well the above solution seems to be correct but jumping directly to uninstall/install MSDTC is not a good idea.
If you are running Win 2003 Server, changed the RPC to local and check if it still showing you the red arrow down. if not, then follow Microsoft KB909444 and changed back the RPC back to network service account and then reboot.
this should resolve the problem and if this does not then we can follow whats been written in the above article.
Thanks..

# re: MSDTC Error 4437 8/18/2008 12:05 PM netadmin

You can also try just opening a command prompt and typing msdtc -install before going through all that.

Title  
Name  
Url
Comments   

The opinions expressed herein are my own and are not intended to represent those of my employer.