CSMCollector service becomes inactive and doesn’t process requests after enabling 32-bit applications in “OperationsManagerCsmCollector v4.0” app pool configuration

Heads up: some issue I faced during recent CSM monitoring implementation. Working on remediation with Microsoft. Still, beware. While working on one of the recent consulting projects I faced a strange behavior dealing with CSM monitoring implementation. This article is written based on the hands on experience. As you know on 64-bit boxes in app…

Heads up: some issue I faced during recent CSM monitoring implementation. Working on remediation with Microsoft. Still, beware. While working on one of the recent consulting projects I faced a strange behavior dealing with CSM monitoring implementation. This article is written based on the hands on experience. As you know on 64-bit boxes in app pool configuration you can check to “Enable 32-Bit Applications” option. Say, for some reasons I had to enable it for CSMCollector app pool (“OperationsManagerCsmCollector v4.0”): Having done this I noticed that I started missing CSM data. Albeit the web application pages are injected with uX scripts, the requests are sent to CSMCollector (I can check this with Fiddler), but I get no client-side events and statistics received at all. I enabled APM trace log on affected server and got plenty of “CSMCollector ServiceManager is not active” errors like below: Agent version: 7.0.5000.0 .NET Framework: v4.0.30319.269 ProcessID: 30488; InstanceID: 0; InstanceName: w3wp.exe; ApplicationPool: OperationsManagerCsmCollector v4.0; Full Domain name: /LM/W3SVC/8/ROOT/CSMCollector-1-129917338260256050; [0]30488.21608::09/10/2012-02:57:03.248 [Agent.CSMCollectorService] [] [Error] :CsmCollectorService.ProcessCsmEvent{csmcollectorservice_cs257}( 015DF0E0 )CSMCollector ServiceManager is not active. [8]30488.1648::09/10/2012-02:58:34.369 [Agent.CSMCollectorService] [] [Error] :CsmCollectorService.ProcessCsmEvent{csmcollectorservice_cs257}( 0171C5DD )CSMCollector ServiceManager is not active. [0]30488.48032::09/10/2012-02:59:42.669 [Agent.CSMCollectorService] [] [Error] :CsmCollectorService.ProcessCsmEvent{csmcollectorservice_cs257}( 02ABE64D )CSMCollector ServiceManager is not active. [1]4844.19088::09/10/2012-04:34:09.540 [Microsoft.EnterpriseManagement.OperationsManager.Apm.Common] [] [Error] :CSYSConsoleBase.Print{basesysconsole_cs644}( 010D5FB2 )An error has occurred. Please contact Technical Support if this issue persists. Type: Agent.Common.CSYSConsoleBase+AgentException Message: Unexpected result: ‘setupPath != null’. Source: Microsoft.EnterpriseManagement.OperationsManager.Apm.Common StackTrace: at Agent.Common.CSYSConsoleBase.CheckLogic(Boolean logicExpression, String predicate, ExpCategory category) at Agent.Collector.ServiceManager..ctor() End of stackTrace: at Agent.Common.CSYSConsoleBase.GetExeptionInformation(Exception exp) at Agent.Common.CSYSConsoleBase.Print(Exception e, String messageStr, String parameter, EntryType entryType) at Agent.Common.CSYSConsoleBase.Print(Exception e, String messageStr, EntryType entryType) at Agent.Common.CSYSConsoleBase.PrintFromExternalMethod(Exception exp, String message, EntryType entryType) at Agent.Common.CSYSConsoleBase.PrintFromExternalMethod(Exception exp, EntryType entryType) at Agent.Collector.ServiceManager..ctor() at Agent.Collector.ServiceManager.Nested..cctor() at Agent.Collector.ServiceManager.get_Instance() at Agent.Collector.Engine.Suppliers.StatisticsReportingHttpHandler.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error) at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) Agent version: 7.0.5000.0 .NET Framework: v4.0.30319.269 ProcessID: 4844; InstanceID: 0; InstanceName: w3wp.exe; ApplicationPool: OperationsManagerCsmCollector v4.0; Full Domain name: /LM/W3SVC/8/ROOT/CSMCollector-1-129917396546536050; [10]4844.38608::09/10/2012-04:34:27.827 [Agent.CSMCollectorService] [] [Error] :CsmCollectorService.ProcessCsmEvent{csmcollectorservice_cs257}( 0398CA93 )CSMCollector ServiceManager is not active. [8]4844.6724::09/10/2012-04:41:28.379 [Agent.CSMCollectorService] [] [Error] :CsmCollectorService.ProcessCsmEvent{csmcollectorservice_cs257}( 020CF7FB )CSMCollector ServiceManager is not active. Hm.. Looks like a bug. When I switch back and disable 32-bit apps for CSMCollector app pool, everything works pretty well. According to log most likely the problem deals with CSMCollector installation key search in registry. When you enable 32-bit applications on the pool, it might start looking for CSMCollector keys in 32-bit branch and cannot find it there, while actually it’s registered in 64-bit registry path. Still no resolution or workaround found for the issue. Probably it can be resolved only with code fix. Regards!

Share:

Categories:

Featured Posts:

Subscribe to our newsletter