My current engagement has me creating Distributed Applications (DA) for things like SharePoint, in-house Line Of Business Applications and Messaging.  For this organization Messaging means Exchange, RightFax, Blackberry, and OCS.  We are rolling up health for all of those Enterprise Messaging components into a DA enabling at a glance state view of overall Messaging health along with feeding System Center Service Manager (SCSM) down the road.  My thought process was to create a DA for each component and then one DA to “rule them all” – based on a great Blog post series by Marnix Wolf on Distributed Applications.

So off we go and all is well and good until… OCS.  The OCS Server roles would not roll up health…(indicated by the empty green circle, where there should be a Yellow Whammy)


Upon closer inspection, the OCS MP rolls up a bunch of stuff under the Performance Parent Monitor and, more germane to this post, the service state monitors roll up under Entity Health.  I found this to be the case for each OCS Server Role discovered by the MP (Microsoft_Office_Communications_Server_R2_Standard_Edition in the example below)


This is a problem for Distributed Applications.  DAs are expecting health to roll up under the Availability parent monitor, and only Availability.  To get back on the road to Distributed Application Bliss(*) I created overrides for the monitors that came with the OCS MP, setting them to disabled for the relevant discovered class (Microsoft_Office_Communications_Server_R2_Standard_Edition in the example below), and created new service monitors that roll up under the Availability parent monitor.  As a note on the picture below; the monitors that came with the MP were named using the Service Name.  I chose to name my new monitors with the Display Name of the service, they are identical otherwise.


(*)Distributed Application Bliss:  Time for Coffee.