Error event “MSExchange Configuration Core” with ID no. 1 in the application event log every minute

Microsoft

I wanted to provide the solution to an issue I was troubleshooting this week.

For some time now so, a whole bunch but not all of the Exchange 2016 servers were throwing this event:

Log Name:      Application

Source:        MSExchange Configuration Core

Date:          29.11.2018 10:47:39

Event ID:      1

Task Category: (1)

Level:         Error

Keywords:      Classic

User:          N/A

Computer:      MBX2016.contoso.com

Description:

The description for Event ID 1 from source MSExchange Configuration Core cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

 

If the event originated on another computer, the display information had to be saved with the event.

 

The following information was included with the event:

 

29464

w3wp.exe

Exception from  CmdletHealthCountersModule.Task_Release: System.TypeInitializationException: The type initializer for 'Microsoft.Exchange.Configuration.TenantMonitoring.TenantMonitor' threw an exception. ---> System.InvalidOperationException: Cannot load Counter Name data because an invalid index '' was read from the registry.

   at System.Diagnostics.PerformanceCounterLib.GetStringTable(Boolean isHelp)

   at System.Diagnostics.PerformanceCounterLib.get_NameTable()

   at System.Diagnostics.PerformanceCounterLib.get_CategoryTable()

   at System.Diagnostics.PerformanceCounterLib.CategoryExists(String machine, String category)

   at System.Diagnostics.PerformanceCounterCategory.Exists(String categoryName, String machineName)

   at Microsoft.Exchange.Configuration.TenantMonitoring.TenantMonitor..cctor()

   --- End of inner exception stack trace ---

   at Microsoft.Exchange.Configuration.TenantMonitoring.TenantMonitor.LogActivity(CounterType counterType, String organizationName)

   at Microsoft.Exchange.ProvisioningMonitoring.PerTenantCmdletHealthCounters.UpdateSuccessCount(ErrorRecord errorRecord)

   at Microsoft.Exchange.Configuration.Tasks.CmdletHealthCountersModule.IncrementSuccessCount(ErrorRecord errorRecord)

   at Microsoft.Exchange.Configuration.Tasks.CmdletHealthCountersModule.Task_Release(Object sender, EventArgs e)

   at Microsoft.Exchange.Configuration.Tasks.CriticalFeatureHelper.Execute(ICriticalFeature feature, Action action, TaskContext taskContext, String methodNameInLog)

 

the message resource is present but the message is not found in the string/message table

 

Event Xml:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

  <System>

    <Provider Name="MSExchange Configuration Core" />

    <EventID Qualifiers="49152">1</EventID>

    <Level>2</Level>

    <Task>1</Task>

    <Keywords>0x80000000000000</Keywords>

    <TimeCreated SystemTime="2018-11-29T09:47:39.941532000Z" />

    <EventRecordID>9382221</EventRecordID>

    <Channel>Application</Channel>

    <Computer>MBX2016.contoso.com</Computer>

    <Security />

  </System>

  <EventData>

    <Data>29464</Data>

    <Data>w3wp.exe</Data>

    <Data>Exception from  CmdletHealthCountersModule.Task_Release: System.TypeInitializationException: The type initializer for 'Microsoft.Exchange.Configuration.TenantMonitoring.TenantMonitor' threw an exception. ---&gt; System.InvalidOperationException: Cannot load Counter Name data because an invalid index '' was read from the registry.

   at System.Diagnostics.PerformanceCounterLib.GetStringTable(Boolean isHelp)

   at System.Diagnostics.PerformanceCounterLib.get_NameTable()

   at System.Diagnostics.PerformanceCounterLib.get_CategoryTable()

   at System.Diagnostics.PerformanceCounterLib.CategoryExists(String machine, String category)

   at System.Diagnostics.PerformanceCounterCategory.Exists(String categoryName, String machineName)

   at Microsoft.Exchange.Configuration.TenantMonitoring.TenantMonitor..cctor()

   --- End of inner exception stack trace ---

   at Microsoft.Exchange.Configuration.TenantMonitoring.TenantMonitor.LogActivity(CounterType counterType, String organizationName)

   at Microsoft.Exchange.ProvisioningMonitoring.PerTenantCmdletHealthCounters.UpdateSuccessCount(ErrorRecord errorRecord)

   at Microsoft.Exchange.Configuration.Tasks.CmdletHealthCountersModule.IncrementSuccessCount(ErrorRecord errorRecord)

   at Microsoft.Exchange.Configuration.Tasks.CmdletHealthCountersModule.Task_Release(Object sender, EventArgs e)

   at Microsoft.Exchange.Configuration.Tasks.CriticalFeatureHelper.Execute(ICriticalFeature feature, Action action, TaskContext taskContext, String methodNameInLog)</Data>

  </EventData>

</Event>

 

 

In the beginning of the exception the error states: “Either the component that raises this event is not installed on your local computer or the installation is corrupted" together with “Cannot load Counter Name”

From the component mentioned in the event you can see that the component TenantMonitoring is affected.

The Process ID 29464 mentioned on the server we checked belonged to PowerShell.

In this environment the event was happening for some time and there was no inclusive action that could be linked to what caused the event to be thrown.

 TenantMonitoring is Exchange internally used for per tenant performance monitoring although on my test Exchange servers there was not performance counter with this name.

 

I was not in a position to identify the root cause for this event, but the solution was as follows:

 

The following article describes how to add information for a missing performance counter:

"Performance counter updating error" after you install an Exchange Server 2013 cumulative update

https://support.microsoft.com/en-us/help/2870416/performance-counter-updating-error-after-you-instal...

The procedure that stopped this event being thrown was:

  1. Close Performance Monitor, and then stop any other monitoring services that might be trying to use the missing counters.
  2. In Exchange Management Shell, type the following command, and then press Enter: 

Add-Pssnapin Microsoft.Exchange.Management.PowerShell.Setup

  1. Run New-PerfCounters to add the performance counter:

New-perfcounters –definitionfilename “C:\Program Files\Microsoft\Exchange Server\V15\Setup\Perf\MSExchangeTenantMonitoringPerformanceCounters.xml"

 

After adding this performance counter, you need to reboot the Exchange server, in order for the change to take effect.

0 Replies