Seeing duplicate Dot Net Agent names in the Investigator.

Document ID : KB000012961
Last Modified Date : 16/08/2018
Show Technical Document Details
Question:

 Why am I seeing duplicate Agent names in the investigator appended with %1,%2,%3 etc. ?

 

Environment:
All supported APM versions on Windows
Answer:

In APM it is not possible for two agents to have the same name so if the Enterprise manager detects an agent attempting to connect with the same name as an agent it already believes to be connected it will append a %n to the name of the connecting agent.

In the IIS environment there are a couple of situations which can result in this.

 - The application pool being monitored has multiple worker processes defined for it i.e. it will allow more than one process (and therefore agent) to start for a given application
 - During Application pool recycling the existing process is still active when the new process is started - this is discussed further below
 

When the Agent restarts it has a new process id.

  • In Windows, if the Agent about to restart still has a running transaction, then the process will continue analyzing the transaction and afterwards, the process terminates. However, this does not stop the Windows from creating a new process because of the restart. As a result, two processes associated with the same application. In the Investigator, this would be represented as Agent and Agent%1.
  • On the Agent side, both the agents with the old process Id and the one with the new process Id will have the same name. However, because the EM already has this name established, the new process Id will have its name appended with "%1".
     
  • The problem with setting the property "introscope.agent.agentAutoNamingMaximumConnectionDelayInSeconds ", is that it delays the connection until is receives it name. Using the information provided above, we see that the Agent gets its name properly and relatively quickly. Once the Agent gets its name, it connects to the EM and the EM applies the "%1".

Note:

  • If you try setting this property "introscope.agent.agentAutoRenamingIntervalInMinutes=10 ", this will not work because the Agent name will not change.

Both the above situations can be controlled to some extent in the IIS configuration - specifically via the settings
  • Maximum Worker Processes
  • Disable Overlapped Recycle
see link https://technet.microsoft.com/en-gb/library/cc745955.aspx for details on this. Caution should be advised as modifying settings here could impact application performance