.NET Agent breaks CRM application when instrumented

Document ID : KB000029727
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

The .Net Agent is set up to monitor various processes, .exe binaries for CRM, and other .NET applications. Once enabled, the CRM application cannot be used. This CRM application is also instrumented with .NET Agent

The .NET Agent configuration is as follows:

introscope.agent.dotnet.monitorApplications=w3wp.exe,aspnet_wp.exe,Microsoft.Crm.Tools.EmailAgent.exe,CrmAsyncService.exe,Microsoft.Crm.Sandbox.HostService.exe,CrmUnzipService.exe,Microsoft.Crm.VSSWriterService.exe
 
  introscope.agent.dotnet.monitorAppPools= "NULL","CRMAppPool"

- The event viewer indicates that the Application pool 'CRMAppPool' is being automatically disabled due to a series of failures in the process(s) serving that application pool, including a fatal communication error with the Windows Process Activation Service.

-The IntroscopeAgent logs show the following errors repeatedly:

[ERROR] [IntroscopeAgent.Agent] Exception starting method tracer actualtrace for [Microsoft.Crm.Core]Microsoft.Crm.CrmDbConnection.Dispose [ERROR] [IntroscopeAgent.Agent] Exception finishing method tracer for
[Microsoft.Crm.Core]Microsoft.Crm.CrmDbConnection.Dispose

-The Autoprobe logs shows that Microsoft.Crm.CrmDbConnection.Dispose is instrumented with SQLMethodFinishCounter

 

Solution:

Here are some suggested troubleshooting steps:

1. Verify there is a conflict intrumenting Microsoft.Crm.CrmDbConnection.Dispose.    

To confirm if this conflict triggers the failure with the monitored applications, add the following skips in sqlagent.pbd and restart the monitored applications  to reproduce the problem:

SkipClassForFlag: Microsoft.Crm.CrmDbConnection SQLAgentConnections

2. Enable agent DEBUG logging when reproducing the problem.

3. If the problem still persists, review the logs  and reduce the monitored applications and the specified tracing groups/components one by one to narrow down the conflicting instrumentations.

a) Disable SQLAgent by removing the SQLAgent.jar out of the AGENT directory. If using v9.1, then configure: Introscope.agent.sqlagent.sql.turnoffmetric=true
b) Turn off tracers for network, filesystem, NIO and System File Metrics in toggles pbd file.
#TurnOn: SocketTracing
#TurnOn: UDPTracing
#TurnOn: FileSystemTracing
#TurnOn: ManagedSocketTracing
#TurnOn: NIOSocketTracing
#TurnOn: NIOSocketSummaryTracing
#TurnOn: NIOSelectorTracing
#TurnOn: NIODatagramTracing
#TurnOn: NIODatagramSummaryTracing
c) Disable the agent's automatic transaction tracing function. In the IntroscopeAgent profile, set
introscope.agent.transactiontracer.sampling.enabled=false
introscope.agent.transactiontracer.sampling.perinterval.count=0
d) Disable any additional Agent extensions such as: ChangeDetector, Leakhunter, Powerpacks.
e) Disable any additional custom pbd, agent extension, or formatter created by the Professional Service team.