Troubleshooting the Failure of the eG .NET Profiler to Profile and Measure Performance of .NET Transactions
This section discusses what to do to
-
What are the very basic checks that need to be done when .NET BTM test for a website (say, SampleWebsite) is not reporting any metrics?
- IP / Port cross-check – The IP and Port number of the “SampleWebsite” needs to be cross-checked while adding a component.
- Website Name in Test Config – The website name “SampleWebsite” (Case sensitive - as in the IIS server) needs to be specified in test configuration page of “.NET Business Transactions” Test.
- Successful execution of SetupDotNetProfiler.bat – Check if a “Setup Aborted” error message appeared when the SetupDotnetProfiler.bat was executed.
- IISRESET – Check if the IISRESET command was run after successful execution of batch file.
- Initiate requests for website – Ensure that the user hits the URL of the SampleWebsite.
- Enable IIS Management Scripting & Tools – Enable IIS Management scripts and tools from the Microsoft Windows features.
-
Check for the existence of other Profiling tools – For this, follow the checks discussed in response to question 2 of the Frequently Asked Questions (FAQ) topic. If these checks reveal that some other profiler pre-exists, you will have to uninstall that profiler for the eG .NET profiler to work.
-
How to verify that the eG .NET BTM has been successfully installed?
You can check the System Environment Variables and Event Logs to verify whether/not the eG .NET pofiler has been installed on a server.
Checking System Environment Variables
- Login to the system hosting the eG .NET BTM.
-
Open Windows Explorer and go to the Computer or My Computer node therein, depending upon the version of Windows in use. In some Windows versions, you can even type This PC in Search.
-
Right-click on the relevant node and select Properties.
Figure 1 : Selecting Properties option from shortcut menu
-
Figure 2 will appear. Click on Advanced Settings in Figure 2.
-
Then Figure 3 appears. Under Advanced tab, click on the Environment Variables button.
-
In the list of Environment Variables that then appears, look for the COR_PROFILER and COR_ENABLE_PROFILING variables.
Figure 4 : Checking the System Variables list for the COR_PROFILER and COR_ENABLE_PROFILING variables
-
If the COR_PROFILER variable is set to the GUID, 947734AF-7AE7-41DD-BAE5-5EA8E4AE89BB, and the COR_ENABLE_PROFILING variable is set to 1, it means that the eG .NET profiler is installed on the server. If the COR_PROFILER variable is set to a different GUID, it means that some other third-party profiler is installed on the server.
Checking the Event Logs
- Open the Windows Event Viewer and check for “NET Runtime” information in Windows Logs > Application.
-
Look for a message of the following format:
The profiler was loaded successfully. Profiler CLSID: '{<GUID_of_Profiler>}'
- If a message of the above format exists, and the <GUID_of_Profiler> that is displayed as part of the message is 947734AF-7AE7-41DD-BAE5-5EA8E4AE89BB, it means that the eG .NET profiler is installed on the server. On the other hand, if a different GUID is displayed as part of the message, it means that some other third-party profiler is installed on the server.
-
How to verify whether the eG .NET BTM module is successfully attached to a worker process (w3wp.exe)?
-
If you are using a .NET Runtime version 2.0 (and above), then follow the steps below:
- Open the Windows Event Viewer and check for “NET Runtime” information in Windows Logs > Application.
-
If you find the following message therein, it means that the attachment is successful.
The profiler was loaded successfully. Profiler CLSID: '{947734AF-7AE7-41DD-BAE5-5EA8E4AE89BB}'
-
If you are using a .NET Runtime version prior to v2.0, then follow the steps below:
- Download ProcessExplorer.exe and run in Administrator mode.
- Press CTRL+ F and search for eGCLRMonitor.
-
Check if w3wp.exe of the web site’s application pool contains eG .NET BTM. If so, it means that eG .NET BTM is successfully attached to the worker process.
-
-
What do I do if no messages are logged for the eG .NET Profiler?
The eG .NET Profiler automatically creates log files in the eg_dotNetBTM folder (of the C:\ProgramData\eGurkha\agent\Logs directory), and logs each operation it performs and its status in these log files.
If the eg_dotNetBTM directory is empty or if no messages are logged in the log files in this directory, it could mean one/both of the following:
- The BTM module has not loaded properly: To check this, follow the steps detailed in the response to question 3 above.
-
The <EG_INSTALL_DIR> cannot be accessed by Authenticated Users: Check whether Authenticated Users are allowed access to the <EG_INSTALL_DIR> that contains the eg_dotNetBTM directory. For that, do the following:
- First, navigate to the <EG_INSTALL_DIR> in Windows Explorer.
- Then, right-click on the <EG_INSTALL_DIR>, and select Properties.
- In the Properties dialog box that then appears, click the Security tab page.
-
Check for the Authenticated Users group in the Group or user names list in the Security tab page.
Figure 5 : Checking whether/not the 'Authenticated Users ' group is listed in the Group or User names list
-
If you do not find that group name in the Group or User names list, it means that the authenticated users cannot access the <EG_INSTALL_DIR> or its sub-directories. In this case, make sure that the Authenticated Users are allowed read/write access to the <EG_INSTALL_DIR>.
-
What do I do to save web application when the web site crashes / throws ERROR in web page, after .NET BTM is setup?
- First, open <EG_INSTALL_DIR>\agent\config\eg_DotnetServer.ini file and change INSTRUMENTATION_LEVEL to ‘2’. Then, run the IISRESET command.
- If the web site crashes even after the instrumentation level is changed, then run the uninstall_Profiler.bat in the <EG_INSTALL_DIR>\lib directory to uninstall the profiler. Once the profiler is uninstalled, run the IISRESET command
-
If the web site crashes even after the profiler is uninstalled, please contact the eG development team.
-
How can I check if .NET BTM module is sending data to eG agent?
Open the AgentComm.log file (in the C|PrgramData\eGurkha\agent\Logs\eg_dotNetBTM directory) and do the following:
-
Check for the following message in log file:
“[ERROR] unable to Connect with server 10061”
If the message is found, it indicates that the test has not started.
-
Check for the following message in log file:
“REQ SWAPPED - 1 & REQ SENT: 0 “
If the message is found, it indicates that the request was filtered/discarded, since the request does not pertain to the web site being monitored.
-
-
What if .Net BTM could not capture the requests even after all basic checks were performed and passed?
Open the AgentComm.log file (in the C\ProgramData\eGurkha\\agent\Logs\eg_dotNetBTM directory) and check if REQ_SWAPPED is ‘0’ for the w3wp.exe Process ID of the web site being monitored, even after the user hits the URL of the web site. If so, it indicates that the requests were not captured. Typically, requests to the following page types will not be captured:
- Pure HTML pages
- Pure ASP pages
-
Pages with any other extensions
This is because, the eG .NET BTM can trace the path of requests to only .NET web applications.
Please contact the development team if the problem persists.
-
I have installed the eG .NET Profiler on a Microsoft Sharepoint portal, but it is not working. What do I do?
Loader optimization assemblies in Sharepoint can interfere with profiler operations. If these assemblies are not disabled before you install the profiler, the profiler may not be able to profile transactions or measure their performance. Therefore, its imperative that you disable the loader optimization assemblies before BTM-enabling a Sharepoint portal/site. To achieve this, follow the steps below:
- First, go to the Registry Editor (regedit).
- Under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework, create a new DWORD "LoaderOptimization" with value 1.
-
Then, under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\, create a new DWORD "LoaderOptimization" with value 1.
These configurations disable loader optimization assemblies, which may interfere with profiler operations.
- Finally, restart the IIS web server.