Während der Installation von Exchange Server 2013, sollten eigentlich alle nötigen Performance Counter regestriert werden. Dies schlägt meistens fehl und von nun an wird das Eventlog mit Fehler geflutet.
Beispiel einer Meldung
Fehler beim Aktualisieren eines Leistungsindikators. Der Indikatorname lautet 'Delay Time Threshold', der Kategoriename ist 'MSExchange User WorkloadManager'. Optionaler Code: 3. Ausnahme: The exception thrown is : System.InvalidOperationException: Die Instanz "rca" ist bereits mit einer dem Prozess entsprechenden Lebensdauer vorhanden. Sie kann erst erneut erstellt oder verwendet werden, wenn sie entfernt wurde, oder der Prozess, der sie verwendet, beendet wurde. bei System.Diagnostics.SharedPerformanceCounter.FindInstance(Int32 instanceNameHashCode, String instanceName, CategoryEntry* categoryPointer, InstanceEntry** returnInstancePointerReference, Boolean activateUnusedInstances, PerformanceCounterInstanceLifetime lifetime, Boolean& foundFreeInstance) bei System.Diagnostics.SharedPerformanceCounter.GetCounter(String counterName, String instanceName, Boolean enableReuse, PerformanceCounterInstanceLifetime lifetime) bei System.Diagnostics.SharedPerformanceCounter..ctor(String catName, String counterName, String instanceName, PerformanceCounterInstanceLifetime lifetime) bei System.Diagnostics.PerformanceCounter.InitializeImpl() bei System.Diagnostics.PerformanceCounter.set_RawValue(Int64 value) bei Microsoft.Exchange.Diagnostics.ExPerformanceCounter.set_RawValue(Int64 value) Last worker process info : System.ArgumentException: Es wird kein Prozess mit der ID 3180 ausgeführt. bei System.Diagnostics.Process.GetProcessById(Int32 processId) bei Microsoft.Exchange.Diagnostics.ExPerformanceCounter.GetLastWorkerProcessInfo() Processes running while Performance counter failed to update: 5524 w3wp 3356 MonitoringHost 2172 svchost 4 System 396 csrss 0 Idle .................. Performance Counters Layout information: A process is holding onto a transport performance counter. processId : 3952, counter : average task wait time Value=1 SpinLock=0 Lifetime=Type: 1 ProcessId: 3952 StartupTime: 130431896595313549, currentInstance : owa(B875F7C) RefCount=0 SpinLock=0 Offset=3216, categoryName: MSExchange User WorkloadManager A process is holding onto a transport performance counter. processId : 784, counter : average task wait time Value=1 SpinLock=0 Lifetime=Type: 1 ProcessId: 784 StartupTime: 130432298547223973, currentInstance : ews(B8724E4) RefCount=1 SpinLock=0 Offset=2408, categoryName: MSExchange User WorkloadManager A process is holding onto a transport performance counter. processId : 16260, counter : average task wait time Value=10 SpinLock=0 Lifetime=Type: 1 ProcessId: 16260 StartupTime: 130432298608633345, currentInstance : eas(B8721B2) RefCount=1 SpinLock=0 Offset=1600, categoryName: MSExchange User WorkloadManager A process is holding onto a transport performance counter. processId : 4172, counter : average task wait time Value=1 SpinLock=0 Lifetime=Type: 1 ProcessId: 4172 StartupTime: 130431896723907291, currentInstance : rca(B878B35) RefCount=1 SpinLock=0 Offset=32, categoryName: MSExchange User WorkloadManager
Performance Counter erneut regestrieren
Um die Fehler zu beheben, müssen die Performance Counter erneut regestriert werden. Diese befinden sich im Exchange Server 2013 Installations Verzeichnis im Order „Setup/Perf“.
Powershell Snapin laden
Damit alle nötigen Cmdlets vorhanden sind, muss folgendes Snapin geladen werden:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Setup
Performance Counter regestrieren
Nun kann folgender Befehl ausgeführt werden, um die Performance Counter erneut zu regestrieren,
Get-ChildItem "Exchange_Installation\Setup\Perf" | Where-Object {$_.Name -match ".xml"} | Foreach {New-PerfCounters -DefinitionFileName $_.FullName}
Der Fehler bei einem Performance Counter ist normal, wenn die Installationsdateien von Exchange Server Service Pack 1 benutzt werden. Damit sollten die Eventlog Fehler behoben sein.
b !
SCNR