Posted on Updated on

If both SCCM and SCOM are implemented in your environment (and SCOM is monitoring SCCM) then you may at some time receive the following alert:

The availability state for SMS component ‘SMS_WSUS_SYNC_MANAGER’ in site XYZ changed from ‘Online’ to ‘Failed’. Its installation state is ‘Installed’. Its execution state is ‘Hung’. This component last provided a heartbeat at ‘DATE TIME‘. The next heartbeat is expected in ‘3600’ seconds from that time.

Investigation of the alert (SCCM console, logs, etc.) reveals that the component is truly functional and never reports being hung.  After a long drawn out support case with Microsoft, this is what was discovered:

Whenever a scheduled sync is triggered it does a complete sync and that is by default to run for about 40-50 minutes. And during this action the SCCM marks a registry as “3”(HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\SMS\Operations Management), which means that the service is hung. This registry change is made if the heart beat is not received by the WSUS component(this heart beat is from the WSUS component to the SCCM), by default the heart beat is received within 6 minutes every hour(i.e. 2:00-2:06, 3:00-3:06…and so on), and whenever next time the heart beat is received then the component is marked as online and usable. So SCCM console doesn’t show any issue. However during this time MON monitors the registry and comes to know that the component is marked as “3” so it send the alert. Our motive here is SCCM should not mark the registry as “3” and that can be established if we have the sync process start after 2:06 and end before 3:06 or respectively. This behavior is by default.

So the solution (just a workaround) is to schedule the sync to occur in the 7th minute of the hour (e.g. 2:07 instead of what I had at 2:00).  Additionally they said a true fix won’t be created because there has not been enough reported issues to justify a fix.  Anyway, I hope this helps!

**** Update as of 2/28/11 ****

To help determine that SCCM was incorrectly setting the registry values, I wrote a simply VBScript to log the registry values (code below).  Then on the server, I created a custom scheduled task to run the script every 1 minute for the period being monitored.

' This script runs via a scheduled task to capture registry entries SCCM WSUS Sync
' Written by Nick Moseley
Option Explicit
Const HKLM = &H80000002
Const ForAppending = 8
Const sLogFile = "C:\PSS_WSUS.log"
Dim oShell, oFSO, sKeyPath
Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
sKeyPath = "HKLM\SOFTWARE\Wow6432Node\Microsoft\SMS\Operations Management\Components\SMS_WSUS_SYNC_MANAGER\Execution State"
Dim oLogFile
If Not oFSO.FileExists (sLogFile) Then 
    oFSO.CreateTextFile sLogFile
End If
Set oLogFile = oFSO.OpenTextFile (sLogFile, ForAppending, True)
oLogFile.WriteLine  "ExecutionState: " & oShell.RegRead(sKeyPath) & " (" & Date & ", " & Time & ")"

4 thoughts on “SCOM alert for ‘SMS_WSUS_SYNC_MANAGER’

    Christopher said:
    April 30, 2012 at 2:05 am

    Where do you change the setting to set the 7minutes?

    Thuto said:
    August 1, 2012 at 2:43 am

    Navigate to Site Settings, Component Configuration, right click the Software Update Point Component and click properties. Select the Sync Schedule tab and select custom schedule then Customize. Then change the settings there.

    mdedeboer said:
    March 12, 2014 at 9:37 am

    Thanks for the tidbit….I was scratching my head over this one. No real errors in the ConfigMgr logs. This is still an issue in Configmgr 2012. I’ve posted a link to this post over at our blog here:

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s