SMS 2003 – Heartbeat Discovery


There are several discovery methods in SMS 2003 but there is only one discovery method that MUST be enabled at every site in the heirarchy that will host clients – heartbeat discovery.  Heartbeat discovery is unique in that it is the ONLY discovery method that returns a client GUID as part of the discovery record and is also the only one to dictate whether clients are seen as ‘installed’ in the SMS admin console.  Here is a laundry list of heartbeat discovery related items


–  Heartbeat discovery is responsible for letting the site know a client is still healthy and runs on the interval specified – default is 7 days.
–  By default, missing heartbeat discovery records will NOT cause a client to be removed from the database if another discovery method is active and discovering the system.  If you want to remove clients from the database solely based on whether heartbeat information is current – use the ‘Delete Inactive Client Discovery Data’ maintenance task.
–  Clients will flip between installed yes and installed no if the heartbeat discovery records and delete aged discovery tasks are set in conflict.  If you see systems role to installed = no and you know they are valid systems, just go to the systems management applet on the client and run a discovery data collection action – this will cause the install flag to flip back (update and refresh the collection) assuming the communications channels to the site server are working properly.
–  Setting the interval for the ‘Delete Inactive Client Discovery Data’ and ‘Delete Aged Discovery Data’ tasks must be done with consideration to the heartbeat interval settings.  A good general rule of thumb is that the delete settings should be at least 2 1/2 times the interval of the heartbeat setting.


Ever wonder how heartbeat discovery data gets back to the site server?  When a scheduled heartbeat discovery cycle is initiated the inventoryagent module begins processing.  The inventoryagent is responsible for hardware and software inventory plus heartbeat discovery.  Processing for heartbeat data is very quick.  Once we have the record it is copied to the outbound queues on the agent and, depending on size, is either copied to the CCM_Incoming directory or directly posted to the management point.  Copies to the management point are handled via BITS.  If it is of interest to actually preserve the data collected in the discovery record for troubleshooting purposes, simply create the an empty folder called archive_reports.sms in the ccm\inventory\temp path on the agent.  The discovery (and other inventory records) will be stored in XML format in this folder as they are processed.


The management point receives the discovery record as encrypted XML.  The CCMIsapi will evaluate all incoming messages (not just discovery) and decide which specific component should further process.  In the case of discovery the message will be handed off to the discovery processor to transform it into the *.DDR format.  This can be seen in the MP_DDR.log.  Once this conversion completes the file is handed off to the file dispatch manager for movement to the inboxes folders.  The DDR arrives in the inboxes\auto\ddr.box and is processed into the database by the Data Discovery Manager component.  Note that not all DDRs are processed through the auth\DDM.box folder – but all heartbeat DDR’s are.


 


 



 

Comments (2)

  1. djlenoir says:

    Nice blog information as always Steve. I was reading the following TechNet article today and came across one statement in particular that caught my attention.

    First the article:

    http://technet.microsoft.com/en-us/library/bb681012.aspx

    Now the statement:

    “It is important to note, however, that if you use a server share as your distribution point, Configuration Manager will not create a data discovery record (DDR) for that site system. Without a DDR, the Heartbeat Discovery method will not monitor the health of the site system.”

    I am trying to understand this. Can you give me more information as to why this happens? Is this true for SMS 2003 as well? What actually is generating the data discovery record for the site system? We have many server shares set up as Distribution Points and I am trying to determine the impact of this statement moving to SCCM 2007.

  2. steverac says:

    I am also confused by this statement!  🙂  Site systems are ‘discovered’ in two ways.  The first is by having a client installed on them.  With a client installed then the heartbeat discovery record will be forwarded just as for any client – assuming heartbeat discovery is enabled at the site.  The other way is by server discovery.  Server discovery is a ‘hidden’ discovery method that has no user configurable properties.  It runs by default on the site server every 24 hours and it’s only role is to ‘discover’ any system configured as a site system and create a DDR for it.  I honestly don’t recall if a server discovery DDR gets created for a server share based site system.

    Hope that helps.