Exchange Correlation engine is stopped and produces 717 every 300 seconds

Getting following error in the application Log where the exchange correlation engine is running and SCOM 2012 is installed?

Log Name: Application

Source: MSExchangeMonitoringCorrelation

Date:

Event ID: 717

Task Category: General

Level: Warning

Keywords: Classic

User: N/A

Computer:

Description:

Connection with the Operations Manager Root Management Server failed.

 

Error: System.InvalidCastException: [A]System.Collections.Generic.List`1[Microsoft.EnterpriseManagement.Monitoring.MonitoringAlertUpdateStatusIndigo] cannot be cast to [B]System.Collections.Generic.List`1[Microsoft.EnterpriseManagement.Monitoring.MonitoringAlertUpdateStatusIndigo]. Type A originates from 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' in the context 'LoadNeither' at location 'C:\WINDOWS\assembly\GAC_64\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll'. Type B originates from 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' in the context 'LoadNeither' at location 'C:\WINDOWS\assembly\GAC_64\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll'.

at Microsoft.EnterpriseManagement.Utilities.GetDeserializeObject[T](Byte[] serializedObject)

at Microsoft.EnterpriseManagement.DataAbstractionLayer.InstanceSpaceOperations.UpdateAlerts(Byte[] alerts, String comments, Nullable`1 modifyingConnectorId)

at Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.UpdateAlertsInternal[T](IList`1 alerts, String comments, Nullable`1 modifyingConnectorId, ManagementGroup managementGroup)

at Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.UpdateInternal(String comments, Nullable`1 modifyingConnectorId)

at Microsoft.EnterpriseManagement.Monitoring.MonitoringAlert.Update(String comments)

at Microsoft.Exchange.Monitoring.CorrelationEngine.MomSdkProxy.ResolveEntityAlert(Entity entity, MonitoringAlert monAlert)

at Microsoft.Exchange.Monitoring.CorrelationEngine.MomSdkProxy.ResolveEntityAlerts(Entity entity, String alertCriteriaString)

at Microsoft.Exchange.Monitoring.CorrelationEngine.CorrelationEngine.CorrelateWithinEntity(Node entity)

at Microsoft.Exchange.Monitoring.CorrelationEngine.CorrelationEngine.CorrelateBatchTask(Object batchData)

Usually the weird cast exceptions occur because the exchange correlation engine needs the 2007 R2 assemblies, but if SCOM 2012 is installed it will take the new 2012 binaries, which might lead in some environments to exceptions as above.

There are 2 workarounds for this by design "feature":

1.Open Microsoft.Exchange.Monitoring.CorrelationEngine.exe.config in a text editor such as Notepad

Locate the following line in the configuration file:

<add key="AutoResolveAlerts" value="true" />

Change <add key="AutoResolveAlerts" value="true" /> to <add key="AutoResolveAlerts" value="false" />

Restart the Microsoft Exchange Monitoring Correlation Engine service.

This will disable the exchange correlation engine ability to auto resolve alerts.

 

2. InstallExchange Correlation Engine standalone (without SCOM 2012 Management Server components)

Then:

 Stop Microsoft Exchange Monitoring Correlation service

Copy 2007 R2 SDK binaries (Program Files\Microsoft\Exchange Server\v14\Bin):

• Microsoft.EnterpriseManagement.OperationsManager.Common.dll

• Microsoft.EnterpriseManagement.OperationsManager.dll

• MomBidLdr.dll

Start Exchange Correlation Service.

Happy Exchange monitoring!