How to troubleshoot the “Red Arrow” issue in Component Services (II)

 

 

We have introduced the troubleshooting methods on the most common scenarios which caused "Red Arrow" issue happens in Component Service before.

Here I'd like to elaborate more steps which may help on this "Red Arrow" problem. They are rebuilding COM+ Catalogs. Although the steps in this article are NOT for most common patterns and are NOT the first thing to try, it will still be helpful if you have tried all other steps and are going to rebuild the system, especially the error reported that reading COM+ catalog failed or COM+ catalog corrupted.

Before rebuilding COM+ Catalog, please read through " the most common scenarios" to see if general troubleshooting methods can work, they were mainly written for Win 2003, but can also be applied in new Systems (Win2008/Win7) for troubleshooting purpose.

Below are steps to rebuild COM+ catalogs:

For Windows 2003:

==================

1. Follow the steps in KB315296 to rebuild COM+ catalog:

315296 How to clean up a damaged COM+ catalog

https://support.microsoft.com/default.aspx?scid=kb;EN-US;315296

2. Please run regsvr32 to register the following dll again:

ole32.dll, oleaut32.dll, catsrv.dll, catsrvut.dll, comsvcs.dll

for example, if you want to register ole32.dll, please run "regsvr32 ole32.dll" under command prompt.

IMPORTANT: At step 1, if you failed to reinstall COM+ component with this type error:

 " The COM+ Event System detected a bad return code during its internal processing. 
 HRESULT was 80029C4A", please verify the Group Policy:
  

a. Run gpedit.msc.

b. Go to Local Computer Policies -- > Computer Configuration -- > Windows
Settings -- > Security Settings -- > Local Policies -- > Security Options.

c. Check whether "DCOM: Machine Launch Restrictions in Security Descriptor
Definition Language (SDDL) syntax" and "DCOM: Machine Access Restrictions in
Security Descriptor Definition Language (SDDL) syntax" are defined.

d. If yes, remove them to restore the default settings, and then run "gpupdate /force" to refresh group policy.

e. If there is no Group Policy defined for DCOM access, values in HKLM\Software\Policies\Microsoft\WindowsNT\DCOM should be empty.

  
 For Windows 7/2008
 ==================

1. Copy the catalog first installed on the system to a 'simple' path, either from installation media or the server ( dir /s %windir%\Registration\*.clb, look for R000000000001.clb ). ex.

copy c:\windows\Registration\R000000000001.clb C:\R000000000001.clb

If we could not find the R000000000001.clb under %windir%\Registration\, tried search through the %windir% for R000000000001.clb or *.clb. Copy the R000000000001.clb to 'c:\'.

2. Copy c:\windows\registration to c:\backup as a quick backup.

3. Save the following as a .vbs (ex. Restore.vbs) and run with cscript (ex. cscript c:\restore.vbs):

 ---------------

Dim objComCatalog

 Set objComCatalog = CreateObject("COMAdmin.COMAdminCatalog")

objComCatalog.RestoreREGDB "C:\R000000000001.clb"

 MsgBox "Backup Restored!"

Set objComCatalog = Nothing

--------------

4. Restart the "COM+ System Application" Service.

IMPORTANT: These steps are not supported by the COM+ Product Group on Win7/2008 so far. When we start the steps, need to ensure other necessary troubleshooting steps have been done properly, or it is OKay for you to reinstall other COM+ applications which were on this machine before.

As a summary, COM+ catalog corruption will lead us to reinstall the COM+ component and other troubleshooting methods will not help. This Reinstallation step on Win2003/2008/7 is somehow complicated and risky for production environment. An important suggestion is to find a test environment to do full test and involve COM+ support team in time if you are not certain on any steps.

Regards,

Freist Li