Appendix: Knowledge Base Articles and Solutions

These Knowledge Base articles apply to AVIcode products from Version 5.0 through 5.7

1. Intercept Agent

1.1. [ISV5] [HowTo] Configure Intercept Agent to capture unique events when all namespaces are enabled as Entrypoints

Symptoms:

You see events with the identical method from your custom namespace in the header. You have "All Namespaces" (or a custom namespace) "As Entrypoint" settings for the application(s):

You want to see an individual call that goes right after this "Start" method to define guilty function in the event header:

Cause:

The particular method (for example, "Class.ThreadWrapper.Start") can be a proxy for the different calls inside the code. This method will be used as an Entrypoint (because it will be the first AVIcode-instrumented method on the stack) and almost all events will start from it.

Resolution:

In this case you should disable specific function from the "Namespace as Entrypoint" configuration.

You can make this by adding this function to resources for this application.

Example: method Class.ThreadWrapper.Start

All Web Applications:

- Open the Intercept Management Console

- Right-click "Web Applications", go to the "Properties", then go to the Monitoring Settings Tab Note that for Versions prior to 5.7 that this will be the Operations Mode tab

- Add your "proxy method" as a Resource ("Resources""Add"), in our example it will be "Class.ThreadWrapper.Start"

- Restart the Monitored Application ("IISRecycle"/"IISReset")

These actions disable specific method from Time-only Entrypoints for Web Applications.

Collected stack will start from the sub method.

All Applications:

To disable Time-only Entrypoint methods for all applications (not only Web) - do the same on the Applications level:

- Open the Intercept Management Console

- Right-click Applications node, go to the "Properties", then go to the Monitoring Settings Tab Note that for Versions prior to 5.7 that this will be the Operations Mode tab

- Add your "proxy method" as a Resource ("Resources" "Add"), in our example it will be "Class.ThreadWrapper.Start"

- Restart the Monitored Application ("Recycle"/"Reset" for Web)

These actions disable a specific method from the Time-only Entrypoints for All Applications.

Collected stack will start from the sub method.

Specific Application:

To disable the method as Entrypoint for the specific application - navigate to the Intercept Console and set this method as the custom Entrypoint for the necessary web/other application with unchecked "enable monitoring" feature.

These actions disable a specific method from the application Entrypoints. You will see this method in the events if it will be under some other Entrypoint, but events will not start from the excluded one.

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.2. [ISV5] Troubleshoot "Monitoring of applications in Operations Mode is disabled because the .NET Framework version 'vX.X.XXXX.XXXX' is not verified." error. Set the compatible FW version.

Symptoms:

Intercept MMC console displays the following error message:

"Monitoring of applications in Operations Mode is disabled because the .Net Framework version "vX.X.XXXX.XXXX" is not verified."

 

Intercept Event Log has the following warning message from the source "Intercept PMonitor":

"Monitoring of applications in Operations Mode is disabled because the .Net Framework version "vX.X.XXXX.XXXX" is not verified."

Cause:

Out of the box, Intercept Agent is compatible with the .NET FW builds which had been available prior to the agent release date. For all newer builds of .NET FW additional compatibility tests should be done.

Resolution:

AVIcode has tested Intercept Agent compatibility with .NET FW builds up to and including 4.0 (for Intercept Agent 5.7). To update agent configuration, follow these steps:

- Open the Intercept MMC console

- Right-click the "Applications" node

- Chose "Update supported FW version" menu item

- Click "Yes" when the MMC asks you if you want to proceed

- New settings will be applied once you restart the applications being monitored

Notes:

Verified FW versions out of box:

- for Intercept Agent 5.0 - 5.5: up to v2.0.50727. 4927

- for Intercept Agent 5.5 - 5.6 SP1: v3.9.9999

- for Intercept Agent 5.7: v4.0

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.3. [ISV5] [HowTo] Collect session variables in Operations mode

Symptoms:

You want to collect session variables as parameters.

Cause:

N/A

Resolution:

Session variables can be retrieved by name or index of item in session collection.

For example, to get "username" from session variables developer should:

- Add the user name in session:

this.Session.Add("UserName", this.Context.User.Identity.Name)

- Change "PMonitor.default.config" if your monitored application runs under .NET FW1.1 (or "PMonitor2_0.default.config" for applications under .NET FW 2.0 and higher): it should contain this type of definition ("argument" tag added under the "function" tag)

To retrieve by name:

<ss:function name="System.Web.UI.Page.ProcessRequest" paramCount="2" module="System.Web.dll" methodInfo="System.Web.HttpContext context">

<ss:argument name="Session[UserName]" detaillevel="7/10" alias="UserName"/>

<ss:instrumentation name="Instrumentation.InstrumentationClass.ProcessRequestConditionsProducer" assembly="Instrumentation" value="prefix" />

<ss:instrumentation name="Instrumentation.InstrumentationClass.ProcessRequestProducer" assembly="Instrumentation" value="postfix" />

</ss:function>

Or to retrieve by index:

<ss:function name="System.Web.UI.Page.ProcessRequest" paramCount="2" module="System.Web.dll" methodInfo="System.Web.HttpContext context">

<ss:argument name="Session[0]" detaillevel="7/10" alias="UserName"/>

<ss:instrumentation name="Instrumentation.InstrumentationClass.ProcessRequestConditionsProducer" assembly="Instrumentation" value="prefix" />

<ss:instrumentation name="Instrumentation.InstrumentationClass.ProcessRequestProducer" assembly="Instrumentation" value="postfix" />

</ss:function>

- Restart the application pool of the monitored application ("IISRecycle") to start the monitoring with the new settings.

Argument tag must be the first child node of the function node.

Session variable will be reported inside the event:

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.4. [ISV5] [HowTo] Collect the user name for ASP.NET from the custom object in Operations mode

Symptoms:

In some cases the user name cannot be collected using of standard technologies (from the HttpContext).

Cause:

Usually if the user is not registered correctly using ASP.NET technologies, the user name is stored in the collections like: Sessions, Cookies etc. There is an option to replace the user collected from the HttpContext with the user name (or the user ID that is enough for reports) stored in other places.

Resolution:

The information from where to take the user name can be added on the application or app domain level in "PMonitor.config". The path to the value should be described in the "userPath" element.

In case the user can be retrieved from the static member you need to:

1. Set the "isStatic" attribute to "true"

2. Create the path in the format: "Object/Type::SubObject/Type".

a. Type is case sensitive

b. If the type is not from "mscorlib", it is required to provide the fully qualified assembly name.

If the user can be retrieved from the arguments of the function (for web applications it is "ProcessRequest", for web services it is "LogicalMethodInfo.Invoke") you need to:

1. Set the "isStatic" attribute to "false"

2. Create the path in the format: "Number/Type::SubObject/Type"

a. "Number" is an argument number for "ProcessRequest/LogicalMethodInfo.Invoke" (depending whether the user is collected for web applications or web services)

b. "Number" = 0 is "this". So for web applications it is Page and for web services it is LogicalMethodInfo.

c. "Number" = 1 is HttpContext for web applications and WebService for web service applications.

d. Type is case sensitive

e. If type is not from "mscorlib", it is required to provide the fully qualified assembly name

Example:

In the current example the user name is stored in the Sessions variables in the specific class Rapids.Model.User.

First "userPath" attribute is defined for all application domains. This is correct for both web applications and web services as use static HttpContext.Current that is available in both application types.

Second "userPath" is specific for web applications because it tries to get the user from the first method argument. This is only possible for web applications (the first argument of "ProcessRequest" is HttpContext). Second way is faster as you skip creation of "Current".

<ss:application name="w3wp.exe" >

<ss:userPath path="Current/System.Web.HttpContext, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a::Session[MySecurityUser]/Rapids.Model.User::UserLogin/System.String" isStatic="true"/>

<ss:appdomain name="Default Web Site/WebApplicationDomain" >

<ss:userPath path="1/System.Web.HttpContext::Session[MySecurityUser]/Rapids.Model.User::UserLogin/System.String"/>

</ss:appdomain>

<ss:appdomain name="Default Web Site/SecondDomain">

<ss:userPath path="1/ArgumentType::Field1/Field1Type::Field2/Field1Type2"/>

</ss:appdomain>

</ss:application>

User name will be reported inside the event as "user":

Applies to:

AVIcode Intercept Agent 5.6 - 5.7

1.5. [ISV5] Monitoring executable applications that use DDE server during starting process

Symptoms:

There is the following known issue with monitoring executables applications that use DDE server during starting process.

If the application is added to monitoring and this application starts by double clicking file associated with this application - then parameters are not passed to the DDE server and file is not opened by the program.

Example: Monitoring MS Word application

There are the following steps to reproduce:

- Add WinWord.exe application to monitoring

- Open the ".docx" file by double click it in Windows Explorer

Expected result: WinWord application is started and WinWord file will be opened.

Wrong result: WinWord application is started but WinWord file is not opened.

if you use FileOpen command file is open successfully.

Cause:

The reason of the issue is the following:

1. Without Intercept monitoring file open process can be described in the following way:

- When the user double clicks WinWord file (".doc", ".docx"), shell is searching in the registry for the program that must open this file.

- The searched program is WinWord.exe application that has the following definition in the registry:

"C:\Program Files\Microsoft Office\Office12\WINWORD.EXE" /n /dde

Parameter /dde is undocumented, but it instructs Word to run its "DDE server".

- DDE file identifies file name to open by analyzing its ddeexec registry key.

For a WinWord application its value is the following: [REM _DDE_Direct][FileOpen("%1")]

2. When Intercept monitoring is enabled for the WinWord.exe, application file open process is the following:

- When the user double clicks WinWord file (".doc", ".docx"), Windows is searching in the registry for the program that must open this file.

- Shell identifies that WinWord.exe has debugger key and starts Intercept "Starter.exe" program with command line parameter:

"C:\Program Files\Microsoft Office\Office12\WINWORD.EXE" /n /dde

instead of DDE server.

- Starter runs "C:\Program Files\Microsoft Office\Office12\WINWORD.EXE" /n /dde,

- WinWord.exe is running, but it has no information about the file to open (as DDE server was not run).

Resolution:

By design.

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.6. [ISV5] Troubleshoot application failure with "Illegal operation attempted on a registry key that has been marked for deletion" error

Symptoms:

APS.NET application runs on IIS7 Windows 2008.

AppPool uses custom identity.

AppPool "Load User profile" setting is false.

User under which "w3wp" is running logs in and off from the same computer

When monitoring is enabled on web applications:

- Application fails with the error "Illegal operation attempted on a registry key that has been marked for deletion" OR

- "StubProfiler" fails with the following error message and monitoring never starts

Event Type: Error

Event Source: Intercept Stub

Description:

Error: Illegal operation attempted on a registry key that has been marked for deletion.

Code: 800703FA Type: COM object External Time 5/24/2010 6:16:59 PM Thread: 2680 Raised in: spConfigDoc.CoCreateInstance(CLSID_DOMDocumentCommon).

CConfigDoc::LoadCConfigDoc::LoadValidateOrThrow.Load, Caught in: CInitThread::Execute.

Cause:

When the user under which "w3wp" is running logs in and off from the same computer, the registry hive is unloaded by default. This new feature was implemented in Windows 2008. After this, addressing to the registry that was already unloaded leads to the exception.

Resolution:

There are 2 workarounds:

1. Disable the new User Profile Service feature:

- From command prompt open "gpedit.msc"

- Computer "Configuration""Administrative Templates""System" "UserProfiles"

- Select "Do not forcefully unload the user registry at user log off"

- Change the setting from "Not Configured" to "Enabled"

2. Set the Load User Profile property of the application pool to "True":

- Open the IIS Management console.

- Select the "Advanced properties" of the application pool.

- Set the "Load User Profile" to "true".

Applies to:

Intercept Agent 5.0 - 5.7

IIS7.5 (Windows 2008)

1.7. [ISV5] Shown the full web application path "LM/W3SVC/[Web_Site_ID/...]" instead of web application friendly name

Symptoms:

SE-Viewer displays the full IIS Application path "/LM/W3SVC/[Site_ID]/..-TestApp-" as a source of Web Application event instead of IIS Friendly name "TestApp".

Advisor displays the full IIS Application path in the sources/reports.

The Intercept Management Console "Add Web Application" wizard only displays ROOT sites names without any Virtual Directories/Applications.

Cause:

It is necessary in the "IIS Management Script and Tools" feature of the IIS installation to query the correct friendly name for the Web Application.

If this IIS feature was not selected for IIS installation and you have "IIS 6 Compatibility" installed - the Agent will monitor Web Apps but only "All Web Applications" or ROOT sites can be selected for monitoring.

Events from the web applications will have the full "LM" path instead of Display Name in this environment.

Resolution:

Choose "IIS management Scripts and Tools" feature of IIS7 installation - no Machine Restart will required (but IIS Recycle will).

The "IIS management Scripts and Tools" feature is the part of the "Web Management tools" features group of IIS installation.

Applies to:

AVIcode Intercept Agent 5.5

1.8. [ISV5] ".NET CLR... " and "Process" counters are not collected for some processes

Symptoms:

Sometimes "Process" & ".NET CLR" counters are not collected for the process.

Cause:

This can happen on Windows XP, Windows 2003, Windows 2007 and Windows Vista platforms because there is a problem in retrieving instance name. Process objects support only 64 symbols in the process name.

Resolution:

Reduce the length of executable name to 64 symbols.

Having reduced executable name you can see that these performance counters are collected:

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.9. [ISV5] [HowTo] Troubleshoot Intercept Agent performance overhead issues by estimating system load with Intercept diagnostic counters

Question:

User wants to collect and log the following information in order to estimate system load for troubleshooting the Agent performance overhead issue:

- Number of functions processed under Agent monitoring

- Number of Entrypoints processed under monitoring

- Number of events being processed

- Number of resources, functions per Entrypoint ect

Answer:

Intercept diagnostic counters (which the user can collect/log to estimate system load) can be enabled in the configuration files and can be accessed via the "System Performance Monitor".

Enable and view/log Intercept diagnostic counters

1) Enable Intercept diagnostic counters:

a. Close Intercept MMC Console

b. Navigate to "C:\Program Files\Avicode\Intercept\Agent\v[The_highest_version]\Configuration\Standard" folder

c. Open the "PMonitor.config" file for editing

d. Enable Agent diagnostic under options: change <ss:enableAgentDiagnostic value="false"/> to <ss:enableAgentDiagnostic value="true"/>

e. Save "PMonitor.config" file

f. Restart the monitored application if started

Win 2003:

2) View the Intercept diagnostic counters:

a. Open the "System Performance Monitor" ("Administrative Tools" "Performance")

b. Add counters:

i. Choose Performance Object "Intercept Agent"

ii. Select "All counters" from the list for the required instance (for example, "w3wp")

iii. Click "Add"

c. Manage the counters view: change scale, hide/highlight counters ect

i. See counter's description to know which information it provides

3) Collect performance logged with Intercept diagnostic counters:

a. Open the "System Performance Monitor" ("Administrative Tools""Performance")

b. Navigate to "Performance Logs and Alerts" on the left pane and select "Counter Logs"

c. Right-click and select "New Log Settings":

i. choose an appropriate name for the log file

ii. Click "Add objects" and select "Intercept Agent"

iii. Click "Add"

iv. Set the interval to about 10-15 seconds

v. Set the "Binary file" format on the "Log files" tab

vi. Set the Start log manually on the "Schedule" tab

vii. Click "OK"

d. Start newly created log to collect counters for the monitored application

e. Stop logging after some meaningful time of monitored application load

f. See for created log in performance log folder - by default: "C:\PerfLogs\"

Win 2008R2:

2) View the Intercept diagnostic counters:

a. Open the "System Performance Monitor" ("Administrative Tools" "Performance Monitor")

b. Open the "Performance Monitor" from the left pane

c. Add counters:

i. Choose All counters from the "Intercept Agent" category

ii. Select the required instance (for example, "w3wp")

iii. Click "Add", click "OK"

d. Manage the counters view: change scale, hide/highlight counters ect

i. See counter's description to know which information it provides

3) Collect performance log with Intercept diagnostic counters:

a. Open the "System Performance Monitor" ("Administrative Tools" "Performance")

b. Navigate to "Data Collector Sets"/"User Defined" on the left pane

c. Right-click and select "New""Data Collector Set":

i. choose an appropriate name and "Create Manually" and click "Next"

ii. Choose "Create Data logs""Performance Counter" and click "Next"

iii. Add "Intercept Agent" with All/Required instances and click "OK"/"Next"

iv. Choose Path to store Data Collector Set and click "Next" and "Finish"

d. Start newly created Data Collector Set

e. Stop logging after some meaningful time of monitored application load

f. See for created log in the performance log folder - by default: "C:\PerfLogs\Admin\[Data Collector Name]\[Machine-Date]\ "

Applies to:

AVIcode Intercept Agent 5.5 - 5.7

1.10. [ISV5] Getting resources, registries and file system changes caused by Intercept Agent Installation

Question:

The current knowledge base article describes list of resource, registry and file system changes during Intercept Agent installation.

Answer:

During Intercept Agent installation:

1. Following folder is being created:

"[Program Files]\AVIcode\Intercept\Agent\vX.X.XXX"

No special permissions are granted.

for the inner folder "[Program Files]\AVIcode\Intercept\Agent\vX.X.XXX\Logs" full control for "Everyone" is granted.

2. These libraries are put into the system GAC:

"Agent.Common.dll"

"Agent.CSMInjection.dll"

"Agent.DataProducers20.dll"

"Agent.Instrumentation.dll"

"Agent.InstrumentationAPI.dll"

"Agent.InstrumentationLoader.dll"

"Agent.InstrumentationUtils.dll"

"Agent.ServerScripting.dll"

"Agent.StatisticCounters.dll"

"policy.5.6.Agent.Instrumentation.dll"

"policy.5.6.Agent.InstrumentationAPI.dll"

3. "InterceptCounters.dll" is put in "[Windows]\System32" (or " [Windows]\SysWOW64" for x64 systems)

No special permissions are granted.

4. "AVIcodeInterceptMmcHelp.chm" is put in "[Windows]\Help"

No special permissions are granted.

5. "Starter.exe" is put in "[Windows]"

If the upgrade "Starter.exe" is renamed to "Starter1.exe" and new "Starter.exe" is being created.

No special permissions are granted.

6. Several COM objects (for example, InterceptCounters, WMIAgent, Dispatcher and others) are created.

No special permissions are granted.

7. "Intercept Service" that is running under Local System by default is registered.

(Corresponding key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Intercept Service)

8. "Indexing service" is stopped.

9. "Intercept Event Log" is created.

(Corresponding key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Intercept)

No special permissions are granted.

10. Following performance counters categories are being created:

.NET Apps and Intercept Agent

(Corresponding key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InterceptCountersManager)

 

.NET Statistics

(Corresponding key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.NET Statistic)

 

Intercept CSM Filters

(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Intercept CSM Filters)

 

Intercept Injector

(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Intercept Injector)

 

Intercept SyncAction Processing

(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Intercept SyncAction Processing)

 

During each counters registration the following registry keys are changed:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\[LanguageNumber]\Counter

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\[LanguageNumber]\Help

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\Last Counter

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\Last Help

No special permissions are granted.

11. The following registry key is created (besides that are produced by actions above in the list):

HKEY_LOCAL_MACHINE\SOFTWARE\AVIcode\Intercept\ServerAgent\InstallPath

(or HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AVICODE\Intercept\ServerAgent\InstallPath for x64)

For application monitoring after installation:

For executable applications HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\[ApplicationName].exe\Debugger is created.

For windows services values is added to HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\[ServiceName]\Environment

For web applications values are added to:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IISADMIN\Environment

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Environment

For web applications on IIS7 is also added:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WAS\Environment

For COM+ applications launch debugger key is added.

Following environment variables are also added:

COR_PROFILER

Cor_Enable_Profiling

DBG_PRF_PROCESS_ID

DBG_PRF_PROCESS_NAME

DBG_PRF_PROCESS_NAME_WITH_PATH

DBG_PRF_APPLICATION_POOL

DBG_PRF_PROCESS_START_TIME

DBG_PRF_DISPLAY_NAME

DBG_PRF_SERVER_AGENT_VERSION

DBG_PRF_WINDOWS_VERSION

DBG_PRF_CPU_COUNT

DBG_PRF_MONITOR_CONFIG_PATH

DBG_PRF_WORKING_MODE

DBG_PRF_MANAGER_STATE

DBG_PRF_ERROR_LEVEL

Agent 5.7 will have the following changes:

1. New libraries are put in the GAC: "Agent.DataProducers35.dll" and "Agent.StatisticCounters.ScriptingLibrary.dll".

2. Only "Read Permissions" will be granted to "Everyone" on "Starter.config" and HKEY_LOCAL_MACHINE\SOFTWARE\AVIcode\Intercept\ServerAgent\InstallPath.

Applies to:

AVIcode Intercept Agent 5.6 - 5.7

1.11. [ISV5] There are no performance events from the console application monitored in Operations mode

Symptoms:

1. Events from the console application do not appear and there are no errors Intercept in the Event Log.

2. No "Monitor stopped successfully" event from PMonitor in the Intercept Event Log.

Cause:

See possible reasons in "Resolution".

Resolution:

1. There are no Entrypoints defined for the console application by default. The user should add application-specific to get performance events. It is strongly recommend not to use Main (in this case execution time of all application will be collected instead of the appropriate Entrypoint).

2. There are no handlers defined for the console application. Add concrete functions that throw exceptions for exception tracking to get exception events. You can add [All Namespaces] to diagnose a problem (it is not recommended to have it permanently because this can lead to performance degradation).

3. If console application shuts down quickly, PMonitor may not have enough time to send events; no information will be written in the Intercept Event Log about the loss. Event "Monitor stopped successfully" from PMonitor may not be written in the Intercept Event Log. This is one of the reasons as to why we do not recommend using Main as Entrypoint.

4. By default monitoring multiple domains is disabled. In can be enabled manually in "PMonitor.config". You will see warning in the Event Log with steps how to do this:

Event ID: 4210

Description:

Executable application "ConsoleTest.exe" creates multiple AppDomains. We recommend setting the attribute 'instrumentMscorlib ' to NEVER for applications running multiple App-Domains.

To modify the setting:

1. Open the configuration file [Program Files]\AVIcode\Intercept\Agent\v4.1.566\Configuration\Standard\PMonitor.config;

2. Find tag <ss:application name="ConsoleTest.exe" ...;

3. Add the attribute instrumentMscorlib="never" to this tag.

Example: <ss:application name="ConsoleTest.exe" instrumentMscorlib="never" ...>

System information:

Agent version: 4.1.566.0

Windows version: 2.5.2.3.274.1.0.0;

.NET Framework: v2.0.50727.1433

Process ID: 3748; Instance ID: 0;

InstanceName: ConsoleTest.exe

Applies to:

AVIcode Intercept Agent 5.0 - 5.7. Warning (in Resolution 4) is removed in 5.7.

1.12. [ISV5] [Technical HowTo] Avoid performance overhead for monitoring Time-only Namespaces

Symptoms:

This document describes the steps to perform in order to avoid excessive performance overhead from processing large numbers of time-only functions that are not exceeding the sensitivity threshold. There are a number of monitoring heuristics that help to determine whether time-only functions need to be processed or not. But sometimes even these heuristics do not help and too many light time-only functions are processed and create noise on custom applications.

Cause:

If the noise exceeds the Entrypoint self-execution time then the processing of time-only functions for that concrete Entrypoint is stopped.

The the following informational message will be posted to the Intercept Event Log:

"Intercept Studio detected problem with your configuration settings. Time-only function monitoring of a resource has exceeded the allowable threshold."

Some time-only functions will not be reported in the event for that resource until the resource is called again and the Entrypoint event will contain a note about the situation:

"Some time-only functions cannot be collected due to performance optimizations. Please disable non-interesting namespaces from performance monitoring to prevent this from happening."

You may see other messages in the Intercept Event Log related to this issue:

"Due to an unusually high system load, the threshold for functions processed per second has been exceeded. This may have resulted from time-only monitoring of a namespace with a large number of the functions. Please change your configuration settings to prevent this situation. Execution time monitoring for namespaces will be disabled."

OR

"Due to an unusually high system load, the threshold for functions processed per second has been exceeded. This may have resulted from time-only monitoring of a namespace with a large number of the functions. Please change your configuration settings to prevent this situation. All monitoring will be disabled."

Resolution:

See Appendix - Avoiding Performance Overhead for Monitoring Time-only Namespaces in this manual for more information.

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.13. [ISV5] [HowTo] Free assigned/reassign license from the server which is not in use

Question:

You want to free assigned, or reassign, a license from a server which is not in use now. For example, if you have removed Intercept Agent from this server.

Answer:

In order to free a license, you should do the following:

- Send a request to Technical Support to get "revoke" license. Unless you have "revoke" licenses, you will not be able to free existing server licenses. Number of available licenses you can see in SE-Viewer: "Tools""Licenses".

- After you get a "revoke" license, import it to the SE-Viewer using "Tools""Licenses" wizard as you do for common licenses:

Browse for license file in the "Open dialog" and add it:

- Use SEVIewer: "Tools""Options""Data" tab window to disable automatic license assignment:

- Then use SE-Viewer: "Tools""Licenses" wizard to revoke a license. When you open the wizard, you will see 3 radio buttons. One of them will offer you an option to revoke a license. Select that option and proceed with the wizard:

Choose server(s) you wait to revoke (to free a license(s)):

License(s) will be freed, so you will be able to assign it to another server.

After the license is freed, you can restore "Assign license automatically", - in this case free license will be assigned automatically to the server SE-Viewer has received event from. If you do not do it, you will have to use the license wizard to assign a license to each new Agent manually.

In order to assign license manually you should follow these steps:

1. In SE-Viewer browse "Tools" "Licenses":

Make sure that you have got at least one Free license. Check "Assign license" and click "Next".

 

2. Choose the license you want to assign and click "Next":

3. Select the server you want to apply license to and click "Next":

4. The license is assigned, click "Finish":

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.14. [ISV5] [HowTo] Enable collecting "Process" counters group in Intercept Studio event. Troubleshoot "GetProcessIndex (C0000BB8)" error.

Symptoms:

You have no "Process" counters group collected in Intercept Studio event and/or you receive the following error in the Intercept Event Log:

An error has occurred. Please contact Technical Support if this issue

persists.

Error: Code: C0000BB8 Type: Windows API External Time x/x/xxxx xx:xx:xx

PM Thread: xxxx

Raised in: pdhExpand. CCountersManager::GetProcessIndex, Caught in:

CCountersManager::GetProcessIndex.

System information:

Agent version: x.x.x.x

Windows version: x.x.x.x.x.x.x.x.

Cause:

Intercept Performance Monitor tries to access "Process" counters group to achieve required processes data. Once monitor cannot get "Process" counters group data - the error will be posted to the Intercept Event Log and counters will not be collected in event.

One of the possible causes of this type of behavior - disabled "Process" counters group in the "System Performance Monitor".

Resolution:

You must check whether "Process" counters group is enabled or not in the "System Performance Monitor".

There are several ways to do it:

- Manually check and enable it in System registry

- Use "exctrlst.exe" utility from Microsoft

Manually:

- Navigate to "System Performance Monitor" ("Start""Run"type "PerfMon"OK);

- Click "Add" and see if you can find "Process" category in the list.

- You can also check this directly in the registry - open HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance key and check if you have "Disable Performance Counters" with value "1"

In both cases you can enable this by changing "Disable Performance Counters" value to "0".

Using "Exctrlst.exe":

- Download "Exctrlst" setup and install an utility:

- Run utility and navigate to "PerfProc" Service

- See if it has "Performance Counters Enabled" checked

- Check this if it is not enabled

- Refresh the data and check that changes were applied.

Common:

Restart the "Intercept Service" after performing any of proposed steps.

Links:

- "Exctrlst.exe" can be downloaded from http://support.microsoft.com/default.aspx/kb/927229

- Information about the "Disable Performance Counters" feature: http://support.microsoft.com/kb/248993

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.15. [ISV5] Troubleshoot "Connection error (status code: 401, client error: 10)"

Symptoms:

You receive the following message in the Intercept Event Log:

An error has occurred. Please contact Technical Support if this issue persists.

Error: Unspecified error Error: Agent failed to communicate with SEViewer Server.

SEViewer Web Service URL:

http://domain.com/selog/semlogws.asmx

Error Message: Failed while parsing the response.

Connection error (status code: 401, client error: 10)

Code: 80004005 Type: External

Code: 80004005 Type: COM object External Time 7/15/2009 8:11:01 AM

Thread: 4064 Raised in: CSEAgent::sendToAgent, Caught in:

CSEAgent::sendToAgent.

Cause:

This error can mean that you have enabled require Windows Integrated Authentication on the whole web site.

For example, for Windows Server 2008 (IIS) it can be enabled in IIS Manager: [Site] "Features View""Authentication":

Resolution:

You can try to apply the following options:

- Enabled anonymous access just for the SELog virtual application. It only does the Event Logging from the Agent and is not required to be secured.

Enable it in IIS Manager: [Site] "SELog""Features View""Authentication":

- If you use Windows Integrated Authentication on SELog - you can try to run the Intercept Service on the Agent side under the account that has required privileges to connect SELog with Windows Authentication. This type of account also should have administrative privileges on the Agent's host and has "logon as a service" right to properly work as the service account.

- Add the username and password to each Agent's configuration, so it will be able to authenticate to the SELog while sending the data. You need to update the following file with the appropriate credentials for that:

"C:\Program Files\Avicode\Intercept\Agent\v5.x.x\Configuration\SEAgent.config"

For example:

<alias>

<name>SEViewer</name>

<connectionType>WebService</connectionType>

<initializeString>http://isavchenko/selog - copy/semlogws.asmx</initializeString>

<userName>SomeUser</userName>

<password>SomePassword</password>

<proxy/>

</alias>

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.16. [ISV5] Troubleshoot "Not enough storage is available to complete this operation (8007000E)"/ "Not enough server storage is available to process this command" errors

Symptoms:

Intercept Agent may report subject errors to the Event Log. This is a really rare scenario and it can be related to the working on Citrix servers.

Also there is the similar error for Windows Server 2008 with UAC on - it was related to the insufficient rights of the application user to create Global Object.

Cause:

See "Resolution" for the possible reasons.

Resolution:

There are few suggestions:

- Check the value of the PagedPoolSize registry key at your Citrix server:

a. If you receive the subject or similar message, you may have a non-zero

PagedPoolSize entry in the registry. Edit:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

Set PagedPoolSize to 0.

b. Reboot.

Here is a reference to the document with this information:

http://tech.xptechsupport.com/optimizing%20metaframe%20servers.doc

- The same problem may happen if Intercept Agent does not have sufficient permissions to "Create Global Objects":

http://support.citrix.com/forums/thread.jspa?messageID=103882&fromSearchPage=true&#103882

htttp://support.microsoft.com/default.aspx?kbid=821546#5

Here is the workaround:

a. Go to your Citrix server.

b. Open "Local security policy""User Rights Assignments" and grant "Create Global Objects" permission to "Everyone" group.

c. Try to start your application again and see if the error is gone.

Applies to:

AVIcode Intercept Agent 5.0 - 5.6. In 5.6SP1 object creation was moved to "Intercept Service" (which is under the local system account by default); object enlarging was also moved to "Intercept Service". Complete fix will be in 5.7.

1.17. [ISV5] [Tips] [HowTo] Recommendations for usage of PDB files with Intercept Studio on ASP.NET production

Question:

You need detailed recommendations how to use the PDB files for Intercept in production. This will allow you to get option of implementing PDB files for Intercept Studio without much performance degradation.

Answer:

Description of the <compilation debug="true"> flag in the application "web.config" file for:

- The compilation at runtime would use the debug setting in the compilation section of "web.config" to determine if it should compile optimized code, or debug code (with symbols). ASP.NET would place the results underneath the Temporary ASP.NET Files directory.

- ASP.NET code explicitly disables batch compilation when debug = "true". That means that every page that gets hit creates its own dynamic assembly with debugging information.

- MSDN: debug -Optional Boolean attribute.

Specifies whether to compile debug binaries rather than retail binaries.

The default is "false".

- More detailed features of the debug="true" mode you can find at: http://odetocode.com/blogs/scott/archive/2005/11/15/2464.aspx or search for it on msdn.microsoft.com.

So if you want to use batch compilation to increase performance of the application you should use debug="false".

Generating PDB files without debug="true" flag (but it is not a scenario for FW1.1 with in-line code on the pages without codebehind).

If you want to use the PDB files for Intercept product on production you can build or publish release version of ASPNET application with PDB files.

PDB files will be generated for batch-compiled applications directories and for runtime compiled pages without codebehind.

- FW 2.0: You should use the following in "web.config" of your application:

<system.codedom>

<compilers>

<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

compilerOptions="/debug:pdbonly"/>

</compilers>

</system.codedom>

- FW 1.1: You have to set the "Generate Debugging Information" option to "true" in "Build/Outputs" menu of "Configuration Properties" of your ASP.NET application for Release Configuration in accordance with getting PDB files in release output.

See http://msdn.microsoft.com/en-us/library/s10awwz0(VS.80).aspx and http://msdn.microsoft.com/en-us/library/5tc5kc3e(VS.80).aspx for references.

PDB in Production environment

So the compiler has to only build PDB files as part of debug compilation - all other settings will be as release. In this situation compilation should not strongly decrease performance on production and will have PDB files in output for batch-/single- compiled pages.

See http://blogs.msdn.com/dougste/archive/2006/04/05/568671.aspx and http://aspalliance.com/1341_The_Infamous_DebugTrue_Attribute_in_ASPNET.1# for information about debugging in production environment.

PDB files are not required by Intercept Studio, but it is good option to have it for your application for better code analysis.

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.18. [ISV5] [Tips] Difference between number of events on the "Application Resource Utilization" page with number of events in the link "Events from ..." page.

Symptoms:

You may notice the differences between numbers of events on the "Application Resource Utilization" page and in the link "Events from ..." page.

See example below:

Cause:

Counts on "Application Resource Utilization" page are gathered from the state counters instead of event count on the events pages. So, part of the events can be cut by the Event Throttling - that is why it will have the count less than the one from the state counters.

Resolution:

By design.

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.19. [ISV5] [Tips] Some methods and calls were collected in one event and were not collected in another. Configuration of innerEntrypoints

Symptoms:

Some methods and calls are collected in one event, but are not in another.

Cause:

There is different logic for different types of Entrypoints. Some Entrypoints are innerEntrypoints, for example enclosedEntryPoints for applications (enclosedEntryPoints="resources" for "w3wp.exe").

Resolution:

Possible reason of this type of behavior is - threshold for innerEntrypoint was not exceeded. In this case parameters for these types of methods will not be shown (for resource for "w3wp.exe"). Threshold for innerEntrypoint is set to 90 percent of threshold for Entrypoint ("Alerting Threshold") when the config files were not changed.

For changing this you should set your own value of the "innerMajor" property (less than 100 percent) and "innerMajorTypes" of "ss:application" node of your application in the "PMonitor.config" file:

<ss:applications>

<ss:application enclosedEntryPoints="resources" displayName="Web Applications" name="w3wp.exe" include="false" enable="true" minor="0" major="0" innerMajor="90" innerMajorType="percent">

</ss:application>

"innerMajorType" can also have value "ms" (milliseconds).

So, you will see information about some calls if they exceed the established percent from a threshold or beat the established value in milliseconds.

Example:

Method name in "System.Web.UI.Page.ProcessRequest " is only shown if the call to "LogicalMethodInfo.Invoke" or "Page.ProcessRequest" is in the stack.

In this situation:

- "System.Web.UI.Page.ProcessRequest " is Entrypoint.

- "LogicalMethodInfo" is service call (innerEntrypoint).

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.20. [ISV5] [Tips] [HowTo] Have records from the appropriate Event Logs got in the "Related events" tab of your performance/exception event collected and filtered by EventLogMonitor

Question:

Every event in SE-Viewer has "Related events" tab. You want to have some records from the appropriate Event Logs got related to your performance/exception event. Also these events should be filtered using a custom filter.

Answer:

EventLogMonitor collects events from the Event Log if a filter is created.

To create it you should follow these steps:

- Open the MMC console

- Open the "Properties" of concrete application

- Open the tab "Event Log"

- Click "Custom Filters"

- Add a custom filter, for instance:

You can specify what from what log and source you want to get related to your events. For example, in the sample above events from "Intercept PMonitor" will be recognized as related to events of the appropriate application and you may see the following:

On "Advanced settings" tab you can include or exclude events by event Id, include events with concrete type (Information/Error/Warning) and filter by description.

In description regular expressions can be used. Check http://msdn.microsoft.com/en-us/library/k3zs4axe(VS.71).aspx for the correct syntax.

For example, if you want to exclude events that contain "mscorlib", you should write the following in the description: ^!(.*mscorlib.*)

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.21. [ISV5] [Manual] "Computer Resource Utilization" tab: "Key Metrics Diagram" description

Question:

Current knowledge base article contains possible legend description for the Computer Resource Utilization tab.

Answer:

Possible explanation for the "Computer Resource Utilization" tab: "Key Metrics Diagram":

CPU

- Total CPU usage, %

---min/max CPU usage value per current day as colored background strip

---average CPU usage for the current hour as current value (hairline)

---max chart value - 100

- Monitored applications CPU usage, %

---as described above but only for monitored applications

---max chart value - 100

Memory

- Free memory, MB

---Average free memory for the current hour as current value (hairline)

---max chart value scaled automatically by 2 degree, i.e. 512, 1024, 2048 and so on

- Total memory, MB (TM)

---min/max TM value per current day as colored background strip

---average TM for the current hour as current value (hairline)

---max chart value scaled as described above

- Monitored applications memory, MB (MAM)

---as described above but only for the monitored applications memory

I/O

- Total I/O activity, Kb/sec (TIOA)

---min/max TIOA value per current day as colored background strip

---average TIOA for the current hour as current value (hairline)

---max chart value scaled automatically by the following algorithm:

----- if (max chart value <= 10) max chart value = 10

----- if (max chart value <= 100) max chart value = 100

----- if (max chart value > 100) :

1. coeff = pow( 10, floor(log10(max TIOA value per current day)) - 1)

2. max chart value = ceiling (max TIOA value per current day / coeff) * coeff

For example: max TIOA value per current day - 2652, coeff - 100, max chart value - 2700

- Monitored applications I/O activity (MAIOA)

---as described above but only for the monitored applications I/O

---max chart value scaled as described above

Max chart value for IO is the larger one from Total and Monitored applications charts.

Application Load

- Application requests

---min/max requests per hour in current day as colored background strip

---current requests per hour in current day as value (hairline)

---max chart value scaled as in I/O chart

- Events

---as described above, but only for application events

---max chart value scaled as in I/O chart

Max chart value for Application requests/Events is the larger one from Application Requests and Events charts.

Charts

- All charts should have 3 marks:

---0

---middle chart value

---max chart value

Table

- Display data for the current hour ("Average")

- Column "Today's peak" contains max value for the current day

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.22. [ISV5] Inconsistent durations in the .NET performance events: "BIOS settings on the monitored server prevent the accurate time measurement" message on top of the event

Symptoms:

"BIOS settings on the monitored server prevent the accurate time measurement. The event timing may be invalid. Please, go to the AVIcode support knowledge base (support.avicode.com) for more information." message is displayed on top of the event. Also execution time of resource functions can be less than the collected time for the Entrypoint in this stack.

Cause:

To measure durations of the function calls, Intercept Agent relies on Windows API. However, in some environments the results of these measurements may become inconsistent. In particular, reported Entrypoint duration may turn out to be smaller than the duration of underlying resource calls.

Resolution:

Configure /USEPMTIMER to force the machine to select the ACPI clock for the performance counter timer instead of using the time stamp counter (TSC):

1. Log on to the computer by using an account that has Administrative credentials.

2. Click "Start", click "Run", type notepad "c:\boot.ini", and then click "OK".

3. In the "Boot.ini" file, a line that starts with "default" is located in the "[boot loader]" section. This line specifies the location of the default operating system. The line may appear as follows:

default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS

In the "[operating systems]" section, locate the line for the operating system that corresponds to the "default" line. For example, if the computer is running Microsoft Windows Server 2003, Enterprise x64 Edition, the line should resemble the following:

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn

4. At the end of the line, add a space, and then type /usepmtimer. The line should now resemble the following.

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn /usepmtimer

5. Save the file, and then exit "Notepad".

6. Restart the computer.

The the following is a sample "Boot.ini" file for a system that contains the /usepmtimer switch:

[boot loader]

timeout=0

default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn /usepmtimer

  The "Boot.ini" file is located in the root folder of the system drive.

Applies to:

AVIcode Intercept Agent 5.6 - 5.7

Windows Server 2003

1.23. [ISV5] Intercept Agent cannot be uninstalled using Windows "Add/Remove" functionality

Symptoms:

You have encountered issues uninstalling the Agent. Some of the .dlls are locked, uninstall process cannot be continued.

Cause:

In some cases the Agent cannot be uninstalled due to some resources being locked.

Resolution:

There is recommended way to uninstall Intercept Agent:

- Go to "Start""Programs""AVIcode Intercept Studio" and open the "Intercept MMC console"

- Disable monitoring for web applications - to do that, right-click "Web Applications" node, go to "Properties", and disable the corresponding checkbox in the dialog window:

- Then make sure you do not have any applications under "Executable Applications", "Windows Services", and "COM+ Applications". If you see applications under these nodes, just remove them one after another (select each particular application and push "delete" button)

- Close Intercept MMC console

- At this point monitoring should be disabled, but if you did not restart the applications, some .dlls can be still locked

- So either Reboot the server, or restart all of these executables, services, COM+, and also Restart IIS

- Now you can use the "Add/Remove" functionality to remove Agent

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.24. [ISV5] "Exception Events/sec" counter value increments even if events are not sent

Symptoms:

You have noticed that "Exception Events/sec" performance counter value increments even if events are not sent.

Cause:

There is the difference in behavior for collection and representation in SE-Viewer of performance and exception event counters:

- "Performance Events/sec" - increments in case of an event that is interesting even if throttling was not passed.

- "Exception Events/sec" - increments in case of an event that is interesting even if throttling on domain and event group levels was not passed, but does not increment if global throttling was not passed.

Resolution:

By design.

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

1.25. [ISV5] The CSM Collector will be monitored if it is run under a non-Intercept application pool although "Disable event collection" is turned on in MMC by default

Symptoms:

You have noticed that the CSM Collector is monitored if it is run under a non-Intercept application pool although "Disable event collection" is turned on in MMC by default.

You may find this issue, for example, in the following situation:

- In uX Configuration Utility Collector address is set using relative path: "/CsmCollector/CsmCollectorService.asmx"

- You have a "Default Web Site" with several applications and the CSM Collector (running under the "Intercept" application pool).

- You have "Test Web Site" with several applications and the CSM Collector (the physical path is the same as for a "Default Web Site", but is running under the "TestWebSiteClassic" application pool).

- Intercept MMC by default contains the CSM Collector application with on "Disable event collection".

"CSM Collector" is used as Display Name and as Application Path (the same way is used with SELog and SEViewer).

And "PMonitor.config" contains:

<ss:appdomain name="CSMCollector" displayName="CSMCollector" include="false" enable="true">

 

for the case described above when an application from "TestWebSite" is monitored - the CSM Collector (running under the "TestWebSiteClassic" application pool) is also monitored.

Expected result: the CSM Collector should not be monitored, because it is turned off by default.

If Application Path for the CSM Collector is changed to "TestWebSite/CSM Collector" in the CSM Collector properties, the CSM Collector will not be monitored.

By default all applications running under the "Intercept" application pool are turned off from monitoring in "Starter.config", that is why "Default Web Site/CSM Collector" is not monitored:

<ss:applicationpool name="Intercept" include="false"/>

 

But the application pool for "Default Web Site/CSM Collector" or SELog or SEViewer is changed - these applications will be monitored, dispite of "Disable event collection" is turned on.

Cause:

If the CSM Collector does not run under the "Intercept" application pool - it is monitored with the option "Monitor web applications by default".

Resolution:

By design.

Applies to:

AVIcode Intercept Agent 5.6 - 5.7

1.26. [ISV5] "\.NET Apps\Avg. Request Time" is always 0 for applications in the "Trend reports" tab

Symptoms:

You have noticed that "Net Apps"\"Avg. Requested time" is always 0 for applications in the "Trend reports" tab.

Cause:

"\.NET Apps\Avg. Request Time" counter value will not increase (and is 0), if the Entrypoint execution interval for the sample application is too small.

Resolution:

By design.

Applies to:

AVIcode Intercept Agent 5.6 - 5.7

1.27. [ISV5] There is no default Entrypoint for the case when a page uses post-cache substitution

Symptoms:

You can see no default Entrypoint for the case when a page uses post-cache substitution for ASP.NET applications under IIS in Integrated mode.

For the page without post-cache substitution you can get the following event stack:

But for the page with post-cache substitution it looks like this:

Cause:

PMonitor does not collect event from post-cache substitution control, when the ".aspx" page is retrieved from the cache. This only occurs for IIS in Integrated mode.

Resolution:

By design.

To resolve it new Entrypoint "System.Web.HttpResponse.UseSnapshot" can be added to "PMonitor2_0.default.config" with the following instrumentation:

<ss:function name="System.Web.HttpResponse.UseSnapshot" paramCount="3" module="System.Web.dll" methodInfo="">

<ss:instrumentation name="Agent.Instrumentation.InstrumentationClass.ProcessRequestConditionsProducer3" assembly="Agent.Instrumentation" value="prefix"/>

<ss:instrumentation name="Agent.Instrumentation.InstrumentationClass.ProcessRequestFragmentProducer3" assembly="Agent.Instrumentation" value="postfix"/>

</ss:function>

Producers "ProcessRequestConditionsProducer3" and "ProcessRequestFragmentProducer3" are also used for "System.Web.UI.Page.ProcessRequest".

Applies to:

AVIcode Intercept Agent 5.6 - 5.7

IIS in Integrated mode

1.28. [ISV5] Remoting method resources were not collected for performance events for applications under FW4.0

Symptoms:

Remoting method resources were not collected for performance events for applications under FW4.0, but were for applications under FW2.0.

See the difference in call stacks for FW4.0 (left) and FW2.0 (right) for similar test cases:

Cause:

"Mscorlib.dll" instrumentation is not supported for FW 4.0.

Resolution:

By design.

Applies to:

AVIcode Intercept Agent 5.6 - 5.7

1.29. [ISV5] If function was added on "exceptionTracking" monitoring by modifying config files, the user cannot edit it in MMC console

Symptoms:

You are not able to edit some functions added to "exceptionTracking" monitoring.

You may find this issue by doing the following steps:

- Add function on "exceptionTracking" monitoring by editing "PMonitor.config"

For example:

<ss:exceptionTracking>

<ss:method name="ExceptionTrackingFunction" include="true"/>

</ss:exceptionTracking>

- Open the MMC console and try to edit added "exceptionTracking" function in:

Result: editing is disabled. You can only enable/disable this function.

Cause:

When the user first adds a function for monitoring using config and afterwards wants to change it using MMC, this function will not be available for editing (it can only be enabled/disabled).

Resolution:

By design.

Applies to:

AVIcode Intercept Agent 5.6 - 5.7

1.30. [ISV5] During the Agent upgrade Entrypoint "paramCount" for "System.Web.UI.Page.ProcessRequest" disappears and it leads to collecting three functions instead of one

Symptoms:

Three overridden "System.Web.UI.Page.ProcessRequest" functions are collected in the performance event stack instead of one with the appropriate number of parameters.

Sample configuration before Agent upgrade (in "PMonitor.config"):

<ss:entrypoint name="System.Web.UI.Page.ProcessRequest" paramCount="2">

<ss:conditions>

<ss:condition name="path::Duwamish7_default.aspx" major="45">

<ss:expression argument="path" pattern="/Duwamish7/default.aspx"/>

</ss:condition>

<ss:condition name="path::Duwamish7_error.aspx" major="50">

<ss:expression argument="path" pattern="/Duwamish7/errorpage.aspx"/>

</ss:condition>

</ss:conditions>

</ss:entrypoint>

Sample configuration after Agent upgrade (in "PMonitor.config"):

<ss:entrypoint name="System.Web.UI.Page.ProcessRequest">

<ss:conditions>

<ss:condition name="path::Duwamish7_default.aspx" major="45">

<ss:expression argument="path" pattern="/Duwamish7/default.aspx"/>

</ss:condition>

<ss:condition name="path::Duwamish7_error.aspx" major="50">

<ss:expression argument="path" pattern="/Duwamish7/errorpage.aspx"/>

</ss:condition>

</ss:conditions>

</ss:entrypoint>

You can see that "paramCount" parameter has disappeared after upgrade and this leads to collection 3 overridden "System.Web.UI.Page.ProcessRequest" functions instead of one with two parameters.

Cause:

If the user added a specific Entrypoint for monitoring for an Agent of previous version and afterwards upgrades Agent with latest version - "paramCount" value in new config will not be merged.

Resolution:

By design.

Applies to:

AVIcode Intercept Agent 5.6 - 5.7

1.31. [ISV5] Error while installing the Agent on Windows 2000

Symptoms:

You get the following error while installing Intercept Agent on Windows 2000:

Event Type: Error

Event Source: MsiInstaller

Event Category: None

Event ID: 11722

Date: 8/12/2010

Time: 3:43:10 PM

User: WINDOWS2000PRO\Administrator

Computer: WINDOWS2000PRO

Description:

Product: AVIcode Intercept Agent 5.7 -- Error 1722.There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. Action ChangeMsiForFW4, location: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\MSIA.tmp, command: {C93A3122-DC9C-4FD6-B65F-A3DD83C460DD} REMOVE_COLLECTOR_CONDITION

Data:

0000: 7b 31 43 39 41 32 39 45 {1C9A29E

0008: 44 2d 43 45 44 39 2d 34 D-CED9-4

0010: 37 37 31 2d 39 43 45 42 771-9CEB

0018: 2d 36 42 41 33 32 41 36 -6BA32A6

0020: 43 37 36 30 34 7d C7604}

Cause:

Windows 2000 support was excluded from the Agent 5.7 scope.

Resolution:

By design.

Applies to:

AVIcode Intercept Agent 5.7

 

1.38. [ISV5] Ignore message "Some system Performance Counters will not be monitored"

Symptoms:

Information event "Some system Performance Counters will not be monitored for application" is posted to the Event Log.

Cause:

This information event appears when starting the Intercept Service. As the result the first events after restarting the Intercept Service will not have some troubleshooting counters.

But after starting the Intercept Service they will appear in events.

Resolution:

By design.

Applies to:

AVIcode Intercept Agent 5.0 - 5.7

2. Intercept SE-Viewer

2.1. [ISV5] SE-Viewer installation fails on Windows 2008 R2 with UAC enabled when accessing the Event log

Symptoms:

During installation of SE-Viewer on Windows 2008 R2 with UAC enabled under the domain account, error "Failed to create custom Event Log Intercept" is raised and installation fails:

Cause:

When running installation (by double clicking on ".msi" file) under the domain account with UAC enabled there are not enough rights to create the Intercept Event Log.

Resolution:

Start "cmd.exe" as local administrator.

Launch installation from the command line.

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.2. [ISV5] "Could not find file "CreateDatabase.txt" error in Configuration Utility

Symptoms:

Configuration Utility shows error "Could not find file "C:\ SEViewer\Utilities\Templates\CreateDatabase.txt" if you try to upgrade existent database or create a new one.

Cause:

Advisor 5.5/5.6 deletes this file during uninstallation.

Resolution:

For SE-Viewer 5.5, copy the following commands into a file called CreateDatabase.txt and store it in this folder:  [drive]\Program Files\Avicode\Intercept\SEViewer\Utilities\Templates

use master

declare @DBPath as nvarchar(255)

set @DBPath = (SELECT REPLACE(filename, 'model.mdf', '') FROM SysDatabases WHERE name = 'model')

declare @cmd as nvarchar(1000)

set @cmd = 'CREATE DATABASE [{0}]

ON PRIMARY (

NAME = [{0}Data],

FILENAME = N''' + @DBPath + '{0}.mdf'',

SIZE = 10GB,

FILEGROWTH = 500MB )

LOG ON (

NAME = [{0}Log],

FILENAME = N''' + @DBPath + '{0}log.ldf'',

SIZE = 50MB,

FILEGROWTH = 10% )'

exec sp_executesql @cmd

GO

For SE-Viewer 5.6, copy the following commands into a file called CreateDatabase.txt and store it in this folder:  [drive]\Program Files\Avicode\Intercept\SEViewer\Utilities\Templates

CREATE DATABASE [{0}]

GO

ALTER DATABASE [{0}]

MODIFY FILE

(

NAME = [{0}],

SIZE=10GB,

FILEGROWTH=500MB

)

GO

ALTER DATABASE [{0}]

MODIFY FILE

(

NAME = [{0}_LOG],

SIZE=50MB,

FILEGROWTH=10%

)

GO

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.3. [ISV5] SE-Viewer does not load if there is "_" symbol in the machine name

Symptoms:

When you try to open SE-Viewer in Internet Explorer and link contains underscore in the hostname - Internet Explorer starts continuous blanking on the authentication page (it looks like cycle between Loading and postback). SE-Viewer becomes not accessible. When the SE-Viewer host address contains underscore ("_") SE-Viewer becomes not accessible using Internet Explorer.

Cause:

The problem is caused by the Microsoft security bulletin for Internet Explorer. It blocks any client cookies from the server with underscore. So SE-Viewer cannot set up authentication cookie and always redirects to the login page back.

Security bulletin: http://support.microsoft.com/kb/312461/EN-US/

As the result - any ASP.NET application with forms authentication will not work.

Resolution:

You can try one of the following approaches:

1. Use another DNS name if computer has one (without underscores)

2. Use IP address for the targeted computer

3. Update <hosts> and define another alias for the computer (should be updated on every client)

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.4. [ISV5] [HowTo] Remove, hide or change records that contain sensitive information in Intercept Studio event

Question:

You need to remove, hide or change sensitive information (for example, passwords, user ids) in Intercept Studio event using set template.

Answer:

The filtering of sensitive information is implemented on the SE-Viewer side. The sensitive information is filtered at the moment when SE-Viewer receives an event. The information can be filtered based on the field name or field value. The filtering is global and applies to a whole event. The filtering configuration is defined in custom handler configuration files.

The configuration for filtering logic is defined in the custom handler configuration files:

[Program Files]\AVIcode\Intercept\SEViewer\Handlers\XMonitorHandlerVX.X.config (for exception events in diagnostic mode)

[Program Files]\AVIcode\Intercept\SEViewer\Handlers\CLRXMonitorHandlerVX.X.config (for exception events in operations mode)

[Program Files]\AVIcode\Intercept\SEViewer\Handlers\PMonitorHandlerVX.X.config (for performance events in operations mode)

Changes to the configuration files are applied immediately. No SE-Viewer recycle is required.

To enable information filtering the <hiddenRules> section should be added under the <functions> section:

<?xml version="1.0" encoding="utf-8" ?>

<functions>

<hiddenRules>

<hiddenRule regex=".*my_pwd.*" replacement="Sensitive Data" type="all" />

<hiddenRule regex="username" type="field" />

<hiddenRule regex="password.*" replacement="Sensitive Data" type="value" />

</hiddenRules>

</functions>

There are 3 types of rules for filtering sensitive information:

- type="value"

This type of rules allows filtering based on the value of a variable. Ones defined, the filtering rule will apply to all parameters, member variables and local variable. The rule searches variables that have a pattern that match regular expression defined in regex attribute and replaces the matched portion of the value with a string defined in replacement attribute

- type="field"

This type of rules allows filtering based on the name of a variable. Ones defined, the filtering rule will apply to all parameters, member variables and local variable. The rule searches variables that have a variable name that matches regular expression defined in regex attribute and removes the value of the variable. The variable will be displayed as "optimized".

- type="all"

This type is combination of type "value" and type "field". The search is performed based on the variable names and values.

Example 1: Hide password value in a SQL connection string.

Connection string sample: "Provider=SQLOLEDB;network=dbmssocn;Server=localhost;database=SEViewer;uid=userId;pwd=password; "

We assume that all connection strings have the similar pattern and we can identify the password section by "pwd=" prefix and ";" postfix. We will replace the value between prefix and postfix.

The resulting connection string will have the following value: "Provider=SQLOLEDB;network=dbmssocn;Server=localhost;database=SEViewer;uid=userId;pwd=*****;"

There are multiple approaches for implementing the same logic.

Variant 1: Simple regular expression.

<hiddenRule regex="pwd=.*?;" replacement="pwd=******;" type="value" />

 

This is a simple regular expression that searches substrings string with "pwd=" and ending with ";" and replaces it with "pwd=*****;"

Variant 2: Regular expression with formal prefix and postfix.

<hiddenRule regex="(?&lt;=pwd=).*?(?=;)" replacement="*****" type="value" />

 

Regular expressions support formal definition for prefix and postfix. Definition for prefix starts from "?<=" and definition for postfix starts from "?=". Since the configuration is stored in XML files the character "<" needs to be encoded and prefix definition converts from "?<=" to "?&lt;= ".

Variant 3: Support multiple types of connection strings

<hiddenRule regex="(?&lt;=pwd=).*?(?=;)|(?&lt;=Password=).*?(?=;)" replacement="*****" type="value" />

 

Some connection strings use the tag "pwd" for identifying the password, some connection strings use the tag "Password" for identifying the password. We can combine both variants in single regular expressions. The similar affect can be reached to defining two separate <hiddenRule> tags but combining the both condition in the same tag gives better performance.

Example 2: Hide the user name and password values in a SQL connection string.

Connection string sample: "Provider=SQLOLEDB;network=dbmssocn;Server=localhost;database=SEViewer;uid=userId;pwd=password; "

We assume that all connection strings have the similar pattern and we can identify the password section by "pwd=" prefix and ";" postfix and identify the user name section by "uid=" prefix and ";" postfix. We will replace the value between prefix and postfix.

The resulting connection string will have the following value: Provider=SQLOLEDB;network=dbmssocn;Server=localhost;database=SEViewer;uid=*****;pwd=*****;

There are multiple approaches for implementing the same logic.

Variant 1: Regular expression with formal prefix and postfix.

<hiddenRule regex="(?&lt;=pwd=).*?(?=;)|(?&lt;=uid=).*?(?=;)" replacement="*****" type="value" />

Regular expressions support formal definition for prefix and postfix. Definition for prefix starts from "?<=" and definition for postfix starts from "?=". Since the configuration is stored in XML files the character "<" needs to be encoded and prefix definition converts from "?<=" to "?&lt;=".

Variant 2: Support multiple types of connection strings

<hiddenRule regex="(?&lt;=pwd=).*?(?=;)|(?&lt;=Password=).*?(?=;)|(?&lt;=uid=).*?(?=;)|(?&lt;=User ID=).*?(?=;)" replacement="*****" type="value" />

Some connection strings use the tag "pwd" for identifying the password, some connection strings use the tag "Password" for identifying the password. We can combine both variants in single regular expressions. The similar affect can be reached to defining two separate <hiddenRule> tags but combining the both condition in the same tag gives better performance.

Example 3: Hide complete value of connection string.

Connection string sample: "Provider=SQLOLEDB;network=dbmssocn;Server=localhost;database=SEViewer;uid=userId;pwd=password;"

We assume that all connection strings have the similar pattern and we can identify the connection string by "pwd=" section or "Password=" section

The resulting connection string will have the following value: ***Sensitive Data***;

<hiddenRule regex=".*pwd=.*?;.*|.*Password=.*?;.*" replacement="***Sensitive Data***" type="value" />

Regular expressions support a formal definition for prefix and postfix. Definition for prefix starts from "?<=" and definition for postfix starts from "?=". Since the configuration is stored in XML files the character "<" needs to be encoded and prefix definition converts from "?<=" to "?&lt;= ".

Example 4: Hide complete value of connection string based on the variable name

Connection string sample: "Provider=SQLOLEDB;network=dbmssocn;Server=localhost;database=SEViewer;uid=userId;pwd=password; "

We assume that all connection strings have the similar pattern and we can identify the connection string by "pwd=" section or "Password=" section

The resulting connection string will have the following value: Optimized

<hiddenRule regex="connectionString" type="field" />

Example 5: Hide all variables that have word "Password" as part of the name.

<hiddenRule regex=".*Password.*" type="field" />

Example 6: Hide credit card number

<hiddenRule regex="\[d{4}-]{3}\d{4}|\[d{4} ]{3}\d{4}|\d{16}" replacement="*****" type="all" />

It will cover 16 digit numbers (including those that have 4 "-" or " " separated groups). Depending on how credit card numbers are formatted in your application, the rule may turn out to be as simple as "\d{16}|\d{15}|\d{14}|d{13}" meaning that any number that contains 13 to 16 digits will be handled by this type of rule.

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.5. [ISV5] [HowTo] Upload multiple PDB files to SE-Viewer

Question:

You need to upload multiple PDB files to SE-Viewer.

Answer:

You can use the "PDBImport.exe" utility to upload PDB files to SE-Viewer. The utility can be found on the SE-Viewer Server at the following path:

"C:\Program Files (x86)\AVIcode\Intercept\SEViewer\Utilities\".

Before using the utility, make sure to check PDB storage settings: "SEViewer/Tools/Options/Data". By default storage size is limited by 1000 MB.

You can use the following command line parameters to run the utility:

Usage:

Pdbimport /s search_from_directory /d <SEViewer INSTALLDIR>

[/u DOMAIN\username /p password] [/f] [/e] [/x] [/r] [/?]

Parameters:

/s: The recursive search of .NET binaries and their .pdb files

will be started from this directory.

Files are found will be uploaded into the SEViewer Pdb Storage.

Network shares are supported.

/d: SE-Viewer installation directory. The PDB Storage under this directory.

The PDBStorage is the destination of uploaded files.

Network shares are supported.

/u: Optional. Username with permissions to read from '/s' folder and

to write to '/d' folder.

/p: Optional. User's password. Blank password not allowed.

/f: Optional. If this flag is set then the existing files in Pdb Storage

will be overwritten by found files in case of names coincidence.

/e: Optional. Break execution when the first error occurred.

/x: Optional. Exceed PDB Storage maximum size if it is necessary.

/r: Optional. For recovering PDB Storage config file.

Parameter '/d' must be specified.

Any other parameters should not be specified.

/?: Optional. Show help.

Example:

PdbImport /s d:\Project\BuildOutput /d \\SEViewer

PdbImport /s "d:\Program Files\BuildOutput" /d \\SEViewer /u TEST\user /p ***

PdbImport /s .\BuildOutput /d \\SEViewer /f /x

PdbImport /r /d \\SEViewer

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.6. [ISV5] [Manual] Configuring SE-Viewer database using Configuration Utility

Question:

There are instructions from manual "Avicode Intercept Studio / Installing Intercept Studio / Configuration Utility" (except "Comment" blocks and screenshots) for configuring SE-Viewer database on SQL Server. You can get this manual trough Help/Manual menu of Intercept SE-Viewer - you will be asked for downloading and running - follow the instructions and install manual.

Answer:

1. Click the "Test" button.

Comment: If the connection to SQL Server fails you receive the following message "Failed to connect SQL server. Please verify the server name."Follow instructions in message or try to configure remote connections in SQL Server Surface Area configuration.

2. For a new database, an error message will appear that says the database and the user account are not configured properly ("Configuration test failed. Database and the user account do not exist or are not configured properly. Do you want to configure the database and the user account?"). Click the "Yes" button to configure the database. [If the test succeeds, then the database has already been configured and you do not need to continue with these instructions].

3. When the popup window appears, click the "Connect" button to ensure that the administrative account for the database is correct. Make corrections as necessary until the connection works.

4. Click the "Execute" button to initialize the tables in the database. The status of the initialization process will appear at the bottom of the window. You can also click on the "Script" link on the "Create Database" line to view the initialization script that will be used. [Modifications can be made to the script and the script saved via the "Save As" button].

Comment: Move your attention to database size (10 GB by default) and change it in accordance with your free HDD space.

5. Click the "Close" button when the initialization completes.

In case of Upgrade:

0'. Use Microsoft SQL Server Enterprise Manager to navigate to the server that contains the Intercept Studio SE-Viewer database. (The path to the server and database name are in the database connection string from the "SEViewer.config" file)

0''. Use Enterprise Manager to back-up the SE-Viewer database.

1. Open the SE-Viewer Configuration Utility

2. Go to the "SEViewer database" tab

3. The popup window will be filled in with your current database information

4. Click the "Test" button

5. An error message will appear that prompts you to upgrade the database. Click the "Yes" button to configure the database. [If the test succeeds, then your database has already been configured and you do not need to continue with these instructions].

6. When the popup window appears, click the "Connect" button to ensure that the administrative account for the database is correct. Make corrections as necessary until the connection works.

7. Click the "Execute" button to upgrade the tables in the database. The status of the initialization process will appear at the bottom of the window.

8. Click the "Close" button when the upgrade completes.

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.7. [ISV5] [HowTo] Have events from Event log related to Performance/Exception events

Question:

Every event has the tab "Related events" that contains events that are related to the selected one in specified time period.

Events are related if they have same source. You need to configure some events from log related to the appropriate Performance/Exceptions event.

Answer:

Events from Event Log can be related to monitoring events if they are collected by filter that is created for the application (for which monitoring event comes).

Example:

If we have application "JaggleRealEstate" that writes events in custom Event Log "JaggleRealEstate" from source "JaggleRealEstate" we need to:

- Open the MMC

- Create "JaggleRealEstate application"

- Start monitoring for "JaggleRealEstate"

- Create Event Log filter

5. Restart the application

If the application has service that writes events in the Application Log with source "InfoRetrievalFacade" and we want get this events and make them related to monitoring events we also need to create filter via the MMC console:

If we want IIS events to be related to monitoring events we need to change "EventLogMonitor.config" manually (you cannot do this via the MMC):

- Open Agent\v[N.N.NNN]\Configuration\Standard\"EventLogMonitor".config

- Copy filters from the application Internet Information Service in your application

<ss:application name="JaggleRealEstate" edit="true" enable="true">

<ss:eventFilters> <ss:eventFilter filterName="W3SVC: Error" aspect="systemfailure" enable="true" applicationLog="System" source="W3SVC" eventType="1" eventID="" description=""/>

<ss:eventFilter filterName="W3SVC: Error" aspect="uncategorized" enable="true" applicationLog="System" source="W3SVC" eventType="2" eventID="" description=""/>

</ss:eventFilters>

</ss:application>

- Save file, open MMC and check that filters are displayed for the desired application

- Restart the application

Related events tab has time period filter that by default is 1 minute.

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.8. [ISV5] Notification rules cannot be created, if SE-Viewer console address is set to "localhost"

Symptoms:

You do not receive SE-Viewer events notification.

Cause:

User should define the full domain name for the SE-Viewer console address to make notification work. "Localhost" will not work in this case.

Resolution:

By design.

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.9. [ISV5] SE-Viewer does not ask about the user credentials while working in several tabs of Internet Explorer 8.0

Symptoms:

You use IE8.0 browser with several tabs opened and notice that SE-Viewer does not ask you to specify credentials.

Cause:

In IE8.0 in Restricted mode SE-Viewer can be opened in several windows when entering credentials in one of them. The reason is that IE8.0 shares cookies between windows.

Resolution:

By design.

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.10. [ISV5] Incorrect login error for some SQL 2005 servers, although "Test configuration succeeded" is displayed in Configuration Utility

Symptoms:

You use the following environment:

OS: Win2008 SP1 (64-bit)

SQL Server 2005: 9.00.4035 SP3 Ent. Edition (64-bit)

"Configuration Utility" shows "Test configuration succeeded", but at the same time you get the following error when opening the SE-Viewer start page:

Description:

Message: Cannot open database "SEV5568" requested by the login. The login failed.

Source: Microsoft OLE DB Provider for SQL Server

Target Site: Void .ctor(System.Data.OleDb.OleDbConnectionString, System.Data.OleDb.OleDbConnection)

Stack Trace: at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)

at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)

at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)

at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)

at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)

at System.Data.OleDb.OleDbConnection.Open()

at Avicode.AX5.Data.OleDb.OleDb.ExecuteDataSet(OleDbCommand oleDbCommand)

Cause:

You receive this error when the Configuration Utility runs under other Windows credentials than the SE-Viewer application pool does. Change the SE-Viewer application pool user to one which has required permissions for the SQL server DB.

Resolution:

By design.

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.11. [ISV5] Wrong behavior while attempt to open event details in new browser tab for the remote SE-Viewer

Symptoms:

You have got the following configuration:

Computer1: SE-Viewer is installed and has many events.

Computer2: SE-Viewer is installed and has many events.

On Computer 2 you open IE7 browser with "Computer1/SEViewer".

Click right button over any event and select the "Open in new Tab" action.

Real result:

Details event window show another event from another source and it is event with the same ID, but from other SE-Viewer, from Computer2/SEViewer.

In the case when no such ID exists in both SE-Viewer DBs, you get exception.

Expected result: open "Computer1/SEViewer" details event.

Cause:

You will face with this issue, if you use "localhost" in SE-Viewer console address:

In order to avoid it you should use the full domain name instead of "localhost".

Resolution:

By design.

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.12. [ISV5] "Rule management wizard: Configure condition" screen: the full domain name is not displayed in the list of computers

Symptoms:

You see that the full domain name is not displayed in the list of computers on "Rule management wizard: Configure condition" screen.

Cause:

Full domain name is not represented in SE-Viewer views and selectors. It can only be resolved by hint .

Resolution:

By design.

Applies to:

AVIcode SE-Viewer 5.7

2.13. [ISV5] Incorrect SE-Viewer event description: symbol '&' is used for windows hotkeys

Symptoms:

You see incorrect SE-Viewer event description using symbol '&'.

Cause:

'&' is shown as special symbol for windows "hot keys" in SE-Viewer events representation.

Resolution:

By design.

Applies to:

AVIcode SE-Viewer 5.0 - 5.7

2.14. [ISV5] Advisor will not be opened by "Advisor" button click and "Please, specify Advisor Console Address to use this link. Advisor Console Address can be set in Options, data tab" warning is displayed

Symptoms:

Advisor is not opened by "Advisor" button click. You get the following warning: "Please, specify Advisor Console Address to use this link. Advisor Console Address can be set in Options, data tab".

Cause:

If path for Advisor uses "localhost", it will not be opened.

You should specify your server name instead of "localhost".

Resolution:

By design.

Applies to:

AVIcode SE-Viewer 5.7

3. Intercept uX

3.1. [uXV5] Troubleshooting "404 event" error from Intercept uX Collector

Symptoms:

Intercept Collector is hosted in IIS7. Statistic is not collected for the monitored applications.

Application log contains errors:

Log Name: Application

Source: ASP.NET 2.0.50727.0

Event ID: 1309

Task Category: Web Event

Level: Warning

Description:

Event code: 3005

Event message: An unhandled exception has occurred.

Application information:

Application domain: /LM/W3SVC/1/ROOT/CSMCollector-4-129194297360664171

Trust level: Full

Application Virtual Path: /CSMCollector

Application Path: C:\Program Files (x86)\AVIcode\Intercept\CSMCollector\v5.6.264\Web\

Machine name:

Process information:

Process ID: 3028

Process name: w3wp.exe

Account name: IIS APPPOOL\Intercept

Exception information:

Exception type: HttpException

Exception message: No http handler was found for request type 'GET'

Request information:

Request URL: http://localhost/CsmCollector/CsmCollectorService.asmx/ProcessCsmAjaxEvent/Default.aspx

Request path: /CsmCollector/CsmCollectorService.asmx/ProcessCsmAjaxEvent/Default.aspx

User host address: ::1

User:

Is authenticated: False

Authentication Type:

Thread account name: IIS APPPOOL\Intercept

Thread information:

Thread ID: 3

Thread account name: IIS APPPOOL\Intercept

Is impersonating: False

Stack trace: at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)

at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Openning http://[DOMAIN]/CsmCollector/CsmCollectorService.asmx/ProcessCsmAjaxEvent/Default.aspx leads to HTTP Error 404.0 - Not Found

Cause:

IIS7 is configured to restrict handler mappings for the Collector application. (This setting can be inherited from Web Site).

Resolution:

1. Open "IIS Manager" and navigate to the Collector application level.

2. in the "Features View", on application "Home" page, double-click "Handler Mappings".

3. On the "Handler Mappings" page, right-click handler mapping "PageHandlerFactory-ISAPI-2.0" (or "PageHandlerFactory-ISAPI-2.0-64" on x64 platforms) and then click "Edit".

4. In the "Request Restrictions" dialog box, on the "Mapping" tab, only uncheck "Invoke handler if request is mapped to".

5. Click "OK".

Applies to:

AVIcode Intercept uX 5.6 - 5.7

IIS7

3.2. [uXV5] Troubleshooting "The code subdirectory '/CSMCollector/App_Code/[Sub Directory]/' does not exist" error from the CSM Collector

Symptoms:

- Requests to the CSM Collector application fail, "Test connection" fails in uX Console.

- You see warnings from ASP.NET in the Application log about the configuration errors ("The code subdirectory '/CSMCollector/App_Code/[Directory Name]/ ' does not exist"):

 

...

Event message: A configuration error has occurred.

...

Application information:

Application domain: /LM/W3SVC/#/ROOT/CSMCollector-#-#########

Application Virtual Path: /CSMCollector

Application Path: C:\[Web Site location]

Machine name: [ServerName]

...

Process information:

Process ID: ####

...

Exception information:

Exception type: HttpException

Exception message: The code subdirectory '/CSMCollector/App_Code/[Sub Directory]/' does not exist. ([SitePath]\web.config line ##)

...

Request information:

Request URL: http://host.domain:port/csmcollector/csmcollectorservice.asmx

Request path: /csmcollector/csmcollectorservice.asmx

...

Stack trace: at System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()

at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()

at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters)

 

Cause:

The CSM Collector inherits "web.config" settings of the parent site and if this site has <codeSubDirectories> settings under the <compilation> area in "web.config" - ASP.NET will try to compile the code from these types of directories relatively to the path of child application (CSM Collector) and ASP.NET will not find this type of directory with this path because it only exists on the parent level. As result, compilation of the CSM Collector application will not be finished and Collector will fail to start.

<codeSubDirectories> settings cannot be cleared out in the child application "web.config" - it is known Microsoft limitation:

(http://connect.microsoft.com/VisualStudio/feedback/details/103012/incomplete-remove-and-clear-support-in-codesubdirectories-and-controls-sections)

Resolution:

- Create App_Code folder in the CSM Collector installation under "C:\Program Files (x86)\AVIcode\Intercept\CSMCollector\[Highest version]\Web".

- Add an empty folder to App_Code folder for each codeSubDirectory mentioned in the inherited (parent) "web.config" file with the name of the mentioned codeSubDirectory.

In the end you should have structure like this:

"C:\Program Files (x86)\AVIcode\Intercept\CSMCollector\[Highest version]\Web\App_Code\[Sub Directory 1]"

"C:\Program Files (x86)\AVIcode\Intercept\CSMCollector\[Highest version]\Web\App_Code\[Sub Directory 2]"

etc...

Applies to:

AVIcode Intercept uX 5.5 - 5.6SP1. This is fixed for 5.7.

3.3. [uXV5] [Technical HowTo] Configure Intercept uX IP addresses filtering

Question:

This document describes how to filter for a particular client IP addresses in Intercept uX. Filter groups allow configuring specific monitoring settings for specific types of pages and requests (based on the selected parameters). Each filter group is comprised of several filters. Monitoring settings (thresholds, mode, etc.) are applied if a request/response satisfies all filters in the group.

Answer:

Specifically, this document covers:

- Adding IP Filter Groups

- Setting Override Values for IP Filtering

- Important information about the uX Filter Execution Order

- Enabling Multiple Subnets

For more information, check either the Intercept uX User Manual or the Intercept uX Management Pack User Manual under The Configuration Files Intercept uX Management Console Client IP Properties.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.4. [uXV5] Collecting Tenant Information by configuring the path in HttpContext

Symptoms:

You need to get detailed steps how to collect tenant information in HttpContext for uX and server Agent events.

Cause:

By configuring the path to tenant variable in the HttpContext, Intercept uX will extract it while monitoring, and pass the internal business context to both the uX and server Agent events.

Resolution:

When updating the configuration file to include tenant information, be sure to set the value of "tenantPathCount" to the number of tenant paths being added as in this example:

<ss:dataProviderSettings>

...

<ss:add name="tenantPathCount" alias="tenantPathCount" value="2" include="true" />

<ss:add name="tenantPath1" alias="test" value="1/System.Web.HttpContext::Request/System.Web.HttpRequest::Headers/System.Collections.Specialized.NameValueCollection" include="true" />

<ss:add name="tenantPath2" alias="test" value="1[Tenant_Header]/System.String " include="true" />

...

</ss:dataProviderSettings>

Also note that the alias does not have to be unique, but the name of the tenant path does need to be unique:

<ss:dataProviderSettings>

...

<ss:add name="tenantPathCount" alias="tenantPathCount" value="2" include="true" />

<ss:add name="tenantPath1" alias="test" value="1/System.Web.HttpContext::Request/System.Web.HttpRequest::Headers/System.Collections.Specialized.NameValueCollection" include="true" />

<ss:add name="tenantPath2" alias="test" value="1[Tenant_Header]/System.String " include="true" />

...

</ss:dataProviderSettings>

Follow the appropriate sections below for examples of extracting tenant information from request headers, session variables or form variables.

Tenant Extraction from Request Headers:

In order to collect tenant information from the HTTP Request Header, edit the file as in the following example (assuming that Tenant is stored in the Request Header called "Tenant_Header"):

<ss:dataProviderSettings>

...

<ss:add name="tenantPathCount" alias="tenantPathCount" value="2" include="true" />

<ss:add name="tenantPath1" alias="test" value="1/System.Web.HttpContext::Request/System.Web.HttpRequest::Headers/System.Collections.Specialized.NameValueCollection" include="true" />

<ss:add name="tenantPath2" alias="test" value="1[Tenant_Header]/System.String " include="true" />

...

</ss:dataProviderSettings>

Tenant Extraction from Session Variables:

In order to collect tenant information from the HTTP SessionVariable, edit the file as in the following example (assuming that Tenant is stored as an element value (accepted by the key "current_network_id") of a Hashtable located in a session variable called "Enterprise.ApplicationState" as a value (accepted by key "MemberContext.MEMBER_CONTEXT"):

<ss:dataProviderSettings>

...

<ss:add name="tenantPathCount" alias="tenantPathCount" value="3" include="true" />

<ss:add name="tenantPath1" alias="test" value="1/System.Web.HttpContext::Session[Enterprise.ApplicationState]/System.Collections.Hashtable" include="true" />

<ss:add name="tenantPath2" alias="test" value="1[MemberContext.MEMBER_CONTEXT]/System.Collections.Hashtable" include="true" />

<ss:add name="tenantPath3" alias="test" value="1[current_network_id]/System.Object" include="true" />

...

</ss:dataProviderSettings>

Tenant Extraction from Request Form Variables:

In order to collect tenant information from the HTTP Request Form Variable, edit the file as in the following example (assuming that Tenant is stored in a Request Form Variable called "Tenant_Form"):

<ss:dataProviderSettings>

...

<ss:add name="tenantPathCount" alias="tenantPathCount" value="2" include="true" />

<ss:add name="tenantPath1" alias="test" value="1/System.Web.HttpContext::Request/System.Web.HttpRequest::Form/System.Collections.Specialized.NameValueCollection" include="true" />

<ss:add name="tenantPath2" alias="test" value="1[Tenant_Form]/System.String " include="true" />

...

</ss:dataProviderSettings>

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.5. [uXV5] [HowTo] Troubleshooting "Could not load file or assembly 'Assembly Name' or one of its dependencies. The system cannot find the file specified." error from uX Collector

Symptoms:

You installed uX Collector application under a custom site and:

- You cannot access it via the UI by browsing - error about the missing namespace or assembly is displayed

OR

- You see warnings like the following from ASP.NET in the Application log about the assemblies, namespaces or controls missed:

Event Type: Warning

Event Source: ASP.NET 2.0.50727.0

Exception type: HttpException

Exception message: Could not load file or assembly 'Assembly Name' or one of its dependencies. The system cannot find the file specified.

Request information:

Request URL: http://servername:port/csmcollector/csmcollectorservice.asmx

Request path: /csmcollector/csmcollectorservice.asmx

Cause:

uX Collector inherits the "web.config" settings of the parent site and if parent site has Assemblies which are not placed to GAC but used for custom providers, namespaces etc... uX Collector cannot find corresponding namespaces or assemblies in his \bin or a GAC and fails to start. Another reason is that parent settings affect ASMX Service functionality in the CSM Collector and it fails.

Resolution:

You need to place an updated "web.config" under the CSMCollector application - this "web.config" will clear all unnecessary inheritance settings, except for Controls.

Since Controls are not cleared - UI of ASMX Service will not work if specific controls are defined in the parent "web.config", but the main functionality like receiving events and providing scripts will work.

Updated "web.config" is attached to solution. You must remove the ".remove" extension and replace original one "web.config" under "C:\Program Files (x86)\AVIcode\Intercept\CSMCollector\v5.6.264\Web\". Also you should set correct uX's version in this file in:

<add assembly="Agent.Common, version=5.6.515.0, Culture=neutral, PublicKeyToken=6baa26eb67a5336c" />

<add assembly="Agent.CSMStatisticCounters, version=5.6.515.0, Culture=neutral, PublicKeyToken=6baa26eb67a5336c" />

In order to check this solution you should:

- Remove the ".remove" extension of the attached "test.aspx" file

- Place "test.aspx" under "C:\Program Files (x86)\AVIcode\Intercept\CSMCollector\v5.6.264\Web\"

- Try to access "http(s)://site:port/CSMCollector/test.aspx" via the browser

- If "Test succeeded" is displayed - configuration works correctly

Store this test message in the following file: \test.aspx.remove

Test succeeded

Please see Knowledge Base Articles and Solutions Appendix - web.config.remove for the contents of the \Web.config.remove file

Applies to:

AVIcode Intercept uX 5.5 - 5.6SP1. This issue was fixed in 5.7.

3.6. [uXV5] Content size calculation for uX Events. Difference between uX event information, third-party Http Analyzers and the IIS Log.

Symptoms:

You see different content size displayed by the uX event, Third-party Http Analyzers ("HttpWatch"/"ySlow"/"HttpAnalyzer ect") and the IIS Log.

You see different images size displayed by the uX event and Http Analyzers for Firefox.

Cause:

1. Some analyzers use 1000 bytes per "K" symbol; we use 1024 per "KB".

2. [5.7] In the default uX configuration content collecting is turned off.

3. [5.7] In the default uX configuration content size detection by means of additional request for the resource is turned off.

4. [5.7] In the default uX configuration there are limits on content collection (number of cycles along resources are limited)

5. [5.7] In the default uX configuration there are criteria of considering page to be complex. For complex pages content collecting is turned off.

6. We do not count CSS images due to its absence in Images collection.

7. We do not count images from the <link> tags (<link rel="shortcut icon" type="image/ico" href="favicon.ico" /> will not be recognized as image).

8. We do not collect size of x-domain images, scripts, css, htc (sometimes for IE-browsed pages we can collect size of x-domain image, x-domain css).

9. We do not count images that are not in DOM. User is able to load image without adding them to DOM.

10. All other components we show without uX additional noise (additional code in HTML + additional scripts).

11. The IIS Log shows IIS activity in the response/request bytes - not in the bytes loaded by the browser (the ones were loaded from the browser cache will be excluded from the IIS Log).

Resolution:

- Multiply uX size to 1.024 to see corresponding value in "K"

- Remember that we do not collect uX linked/injected scripts

- Remember that there is content we do not collect by default/at all (see CAUSE section)

- Remember: the IIS Logs only Server Activity - cache operations are not included into the log

- Check configuration - (Causes 3-4), tweak configuration if required. This can add possible performance overhead caused by additional actions uX produce if enabling data collecting.

Applies to:

AVIcode Intercept uX 5.7

3.7. [uXV5] Wrong file size for the CSS file is collected. Statistics for different browsers differs in SE-Viewer.

Symptoms:

Wrong file size for the CSS file is collected for the monitored application.

OR

Statistics for different browsers differs in SE-Viewer.

Cause:

- The ways browsers get CSS sizes are different. Internet Explorer has CSS content formatted (without redundant spaces and tabulations), so obtained size is smaller than size of the real file.

- CSS size collected by uX can be larger because uX estimates the result size on browser side, not on the file system. Browser adds its own data into CSS representation after loading, that is why it can be larger than the original CSS file

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.8. [uXV5] Content information about the linked items sizes is not collected when "calcLinkedContentUsingAjax="false" in Mozilla FireFox browser

Symptoms:

You do not get content information about the linked items sizes using Mozilla FireFox browser.

Cause:

"calcLinkedContentUsingAjax="true" flag is required to be set for Mozilla FireFox browser in order to support collecting flat files size information.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.9. [uXV5] CSM does not send events when the Injection component and client browser part host on different servers

Symptoms:

CSM does not send events when the Injection component and client browser part host on different servers.

Cause:

If Collector is hosted on another server - do not use "localhost" as reference on Collector's host.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.10. [uXV5] Collected size of the same image differs by the 10000 bytes between Internet Explorer and Mozilla FireFox

Symptoms:

Collected size of the same image differs by the 10000 bytes between IE7 and Mozilla FireFox3.0.

Cause:

Statistics for different browsers is not common in SE-Viewer. Different browsers work with images in its own way (same image has eye-difference in IE7 and Mozilla FireFox3.0). Mozilla FireFox zips data - that may be the reason.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.11. [uXV5] Size of content is "n/a" inside CSM performance event

Symptoms:

Some statistics are not collected and represented in SE-Viewer. For example, there is known issue with "n/a" size of content.

Cause:

Sizes of content items are not detected if these items are from another domain.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.12. [uXV5] Issue with expanding details using '+' controls in SE-Viewer performance event when Internet Explorer Enhanced Security is enabled

Symptoms:

You cannot expand details by using '+' controls in SE-Viewer performance event when Internet Explorer Enhanced Security is enabled.

Cause:

Enabled Internet Explorer Enhanced Security may affect some uX functionality.

Resolution:

By design.

Add "about:blank" to "Trusted site" in IE browser options.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.13. [uXV5] No CSM exception events come when Internet Explorer Enhanced Security is enabled

Symptoms:

No CSM exception events come when Internet Explorer Enhanced Security is enabled.

Cause:

When IE set to high security mode - no JavaScript code works on the page.

Resolution:

By design.

Possible solution to make uX working is to allow active scripting in browser.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.14. [uXV5] For image names the same name "WebResource.axd" is displayed: user can see different query strings only in tooltip

Symptoms:

For image names the same name "WebResource.axd" is displayed:  user can see different query strings only in tooltip

Cause:

This is possible situation while collecting several objects with same name for uX event.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.15. [uXV5] Server processing time on AJAX event for uX does not correlate with server event

Symptoms:

There is difference between server processing time on Ajax event for uX and the appropriate server event.

Cause:

Server and client Ajax time can differ.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.16. [uXV5] Application is added in the uX console and is not monitored if "Monitor All Web Applications by Default" is disabled

Symptoms:

Application is added in uX console and "Use Default Settings" is checked for it, but it is not monitored. "Monitor All Web Applications by Default" is disabled.

Cause:

If monitoring for all applications is enabled and "Monitor all Web applications by Default" is disabled, monitoring will be enabled for applications specifically added for monitoring (you should uncheck "Use Default Settings").

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.6.

3.17. [uXV5] CSM does not collect images and document variables for uX exception event

Symptoms:

You notice that uX collector does not collect some global variables: images and document.

Cause:

Images and document variables are not collected for uX exception events by implementation design.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.18. [uXV5] Unknown variables for exception event in the "Global Variables" section while using Mozilla FireFox

Symptoms:

You notice unknown variables collected for exception event in the "Global Variables" section for Mozilla FireFox browser.

Cause:

All variables for Mozilla FireFox event are collected by design. Many internal variables (that may be not interesting for the user) are not excluded and shown in uX event representation.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.19. [uXV5] Numbers of exception events differ for Internet Explorer and Mozilla FireFox

Symptoms:

Number of collected exception events for the same scenario for IE and FireFox can differ.

Cause:

Additional events for FireFox are collected because when it crashes it generates own exception events.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.20. [uXV5] Sampling filter functions incorrectly for some applications

Symptoms:

Possible scenario - the user expects that some data is being filtered, but it is still collected.

Cause:

Filters work in different ways for cached and non-cached pages.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.21. [uXV5] IP address filter functions incorrectly

Symptoms:

IP address filter functions incorrectly for some applications.

You may face with it having followed these steps:

1. Collector address set using computer name "testsystem" (for example).

2. Add filter group "IP Address", IP ="172.17.4.121/255.255.254.0" (this is an IP from the computer with the Agent and Collector), "In Subnet": checked, "Enable Monitoring": unchecked.

3. Restart IIS.

4. In browser on local computer: http://testsystem/CSMAcceptanceWeb/FistPage.aspx ;code is not injected - it is OK.

5. In browser on another computer: http:// testsystem/CSMAcceptanceWeb/FistPage.aspx ;code is not injected, but should be - it is wrong.

Cause:

The filter is applied to all 172.17.4.[N] machines. So on another computer monitoring is also disabled.

Reason:

172.17.4.[N] - is other machine, it differs from 172.17.4.121 by the last [N], but in mask there is 0, - this means that the last digits can be any number.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.22. [uXV5] Stack for functions before Eval() call is not collected

Symptoms:

In some cases the stack for functions before Eval() call is not collected.

Cause:

This is caused by uX internal logic.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.23. [uXV5] Client-side throttling functions incorrectly for exceptions occurred in CSS

Symptoms:

It seems that client-side throttling does not work properly.

Cause:

Throttling is not applied for light events - possibly the user's misunderstanding as to why events are still collected when the throttling limit is reached.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.6. This is fixed in 5.7.

3.24. [uXV5] Applications are not monitored, although uX Configuration Utility shows that CSM monitoring is on. Server monitoring is off.

Symptoms:

Applications are not monitored, although uX Configuration Utility displays that CSM Monitoring is on.

Cause:

uX monitoring works only when Server side monitoring is on.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.25. [uXV5] HttpWatch shows that postfix code is injected to the image request, but Advisor does not show image in report and page source code is broken

Symptoms:

HttpWatch shows that postfix code is injected to the image request, but Advisor does not show image in report and page source code is broken.

Cause:

User's page can be broken when the "Content-Length" header for response uses unresolved symbols.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 - 5.7

3.26. [uXV5] uX can harm pages when works in collaboration with "AjaxView"

Symptoms:

uX can harm pages when works together with "AjaxView".

Cause:

Collaboration uX and "AjaxView" usage does not guarantee stable work.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.27. [uXV5] Encoding is not fully supported by ASP.NET: warning message "System.NotImplementedException: The method or operation is not implemented." is received in the Intercept Event Log

Symptoms:

You may find this issue while using encoding (for instance, windows-1255 encoding) on ASP.NET page. The the following warning message is received in the Intercept Event Log:

Event Type: Warning

Event Source: Intercept uX Injector

Event Category: None

Event ID: 1001

Date: 15/07/2009

Time: 13:01:17

User: N/A

Computer: TESTAPPLINX1

Description:

Error occurred while filtering response of the page http://localhost/Applinx_Tfahot/index.aspx?errorMsg=%D7%A8%D7%9E%D7%AA%20%D7%94%D7%90%D7%91%D7%98%D7%97%D7%94%20%D7%A9%D7%9C%20%D7%94%D7%9E%D7%97%D7%A9%D7%91%20%D7%90%D7%99%D7%A0%D7%94%20%D7%9E%D7%AA%D7%90%D7%99%D7%9E%D7%94.%D7%90%D7%A0%D7%90%20%D7%A4%D7%A0%D7%94%20%D7%9C%D7%97%D7%93%D7%A8%20%D7%94%D7%9E%D7%97%D7%A9%D7%91 <http://localhost/Applinx_Tfahot/index.aspx?errorMsg=%D7%A8%D7%9E%D7%AA%20%D7%94%D7%90%D7%91%D7%98%D7%97%D7%94%20%D7%A9%D7%9C%20%D7%94%D7%9E%D7%97%D7%A9%D7%91%20%D7%90%D7%99%D7%A0%D7%94%20%D7%9E%D7%AA%D7%90%D7%99%D7%9E%D7%94.%D7%90%D7%A0%D7%90%20%D7%A4%D7%A0%D7%94%20%D7%9C%D7%97%D7%93%D7%A8%20%D7%94%D7%9E%D7%97%D7%A9%D7%91> :

System.NotImplementedException: The method or operation is not implemented.

at System.Web.CodePageNoBestFitEncoding.GetChars(Byte[] bytes, Int32 byteIndex, Int32 byteCount, Char[] chars, Int32 charIndex)

at System.Text.DefaultDecoder.GetChars(Byte[] bytes, Int32 byteIndex, Int32 byteCount, Char[] chars, Int32 charIndex)

at Agent.Injection.Engine.Injection.ResponseFiltering.BlockedStreamTextReader.ReadBuffer()

at Agent.Injection.Engine.Injection.CSMInjectionStreamImplementation.ConvertBuffer()

at Agent.Injection.Engine.Injection.CSMInjectionStreamLogicProxy.ProcessEvent(ExternalEvent e)

Agent version: 5.5.61.0

.NET Framework: v1.1.4322.2379

ProcessID: 5956; InstanceID: 0;

InstanceName: w3wp.exe;

ApplicationPool: Applinx_Tfahot;

Full Domain name: /LM/W3SVC/1/Root/Applinx_Tfahot-1-128921218246053750;

Cause:

Using encoding is not fully supported by ASP.NET.

Resolution:

By design.

Feature "enableBestFitResponseEncoding" is added since Windows Server 2003 SP1and should be enabled in "web.config" for supporting this type of encoding:

<configuration>

<system.web>

<globalization requestEncoding="Windows-1255" responseEncoding="Windows-1255" enableBestFitResponseEncoding="true"/>

</system.web>

</configuration>

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.28. [uXV5] CSM cannot collect the onClick event, if the onClick handler added via "attachEvent" (for Internet Explorer)/ "addEventListener" (for Mozilla FireFox)

Symptoms:

In some cases the onClick event is not collected for uX.

You may face this after adding the following piece of html code to your page:

<input id="Button1" type="button" value="CSM Action event" />

<script language="javascript">

var button = document.getElementById("Button1");

button.attachEvent('onclick',foo); // for IE

//button.addEventListener('click',foo,false); // For Fx

function foo(){

sleep(1000);

}

function sleep(msec)

{

var start = new Date().getTime();

while (new Date().getTime() - start < msec);

}

</script>

Cause:

This is a uX limitation - uX cannot get the onClick event, if the onClick handler added via attachEvent(for IE)/addEventListener(for Mozilla FireFox).

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.29. [uXV5] Incorrect Injector behavior: not all extensions are being monitored

Symptoms:

Not all extensions are being monitored. For example, you use "WebResource.axd", which is not monitored and you get an empty response while having browsed it.

Cause:

Out of box not all extensions are monitored, only ".aspx" is. User can modify default filter if he wants to monitor other extensions. This setting can be set in "CSM.action.config" (by default it is allocated in "C:\Program Files\Avicode\Intercept\Agent\v5.X.XXX\Configuration\Standard").

For example, for uX 5.6 in order to apply monitoring not only to  ".aspx" pages, you should comment/remove the following filter:

<!--Disable by extension-->

<!--<ss:filterGroup configurable="false">

<ss:filter action="Deny" value=".aspx" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:settings displayName="Pages with extention other then .aspx are not supported" include="false" includeStatistic="false" includeProblem="false" />

</ss:filterGroup>-->

For 5.7 you modify/comment/remove the following filter:

<ss:filterGroup filterGroupName="Supported extensions" class="Deny">

<ss:filter value=".aspx" compareType="NotContains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value="true" compareType="NotSimple">

<ss:argument name="IsMvcRequest" value="IsMvcRequest" />

</ss:filter>

<!--

<ss:filter value=".asmx" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value=".axd" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value=".ico" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value=".jpg" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value=".jpeg" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value=".bmp" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value=".gif" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value=".png" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value=".emf" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value=".psd" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value=".css" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

<ss:filter value=".htc" compareType="Contains">

<ss:argument name="PageName" value="PageName" />

</ss:filter>

-->

</ss:filterGroup>

Also in 5.7 the user can work with filters using UI.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.30. [uXV5] The "totalEventsPerFiveMinutes" throttling parameter functions incorrectly for some applications

Symptoms:

"totalEventsPerFiveMinutes" throttling parameter functions incorrectly for some applications. This setting can be set in "CSM.action.config" (by default it is allocated in "C:\Program Files\Avicode\Intercept\Agent\v5.X.XXX\Configuration\Standard").

<ss:limitsPerPage enable="true">

<!--No more then totalEventsFromPage will be sent from the single page-->

<ss:limit name="TotalEventsFromPage" value="100" />

<!--No more then totalEventsPerMinute will be sent per minute-->

<ss:limit name="TotalEventsPerMinute" value="10" />

<!--No more then totalEventsPerFiveMinutes will be sent per five minutes-->

<ss:limit name="TotalEventsPerFiveMinutes" value="30" />

<!--No more then oneTypeTotalFromPage events will be sent from one page-->

<ss:limit name="OneTypeTotalFromPage" value="15" />

<!--Event will not be sent until oneTypeMinimalDelay seconds will pass from last sent event of this type-->

<ss:limit name="OneTypeMinimalDelay" value="3" />

<!--No more then oneTypePerMinute events of one type will be sent in minute-->

<ss:limit name="OneTypePerMinute" value="2" />

<!--No more then oneTypePerFiveMinutes events of one type will be sent in five minutes-->

<ss:limit name="OneTypePerFiveMinutes" value="5" />

</ss:limitsPerPage>

Cause:

This is an internal throttling logic for individual cases. Error count is estimated within 5 minutes of the last interval preceding the error. This interval is automatically shifted to the right every second.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.31. [uXV5] uX Configuration Utility does not validate Monitoring Resources Settings string

Symptoms:

uX Configuration Utility does not validate Monitoring Resources Settings string. It is possible to type any value:

Cause:

There is no validation for Resource settings string in uX Configuration Utility. It should be HttpRequest - no risks, just performance degradation when the incorrect value is used.

For example, if you want to have scripts requests got to CSMServer (with installed Collector), correct Monitoring Resources Settings string can be like the following:

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.32. [uXV5] Incorrect functionality of navigation buttons (Backward, Forward buttons) on the pages under uX monitoring

Symptoms:

Some navigation buttons may not work correctly in IE8 on pages with uX monitoring enabled.

Cause:

Under uX monitoring when the CSM Collector is unavailable, some browser buttons may not work correctly - this is a limitation of uX.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.33. [uXV5] "Does not start with"/"Does not equal" filter for Http method seems to work incorrectly in some cases

Symptoms:

"Does not start with"/"Does not equal" filter for Http method seems to work incorrectly in some cases.

For example, after adding a filter as in the sample below you still receive events from the GET method:

Cause:

In some cases monitoring is allowed if something "does not start with"/"does not equal"/ ... - this filter does not deny monitoring in cases that did not pass the condition.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.34. [uXV5] "Some constructors were not instrumented due to limitations of current version. " warnings is posted in the Intercept Event Log

Symptoms:

You may see warnings like the following in the Event Log:

Some constructors were not instrumented due to limitations of current version. 

System information:

Agent version: 5.6.111.1

Windows version: 2.6.0.3.274.1.9.0;

.NET Framework: v2.0.50727.3074

Process ID: 2008; Instance ID: 0;

InstanceName: w3wp.exe;

Application Pool: DefaultAppPool.

Cause:

Some constructors are not instrumented by default (for example, "System.Runtime.Remoting.Messaging.ReturnMessage..ctor"), so related warnings can appear in the Event Log.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.35. [uXV5] CSM Statistics counters are not created and an "UnautorizedAccessException" error occurs in the Intercept Event Log

Symptoms:

CSM Statistics counters are not created and an "UnautorizedAccessException" occurs in the Intercept Event Log:

Event Type: Information

Event Source: Intercept uX Statistics

Event Category: None

Event ID: 1001

Date: 9/24/2009

Time: 2:15:01 PM

User: N/A

Computer: OK-TEST2-W2K

Description:

Cannot retrieve or create a performance counter named 'Cars\Avg execution time help'. Reason:

Type: System.UnauthorizedAccessException

Message: Access to the registry key 'Global' is denied.

Source: mscorlib

StackTrace: at Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str)

at Microsoft.Win32.RegistryKey.InternalGetValue(String name, Object defaultValue, Boolean doNotExpand, Boolean checkSecurity)

at Microsoft.Win32.RegistryKey.GetValue(String name)

at System.Diagnostics.PerformanceMonitor.GetData(String item)

at System.Diagnostics.PerformanceCounterLib.GetPerformanceData(String item)

at System.Diagnostics.PerformanceCounterLib.get_CategoryTable()

at System.Diagnostics.PerformanceCounterLib.GetCategorySample(String category)

at System.Diagnostics.PerformanceCounterLib.GetCategorySample(String machine, String category)

at System.Diagnostics.PerformanceCounterCategory.InstanceExists(String instanceName)

at Agent.CSMStatisticCounters.StatisticCountersManager.GetCsmPerformanceCounterForcingCreation(String counterName, String categoryInstanceName)

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.PrintFromInnerMethod(Exception exp, String message, String parameter, EntryType entryType)

at Agent.Common.CSYSConsoleBase.PrintFromInnerMethod(Exception exp, String message, EntryType entryType)

at Agent.CSMStatisticCounters.CSYSConsole.LogAnExceptionRethrowingCriticalsTracingStackIfItHasNotBeenLogged(Exception e, String additionalMessage, EntryType messageImportance)

at Agent.CSMStatisticCounters.StatisticCountersManager.GetCsmPerformanceCounterForcingCreation(String counterName, String categoryInstanceName)

at Agent.CSMStatisticCounters.StatisticCountersManager.IncrementAverageRequestExecutionTime(String instanceName, Int64 time)

at Agent.Collector.Handlers.IncrementCounters.IncrementPerfViolations(CounterData counterData)

at Agent.Collector.Handlers.IncrementCounters.Increment(CounterData[] countersToUpdate)

at Agent.Collector.Handlers.IncrementCounters.OnDoWork(IContext context)

at Agent.Collector.Base.ModuleBase.DoWork(IContext context)

at Agent.Collector.Base.ModuleBase.DoWork(IContext context)

at Agent.Collector.Base.ModuleBase.DoWork(IContext context)

at Agent.Collector.Handlers.AsyncEventProcessor.AsyncProcessEvent()

at System.Threading.ThreadHelper.ThreadStart_Context(Object state)

at System.Threading.ExecutionContext.runTryCode(Object userData)

at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)

at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

at System.Threading.ThreadHelper.ThreadStart()

.

Agent version: 5.6.115.0

.NET Framework: v2.0.50727.42

ProcessID: 808; InstanceID: 0;

InstanceName: aspnet_wp.exe;

Full Domain name: /LM/W3SVC/1/ROOT/CSMCollector-1-128982608879261376;

Cause:

Application user account under which the CSM Collector is run does not have sufficient permissions to the registry to create performance counters.

Resolution:

Make sure (if not add) that the application pool user for the CSM Collector is added to the following user groups:

- See the application pool user for the CSM Collector (by default this is the "Intercept" application pool)

- Add the application pool user for the CSM Collector to "Performance Monitor Users" and "IIS_WPG" (IIS Worker Process Group) if you use Windows Server 2003; and to "Performance Monitor Users" only for Windows Server 2008

- Recycle the CSM Collector's application pool

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.36. [uXV5] CSS file size collection differs by browser version (for Internet Explorer7.0 and Internet Explorer8.0)

Symptoms:

CSS file size collection depends on the browser's version. For example, this can be seen for IE 7.0 and IE 8.0.

Cause:

Different browser and browsers versions work with CSS differently. The same page statistics may not equal for all browsers. There is a known issue with CSS file size difference in IE and Mozilla FireFox. Since the moment it is necessary to be aware the fact that IE browsers give different values of properties.

IE7.0 and IE8.0 format the file in their own ways:

Please see Knowledge Base Articles and Solutions Appendix - IE7.0.txt File Contents for the contents of the \IE7.0.txt  file

Please see Knowledge Base Articles and Solutions Appendix - IE8.0.txt File Contents for the contents of the \IE8.0.txt file

 

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.36. [uXV5] CSM collects the wrong file name for HTC and does not show its size

Symptoms:

CSM collects the wrong file name for HTC and does not show its size.

In V5.6:

<ss:appdomains minorPageLoadTime="10000" majorPageLoadTime="10000" calcLinkedContentUsingAjax="true" collectHtc="true" linkedItemSizeThreshold="1000" include="true" includeStatistic="true" includeProblem="true" statisticsSampling="10" samplingMode="Statistics" scriptsVersion="2" disabledContent="0" clientStorageMode="1">

In V 5.7:

<ss:appdomains minorPageLoadTime="10000" majorPageLoadTime="10000" include="true" includeStatistic="true" includeProblem="true" statisticsSampling="10" samplingMode="Statistics" scriptsVersion="2" disabledContent="0" clientStorageMode="1">

Expected behavior:

behaviors\bigBehavior.htc

behaviors\smallBehavior.htc

Observed behavior:

behaviorssmallBehavior.htc

behaviorsigBehavior.htc

Cause:

If HTC is defined incorrectly in code, HTC file name can be collected, but size of non-existing HTC will not be shown.

For example, for the sample above:

Incorrect definition:

<style type="text/css">BODY { BEHAVIOR: url(behaviors\bigBehavior.htc) }</style>

<style type="text/css">div.small { BEHAVIOR: url(behaviors\smallBehavior.htc) }</style>

Correct definition:

<style type="text/css">BODY { BEHAVIOR: url(behaviors\\bigBehavior.htc) }</style>

<style type="text/css">div.small { BEHAVIOR: url(behaviors\\smallBehavior.htc) }</style>

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.37. [uXV5] "Global variables" collection: Internet Explorer collects global variables from UP to DOWN and Mozilla FireFox - from DOWN to UP

Symptoms:

You may notice that global variables for different browsers are represented in different order in CSM exception event.

Cause:

Global variables are collected in IE and FireFox in different ways.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.38. [uXV5] Browser type for some Internet Explorer8.0 clients is incorrectly detected for a CSM performance event

Symptoms:

You may notice that the browser type for some IE8.0 clients is incorrectly detected for a CSM performance event. It is detected as IE7.0.

Cause:

IE8 can run in three modes:

- IE 7

- IE 8

- IE 8 Compatibility mode

Mode can be selected in IE8.0: "Tools""Developer Tools":

IE8 in Compatibility mode is detected as IE7. So that events are shown as IE7.0.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.39. [uXV5] "Network Request time was not collected" message is displayed in CSM performance events

Symptoms:

You may see the following message in CSM performance event:

Cause:

Network time for IE6.0 is not collected - it does not support cookies.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.40. [uXV5] Certain JavaScript errors (exception) are not collected for Mozilla FireFox2.0 and FireFox 3.6.6

Symptoms:

Certain JavaScript errors (exceptions) are not collected for Mozilla FireFox browsers.

You may find this issue when you are running the browser for the first time and JavaScript error occurs.

Expected behavior: New Exception event appears in SE-Viewer; POST request with "ProcessCSMExceptionEvent" appears in Third-party Http Analyzers ("HttpWatch"/"ySlow"/"HttpAnalyzer").

Observed behavior: no exception event appears in SE-Viewer; no POST request with "ProcessCSMExceptionEvent" appears in HTTP debugger tool (see screenshot below).

Cause:

Exception errors are not collected before page DOM is ready.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.41. [uXV5] Pages written in code behind are not instrumented by uX

Symptoms:

You noticed pages written in code behind are not instrumented.

For example, you have got the following code in your page:

namespace Cars.Prudential

{

public partial class HtmlFlush : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

Response.Clear();

Response.Write("<html><head runat=\"server\"><title>Untitled Page</title></head></html>");

}

}

}

Expected behavior:

Page is instrumented.

Wrong behavior:

Page is not instrumented.

Cause:

By default only pages starting with <!Doctype> are instrumented. To change this user should modify default filter.

In order to do this you should:

- Open "CSM.action.config" (by default it is allocated in "C:\Program Files\Avicode\Intercept\Agent\v5.X.XXX\Configuration\Standard") and disable <!Doctype> streamFilter:

<!-- Only HTML can start with <!DOCTYPE usually, not all HTML pages starts with <!DOCTYPE -->

<ss:filterGroup configurable="false">

<ss:filter action="Deny" compareType="StartsWith" value="&lt;!DOCTYPE">

<ss:attribute name="trimLeft" value="true" />

<ss:argument name="Response.CurrentChunk" value="Response.Buffer" />

</ss:filter>

<ss:settings displayName="Only HTML pages with DOCTYPE in the very beggining is enabled" include="true" includeStatistic="true" includeProblem="true" />

</ss:filterGroup>

- In "CSM.action.config" enable <ss:pageLogInjection mode="medium" enable="true" />:

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 -5.7

3.42. [uXV5] VB script specific functions are not excluded from event time

Symptoms:

VB script specific functions are not excluded from event time.

For example, when the VB alert appears delay time before you click "OK" will be included in event time:

Cause:

This is one of the limitations while working with VB script through JScript (uX injection). VB script specific functions are not excluded from event's peripheral loading time.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 -5.7

3.43. [uXV5] Ajax created using ActiveXObject in VB is not monitored by uX

Symptoms:

Ajax created using ActiveXObject in VB is not monitored by uX.

Function Ajax_GetXMLActiveXObject()

Set the ActiveXObjectObj = CreateObject("Microsoft.XMLHTTP")

End Function

No appropriate events for the ActiveXObject are collected in this case.

Cause:

This is one of the limitations while working with VB script through JScript (uX injection). Ajax created using ActiveXObject in VB is not monitored.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.44. [uXV5] Global variables and code sources are not collected in exception events for a failed VB function

Symptoms:

Global variables and code sources are not collected for a failed VB function.

Cause:

This is one of the limitations while working with VB script through JScript (uX injection). Global variables for failed VB functions are not collected.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.45. [uXV5] Exception URL is not determined correctly in Mozilla FireFox

Symptoms:

Exception URL is not determined correctly in Mozilla FireFox.

You may find this issue by having generated exception in external ".js" file and seen its representation in SE-Viewer.

Expected behavior:

In exception details "URL" = URL of external file

Wrong behavior:

In exception details "URL" = page URL

Cause:

Default behavior of Mozilla FireFox browser (browsers < IE8 always show page as a source of exception, not script) - user issue may explain why events representations are not common for different browsers.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.7

3.46. [uXV5] DataCollecting limitation logic for Controls: not all controls are instrumented

Symptoms:

You may find issues with instrumentation controls. Not all controls seem to be instrumented.

Cause:

There is parameter used to limit the number of controls on the page to be instrumented, by default this number is large (2000).

It can be set in "CSM.action.config" (by default allocated in "C:\Program Files\Avicode\Intercept\Agent\v5.6.515\Configuration\Standard" folder):

<ss:dataCollecting >

<!-- Only first N controls of each measured type is analyzed -->

<ss:limit id="5" name="Controls" value="2000" />

</ss:dataCollecting>

If the user changes it to too small a value - he may find with some problems with instrumentation controls.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.7

3.47. [uXV5] Meta tags are not applied because of uX

Symptoms:

Meta tag cannot be applied because of uX injection.

For example, you may find this issue after adding <meta http-equiv="X-UA-Compatible" content="IE=8" /> meta tab HTML to web page monitored by uX. In this case meta tag seems to be ignored for the monitored page.

Cause:

Meta tags are not supported in Skippers logic in uX 5.7.

uX injects page and adds prefix JavaScripts on the top of the page, so the meta tag is not defined as it is supposed to be and is not applied.

You may see the following piece of code while showing injected page as source:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"><script id='__csm_CSMPrefix_Script' language="javascript" type="text/javascript">var __csm_PA = function(){var C1={A73:'',C6:{A15:100,A16:10,A17:30,A18:15,A19:3,A20:2,A21:5,A58:0,A59:0,A60:0},A22:1000,A23:10,A24:true,A68:false,A25:'/CsmCollector/CsmCollectorService.asmx',A27:10,A28:true,A72:1,A74:1,A75:'e',A76:0,A47:true,A44:true,A35:'2a67dd49_0b44_4448_ba5a_f67fd67343fd',C8:{A42:100,A43:0,A54:''},A84:[],A91:[{A92:'window.alert',A93:1,A94:true},{A92:'window.prompt',A93:2,A94:true},{A92:'window.confirm',A93:1,A94:true}],A26:'/CsmCollector',A99:'',A97:'1',B1:4,B4:1};this.D1=C1;var D2={A32:'Offertes',B5:'642342886',C2:{A10:'otra-int.com%5cVM018045',A8:0,A46:'5.6'}};this.A81=D2;var D4={C81:new Date(),C5:{cookie_t9:'1275988771205',C61:'{$$type:"RedirectInfo",c_PrevRedirect:null,ServerEventID:"4c0de112-1374-0000-dc03-0000cc137604",To:"http%3a%2f%2fvm018045%2fOffertes%2fPages%2fRegistration%2fLines.aspx",From:"http%3a%2f%2fvm018045%2fOffertes%2fPages%2fRegistration%2fCustomer.aspx",c_ServerTime:75,StartDateTicks:1275988771440,EndDateTicks:1275988771520,c_Summary:null,T9:"1275988771205",Time:"2010-06-08T09:19:31.440"}',A37:'http%3a%2f%2fvm018045%2fOffertes%2fPages%2fRegistration%2fCustomer.aspx',A36:'tz2ppjbexh3daq3v5bdcznnv'},C12:{A30:'4c0de112-1374-0000-dd03-0000cc137604',A31:'http%3a%2f%2fvm018045%2fOffertes%2fPages%2fRegistration%2fLines.aspx'},C3:{A38:1275988771520,A39:1275988771520},C4:{__userName:'NLOTRA%5cM831',__userHostAddress:'10.1.0.41',__tenantName:''}};this.A83=D4;function __csm_$srcT(n,f){document.write('<script id="'+n+'" language="javascript" type="text/javascript" src="'+(C1.A99!=''?C1.A99:C1.A26)+'/Scripts/v5_6/js/'+f+C1.A97+'.js"><\/script>');window.status='';}__csm_$srcT('__csm_#$#S','statistics');__csm_$srcT('__csm_#$#K','keep');__csm_$srcT('__csm_#$#P','problem');}; if(typeof(__csm_pa) == "undefined"){__csm_pa=new __csm_PA();}</script>

<head><title>

PageName

</title><meta http-equiv="X-UA-Compatible" content="IE=8" />

Resolution:

By design.

To avoid this issue you can define Http header in IIS Settings:

- Open IIS

- Browse to "Feature view" of the virtual directory of your application

- Open "HTTP Response Headers"

- Add a new header with:

Applies to:

AVIcode Intercept uX 5.7

3.48. [uXV5] Filter group is not applied if it contains several filters with different incompatible values to one property

Symptoms:

Filter group is not applied if it contains several filters with different incompatible values to one property.

Cause:

For filters in one group "AND" logic is implemented. So when two or more different filters with different (incompatible) values are added for one property - this filter group will not be valid.

For example, filter group in the following case will not be applied:

In this case you should create separate filter groups.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.49. [uXV5] "500 status code" requests are not injected for some applications

Symptoms:

"500 status code" requests are not injected for some applications.

Cause:

On IIS in Integrated mode these types of pages are instrumented, in Classic mode code for "500 status code" requests are not injected.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.7

IIS in Classic mode

3.50. [uXV5] Content Encoding filter does not work for some encoding types

Symptoms:

Content encoding filter does not work for some encoding types.

Cause:

GZIP encoding cannot be checked. UTF8 encoding (UTF16,... etc) are being checked. In the response headers this parameter is stored in "Content-Type" after "charset=" (in ASP .NET you can use the "Response.ContentEncoding" property to set the response encoding charset).

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.7

3.51. [uXV5] "_csm_ux_data" cookie is shown in the "Global Variables" section of the uX Exception event

Symptoms:

"_csm_ux_data" cookie is shown in the "Global Variables" section of the uX Exception event:

Cause:

All cookies on the page are collected and shown in event representation - so your own uX cookie is represented there too, if it was given to one of the global variables.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.52. [uXV5] No redirect information is collected after running the browser for the first time

Symptoms:

No redirect information is collected after running the browser for the first time:

But you can see it collected after the second run of the browser:

Cause:

When the browser has just started and page under uX browsed - redirect information will not be collected for this type of scenario.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.7

3.53. [uXV5] Agent upgrade fails on the certain environment: REMOVE_COLLECTOR_CONDITION is failed

Symptoms:

You encounter this this issue while upgrading the Agent when uX is installed. The following message is displayed:

Expected: Agent is successfully upgraded.

Observed: Error message above occurred.

Cause:

This is Agent's upgrading limitation. It occurs while upgrading the Agent 5.0 - 5.6.264 (RTM) with uX installed to a higher version.

Resolution:

By design.

Workaround to avoid the issue is to run CMD as Administrator and call to msiexec -i "<Path to Agent installer>".

Applies to:

AVIcode Intercept uX 5.0 - 5.6

3.54. [uXV5] The installer fails to import uX configuration during upgrade of 5.5 (Hot Fix, 5.5.75) to 5.7

Symptoms:

The installer fails to import uX configuration during upgrade of 5.5 (Hot Fix, 5.5.75) to 5.7 and the following message is displayed:

Actual result: Warning message above: "Failed to import uX configuration".

Agent was upgraded.

Expected result: The installer must import uX configuration during upgrade successfully.

Cause:

This is Agent's 5.5 upgrade limitations. Configuration merging is not supported in this case.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5 Hot Fix

3.55. [uXV5] ExceptionsEventGroups limit set in the "CSM.collector.config" functions incorrectly

Symptoms:

It seems that ExceptionsEventGroups limit functions incorrectly and displays the wrong URLs.

Cause:

Application display name is used to identify same event groups, but not URLs.

The appropriate limits can be set in "CSM.collector.config" (by default it is allocated in "C:\Program Files (x86)\AVIcode\Intercept\CSMCollector\v5.X.XXX\Configuration" folder):

<ss:limits enable="false">

<ss:limit name="PerformancePerDomain" perMinute="60" perHour="600" perDay="1200" />

<ss:limit name="PerformanceEventGroups" perMinute="3" perHour="30" perDay="60" />

<ss:limit name="ExceptionsTotalChains" perMinute="6000" perHour="60000" perDay="600000" />

<ss:limit name="ExceptionsPerDomain" perMinute="15" perHour="60" perDay="300" />

<ss:limit name="ExceptionsEventGroups" perMinute="3" perHour="15" perDay="30" />

</ss:limits>

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.56. [uXV5] Enable monitoring on root level when the user adds the first application for uX monitoring

Symptoms:

You have added the first application to uX monitoring, but it is not monitored.

Cause:

After adding the first application for uX monitoring, the user should go to the root level and enable whole uX monitoring.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.7

 

3.59. [uXV5] No information in the Event Log about some skipped by Data Complexity uX events

Symptoms:

- uX JScript expects to send group of sequenced events to the SEViewer and these events exceed Complexity Limit "EventSize".

AND

- In the Event Log messages like this are posted:

"An event of type: {0} has not been sent from the monitored page due to event size limitation. Details: Event size: {1} chars. Limit vakue: {2} chars."

AND

- The number of messages in the Event Log + (plus) number of events in SEViewer is not equal to expected events count.

The message about the first event exceed event size always exists. But the following events exceed event size have no corresponding records in the Event Log.

Cause:

In this case many equal HTTP GET requests are sent to Collector Logging service at the same time. These requests intersect each other, so some of them can be missed.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.7

3.60. [uXV5] The tag <html> defined inside of condition comment in IE affects uX monitoring

Symptoms:

- uX Monitoring is enabled for some applications.

AND

- uX prefix Jscript code is injected, but this code is not executed. So user will not get any uX events.

AND

- Page source contains section like this: <!--[if !IE]--> <html> <!--[endif]-->

Cause:

We inject code right after the first <html> tag found in the page source. The comment tag containing [if] statement can disable code processing by the browser up to comment tag with [endif] statement.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.5-5.7

3.61. [uXV5] For IIS6 two CSM Collectors in one Intercept application pool under different .NET versions do not work

Symptoms:

Two virtual directories on different websites were created on the same IIS6 server. One of them was set to work under .NET 2.0 and the second under .NET 4.0. CSM Collector was added to both using the Collector utility. An error from ASP.NET was received in the Event Log:

Event Type: Error

Event Source: ASP.NET 4.0.30319.0

Event Category: None

Event ID: 1062

Date: 12/2/2010

Time: 1:26:13 PM

User: N/A

Computer: EAWIN2003X64AAT

Description:

It is not possible to run two different versions of ASP.NET in the same IIS process. Please use the IIS Administration Tool to reconfigure your server to run the application in a separate process.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Cause:

1 app pool equals to 1 CLR version.

In IIS6 the customer should pay attention to this, because there are no two virtual directories on the Intercept application pool with different ASP.NET versions

In IIS7 .NET version is setting for the application pool, not virtual directory, thus no such problem occurs.

Resolution:

By design. Change ASP.NET versions of all CSM Collectors applications to 2.0.

Applies to:

AVIcode Intercept uX 5.0 - 5.7

3.62. [uXV5] Errors concerning _csm_CSMIntegrityPolicy.Detach in the Event Log when error logging is on

Symptoms:

uX Collector Event Log contains the following errors (actually the problem is not critical and can be ignored):

Event Type: Error

Event Source: Intercept uX Collector

Event Category: None

Event ID: 1001

Date: 11/17/2010

Time: 6:12:21 PM

User: N/A

Computer: EAWIN2003X64AAT

Description:

An error has occurred. Please contact Technical Support if this issue persists.

Client exception occurred at _csm_CSMIntegrityPolicy.Detach(...): ???????????. Object: '[object Object]'. Event: 'readystatechange'. Detach Type: 'detachEvent'

Agent version: 5.7.463.0

.NET Framework: v2.0.50727.3615

Event Type: Error

Event Source: Intercept uX Collector

Event Category: None

Event ID: 1001

Date: 11/17/2010

Time: 6:12:48 PM

User: N/A

Computer: EAWIN2003X64AAT

Description:

An error has occurred. Please contact Technical Support if this issue persists.

Client exception occurred at _csm_CSMIntegrityPolicy.Detach(...): ???????????. Object: '[object Object]'. Event: 'readystatechange'. Detach Type: 'detachEvent'

Agent version: 5.7.463.0

.NET Framework: v2.0.50727.3615

Cause:

Thiss internal logic issue. Please, ignore this error, it is not critical.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.0 - 5.7

3.63. [uXV5] IE 9.0 is not supported

Question:

Is IE 9.0 supported in scope of uX monitoring?

Answer:

No, IE 9.0 is not supported by design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.64. [uXV5] When error logging is on, Injector name are posted encrypted to the Event Log

Symptoms:

Preconditions:

- Exception occurs inside "performance.js", "pmode.js", or "smode.js"

- Encryption is in "Fast" or "Strong" mode

- Heavy error-logging mode is used

In an error event that will be posted in the Event Log, the Injector name will be encrypted.

Cause:

This is an internal logic limitation. Ignore this error, it is a known issue.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.65. [uXV5] Asq does not show Exception events in problems list

Symptoms:

Preconditions:

- User sets enableASQ="true" in "csm.action.config"

- uX Exception event is generated

- ASQ web part will not show Exception event

Cause:

Exception problem showing is disabled in ASQ due to occurred infinitive recursion problem.

Ignore this error, it is a known issue.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.66. [uXV5] IE7.0 causes uX error log and trace log GET requests to be aborted, leading to the loss of statistical data

Symptoms:

Using IE7.0 log and trace requests are sometimes aborted and statistic is not collected.

Preconditions steps to reproduce:

- Add application to CSM monitoring with heavy error logging mode

- Generate several exceptions that cause trace log information sending to Collector

- Generate several button clicks that causes sending statistics information

- As a result some GET requests are aborted

Cause:

Statistics and logging information is sent using Http GET requests which may intersect with each other and therefore several of them may be aborted.

This is an internal logic limitation. Ignore this error, it is a known issue.

Resolution:

By design.

Applies to:

AVIcode Intercept uX 5.6 - 5.7

3.67. [uXV5] Using IE8.0 the customers application behavior under uX monitoring is being damaged and "Message: The type initializer for 'Agent.CSMStatisticCounters.CSMStatsReportingEventTooUnsafeToUse' threw an exception." is posted in the Intercept Event Log

Symptoms:

While using IE8.0 and customers application having its own internal problems, under uX monitoring application behavior can be hurt and the following error message is posted in the Intercept Event Log:

Log Name: Intercept

Source: Intercept uX Statistics

Date: 24/01/2010 15:34:26

Event ID: 1001

Task Category: None

Level: Information

Keywords: Classic

User: N/A

Computer: TamarWeb7Test.leumit.co.il

Description:

An error occurred while sampling the counters/reporting the client side statistics. Reason:

Type: System.TypeInitializationException

Message: The type initializer for 'Agent.CSMStatisticCounters.CSMStatsReportingEventTooUnsafeToUse' threw an exception.

Source: Agent.CSMStatisticCounters

StackTrace: at Agent.CSMStatisticCounters.CSMStatsReportingEventTooUnsafeToUse..ctor()

at Agent.CSMStatisticCounters.CSMStatsReportingEvent..ctor(Int32 numberOfCounterTypes, Int32 numberOfApplications, DateTime eventCreationTime, Int32 numberOfMillisecondsPassedBetweenReadingTheCounters)

at Agent.CSMStatisticCounters.ReadersOfCounters.SampleTheCountersAndGetStatsReportingEvent(ISamplingIntervalProvider samplingTimeProvider)

at Agent.CSMStatisticCounters.StatisticCountersMonitor.SampleTheCountersAndSendTheStats(Object p_countersData)

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.PrintFromInnerMethod(Exception exp, String message, String parameter, EntryType entryType)

at Agent.Common.CSYSConsoleBase.PrintFromInnerMethod(Exception exp, String message, EntryType entryType)

at Agent.CSMStatisticCounters.StatisticCountersMonitor.SampleTheCountersAndSendTheStats(Object p_countersData)

at System.Threading.ExecutionContext.runTryCode(Object userData)

at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

at System.Threading._TimerCallback.PerformTimerCallback(Object state)

InnerException Type: System.IO.FileNotFoundException

InnerException Message: Could not find file 'C:\Windows\TEMP\_zxgfkwg.dll'.

InnerException Source: mscorlib

InnerException TargetSite: WinIOError

InnerException StackTrace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)

at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)

at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)

at Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames)

at Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch(CompilerParameters options, String[] sources)

at Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch(CompilerParameters options, String[] sources)

at System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(CompilerParameters options, String[] sources)

at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)

at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)

at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)

at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace)

at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)

at Agent.CSMStatisticCounters.CSMStatsReportingEventTooUnsafeToUse..cctor()

.

Agent version: 5.6.248.0

.NET Framework: v2.0.50727.4927

Cause:

Actually this is not uX issue, but a problem dealing with customers own application working with IE8.0.

Resolution:

The best resolution is to stop using customers application with IE8.0.

In order to fix the issue on the customers side several fixed scripts were provided. The idea of this fix is:

1. Set the AjaxOverrideMode to lateOverrideForBoth.

2. Move holder for original version of showModalDialog function to public variable.

However, what was done in scope of 5.7:

1. Set the AjaxOverrideMode to lateOverrideForBoth.

2. Disabled override of showModalDialog by default.

So, from the point of the fix, 5.7 in default configuration will provide the same effect as the applied custom fix.

But the "Move holder for original version of showModalDialog function to public variable" was not implemented in 5.7.

Applies to:

AVIcode Intercept uX 5.6 and 5.6SP1. uX 5.7 will provide the same effect as the all applied fixes in scope of this issue.

3.68. [uXV5] Following "Access to the registry key 'Global' is denied. " error messages from Intercept uX Statistics are posted to the Intercept Event Log while running the CSM Collector application pool under the ApplicationPoolIdentity user

Symptoms:

The following error messages from Intercept uX Statistics are posted to the Intercept Event Log while running the CSM Collector application pool under the ApplicationPoolIdentity user:

Log Name: Intercept

Source: Intercept uX Statistics

Date: 31.08.2010 10:41:29

Event ID: 1001

Task Category: None

Level: Information

Keywords: Classic

User: N/A

Computer: mon-avi-sv.sib-mts.local

Description:

Cannot retrieve or create a performance counter named 'QuestionnaireDesignUI\% of Performance violations/sec'. Reason:

Type: System.UnauthorizedAccessException

Message: Access to the registry key 'Global' is denied.

Source: mscorlib

StackTrace: at Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str)

at Microsoft.Win32.RegistryKey.InternalGetValue(String name, Object defaultValue, Boolean doNotExpand, Boolean checkSecurity)

at Microsoft.Win32.RegistryKey.GetValue(String name)

at System.Diagnostics.PerformanceMonitor.GetData(String item)

at System.Diagnostics.PerformanceCounterLib.GetPerformanceData(String item)

at System.Diagnostics.PerformanceCounterLib.get_CategoryTable()

at System.Diagnostics.PerformanceCounterLib.GetCategorySample(String category)

at System.Diagnostics.PerformanceCounterLib.GetCategorySample(String machine, String category)

at System.Diagnostics.PerformanceCounterCategory.InstanceExists(String instanceName)

at Agent.CSMStatisticCounters.StatisticCountersManager.GetCsmPerformanceCounterForcingCreation(String counterName, String categoryInstanceName)

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.PrintFromInnerMethod(Exception exp, String message, String parameter, EntryType entryType)

at Agent.Common.CSYSConsoleBase.PrintFromInnerMethod(Exception exp, String message, EntryType entryType)

at Agent.CSMStatisticCounters.CSYSConsole.LogAnExceptionRethrowingCriticalsTracingStackIfItHasNotBeenLogged(Exception e, String additionalMessage, EntryType messageImportance)

at Agent.CSMStatisticCounters.StatisticCountersManager.GetCsmPerformanceCounterForcingCreation(String counterName, String categoryInstanceName)

at Agent.CSMStatisticCounters.StatisticCountersManager.IncrementNumberOfPerformanceViolations(String instance)

at Agent.Collector.Handlers.IncrementCounters.IncrementPerfViolations(CounterData counterData)

at Agent.Collector.Handlers.IncrementCounters.Increment(CounterData[] countersToUpdate)

at Agent.Collector.Handlers.IncrementCounters.OnDoWork(IContext context)

at Agent.Collector.Base.ModuleBase.DoWork(IContext context)

at Agent.Collector.Base.ModuleBase.DoWork(IContext context)

at Agent.Collector.Base.ModuleBase.DoWork(IContext context)

at Agent.Collector.Handlers.AsyncEventProcessor.AsyncProcessEvent()

at System.Threading.ExecutionContext.runTryCode(Object userData)

at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

at System.Threading.ThreadHelper.ThreadStart()

Agent version: 5.6.515.0

.NET Framework: v2.0.50727.4927

Cause:

ApplicationPoolIdentity user account has no enough permissions on the 'Global' registry key. Its preferred to use NetService user account with the CSM Collector application pool (Intercept app pool by default). In uX 5.7 it will be implemented as default user account for Intercept app pool.

Resolution:

But if the customer wants to use ApplicationPoolIdentity account with Intercept app pool, he should add this App pool user account to the "Performance Monitor Users" group:

Pay attention that in "Locations" the domain name of the system should be selected. By clicking "Check Names", IIS AppPool name will be displayed and it will be possible to add this account to the appropriate user group:

Applies to:

AVIcode Intercept uX 5.0 - 5.6SP1. In uX 5.7 NetService user account will be used with the CSM Collector application pool by default.

Windows Server 2008 R2

4. Intercept Advisor

4.1. [AAV5] Configuration Utility uses grant rights for the user, under which it runs, instead of one provided for accessing Advisor DB

Symptoms:

User that runs Configuration Utility differs from the one that must be used for accessing Advisor DB.

"Use as Windows credentials" is checked on the main form.

Advisor Configuration Utility creates the user account under which the configuration utility is running in Advisor DB and grants rights to it. It does not create required user account.

Cause:

Advisor Configuration Utility uses the user account under which it was started in scripts instead of provided for accessing reporting DB on the main utility window.

Resolution:

Start Configuration Utility under the user account which permissions will be used for Reporting DB access.

Applies to:

AVIcode Advisor 5.5 - 5.7

4.2. [AAV5] [HowTo] Advisor reports publishing configuration steps using Administrator and User credentials

Question:

You want to configure Advisor reports publishing in both different cases: using SQL server Administrator and User accounts.

In any case these accounts are used only to configure reports publishing, but while working with Advisor you may use other credentials (which are selected on the main SE-Viewer Configuration Utility form in the "Reporting Database" tab).

Answer:

To configure reporting publishing your account should have additional permissions.

Using Administration account

You can configure (in SE-Viewer Configuration Utility, "Reporting database" tab) Advisor reporting under the SQL server Administrator credentials inputted in the "Configuration Reporting Services" dialog.

If your current account is in SQL Administrator group, you can choose "Use Windows NT Integrated security".

Using User account

For reports publishing configuration you may also use SQL server User account. To do this you should follow these steps on the system with installed ReportServer:

1. Create new User account (this step can be passed if you want to use existing User account).

2. Open IIS.

3. Add all permissions to the new User account to "Reports" and "ReportServer" applications folders.

4. Open the ReportServer in browser (by default: "http://<computer name with installed ReportServer>/Reports").

5. Set the Administrator role to the new User account.

- Go "Site settings".

- Go "Configure site-wide security".

- Add a new account, type the user name and set Administrator role to this account.

6. Set to User account roles required for reports publishing and configuration.

- Go "Home" page.

- Open the "Properties" tab.

- Add a new account, type the user name and set the "Content Manager" role to this account.

Applies to:

AVIcode Advisor 5.5 - 5.7

4.3. [AAV5] Configuration with lots of SQL Agent Jobs created. Need to know the source of these jobs.

Symptoms:

You have a lot of SQL Agent Jobs created. You need to know the source of these jobs.

Cause:

Someone created a lot of SQL Agent jobs, for example AVIcode Advisor creates two types of jobs. To differentiate corresponding sources use the script from the resolution section.

Resolution:

Here is the script which determines the source of Agent Jobs (Please use the DB name of the real Report Server DB):

USE [ReportServer]

GO

SELECT SCHEDULEID AS JOB, CAT.PATH, SCH.EVENTTYPE, U.USERNAME AS CREATED_BY,

SUB.LASTRUNTIME

FROM SCHEDULE AS SCH LEFT JOIN SUBSCRIPTIONS AS SUB ON SUB.SUBSCRIPTIONID=SCH.EVENTDATA

LEFT JOIN CATALOG AS CAT ON CAT.ITEMID=SUB.REPORT_OID

LEFT JOIN USERS AS U ON U.USERID=SUB.OWNERID

WHERE CAT.PATH IS NOT NULL

UNION ALL

SELECT SCHEDULEID AS JOB, CAT.PATH, SCH.EVENTTYPE, U.USERNAME AS CREATED_BY,

LASTRUNTIME

FROM SCHEDULE AS SCH LEFT JOIN CATALOG AS CAT ON CAT.ITEMID=SCH.EVENTDATA

LEFT JOIN USERS AS U ON U.USERID=CAT.CREATEDBYID

WHERE CAT.PATH IS NOT NULL

ORDER BY EVENTTYPE DESC, PATH

GO

To see if jobs are related to AVIcode

There are two types of jobs which are created for Advisor reports:

1. Job on schedule for subscription (for each schedule or favorite created on the Advisor side). This job has event type "TimedSubscription"

2. Job favorite reports to clear cache (for each favorite report). This job has event type "CacheInvalidateSchedule"

The the following SQL Script should be saved in \AgentJobsSources.sql

-- Use the DB Name of the real Report Server DB

USE [ReportServer]

GO

SELECT SCHEDULEID AS JOB, CAT.PATH, SCH.EVENTTYPE, U.USERNAME AS CREATED_BY,

SUB.LASTRUNTIME

FROM SCHEDULE AS SCH LEFT JOIN SUBSCRIPTIONS AS SUB ON SUB.SUBSCRIPTIONID=SCH.EVENTDATA

LEFT JOIN CATALOG AS CAT ON CAT.ITEMID=SUB.REPORT_OID

LEFT JOIN USERS AS U ON U.USERID=SUB.OWNERID

WHERE CAT.PATH IS NOT NULL

UNION ALL

SELECT SCHEDULEID AS JOB, CAT.PATH, SCH.EVENTTYPE, U.USERNAME AS CREATED_BY,

LASTRUNTIME

FROM SCHEDULE AS SCH LEFT JOIN CATALOG AS CAT ON CAT.ITEMID=SCH.EVENTDATA

LEFT JOIN USERS AS U ON U.USERID=CAT.CREATEDBYID

WHERE CAT.PATH IS NOT NULL

ORDER BY EVENTTYPE DESC, PATH

GO

Applies to:

AVIcode Advisor 5.5 - 5.7

4.4. [AAV5] "Save as" dialog does not appear in Advisor Export procedure

Symptoms:

"Save as" dialog does not appear in Advisor Export procedure after you having selected desired format and clicked "Next". "Operation Completed Successfully" appears instead.

Cause:

Browser Security disables the automatic prompting for the download (or download files at all), so you are not able to choose or save something. Export Window receives control back and thinks that you applied all necessary steps - so it notifies you about the successful export.

Resolution:

Change security settings for the Advisor site zone (Do not worry about the "Unknown Zone" of the pop-up with "Save as: ").

You can choose from two approaches:

1. Set the Security level to Medium-Low for this zone. If this level configuration is not changed from default settings it will be enough action.

2. In case the Medium-Low security level was changed or in case the customer cannot use this security level by any reason the customer can configure necessary level options:

- Downloads/Automatic prompting for file downloads - to Enable

- Downloads/File download - to Enable

- Scripting/Active Scripting - to Enable

- Miscellaneous/Use Pop-up Blocker - to Disable (can be unnecessary step - try previous first)

Advisor 5.6.5 allows downloading files with enabled "Use pop-up Blocker" and disabled "Automatic prompting for file downloads". If "File Download" is disabled too - the warning about the security settings will be shown.

Applies to:

AVIcode Advisor 5.5 - 5.7.

4.5. [AAV5] Advisor separates application information on several rows in the "Resource Utilization Analysis"/"Application IO Utilization Analysis"

Symptoms:

Some customers have a problem with understanding aggregation on "Application CPU/Memory/IO Utilization Analysis" reports in case the one application take a place in the different report rows.

Cause:

Application resource utilization reports (IO/Memory/CPU) uses grouping by application pools in the following format:

ApplicationPoolName - Source1, Source2, Source3 Source

ApplicationPoolName - is taken from [SEViewerDW].[PCProcesses].[ extrainfo]

Source1...n - Sources run at this application pool (IIS process) for the reported time.

These names are taken from [SEViewerDW].[Source].[Source].

It is assumed that the source ran at the application pool if there is at least one counter from that source and IIS process of that pool.

If different servers have application pools with same name, but different sources set they would be grouped into different sets.

Resolution:

The simplest way to solve this problem is create for the monitored application (ideal approach) or application set the separated application pool with the same name on all hosts where this application (application set) is run.

Applies to:

AVIcode Advisor 5.0 - 5.7

4.6. [AAV5] Using specified user credentials instead of "everyone" for Reporting Service configuration

Symptoms:

You do not want to use the user "everyone" for the Reporting Service configuration due the internal security politic, etc.

Cause:

In case you do not want to use the "everyone" internal account (which will be used only if customer set the option "Use Windows NT Integrated security" for the Reporting Service authentication) you need to use the "specified user name and password".

Resolution:

You should do the following:

1. Create the user account on the host with Reporting Service (the domain user can be used).

2. Use this user account to configure the access to Reporting Service in the Configuration Utility.

Applies to:

AVIcode Advisor 5.0 - 5.7

4.7. [AAV5] [HowTo] Enable Excel export for Reports and Subscriptions (Scheduled reports)

Symptoms:

You want to have the reports exported in Excel format

OR

You want to create a scheduled report with Excel format.

Cause:

By default export to Excel is disabled in AVIcode Advisor due to limitations in Excel Export functionality in SSRS 2005.

SSRS 2005 Excel render does not support sub-reports within a table or data regions within a table. The the following reports will be affected by this limitation:

- All Main reports except "Application Status"

- All Resource reports

- All Problem Analysis reports except "Breakdown reports" and "Utilization" reports

- All Client reports except "Application Analysis"

In SSRS 2008 all the reports can be exported to Excel correctly.

Resolution:

To enable exporting in Excel from Advisor Export Wizard you should comment/delete the appropriate setting in "SEViewer.config" (C\Program Files\AVIcode\Intercept\SEViewer\):

- Find section "reporting" > "reportingServices" > "workspace" > "expor" > "exclude" > "render"

- Comment/delete "EXCEL" restriction like <!--<add name="EXCEL" />-->

- Save the file.

To enable subscriptions in Excel format you should modify "SWizardDelivery.aspx" file located in <SEVIEWER DIR>\Reporting\ARViewer\Pages\ScheduleManagement:

- Find "asp:DropDownList" tag with ID="ddlFormat"

- Uncomment and move into DropDownList "asp:ListItem" with Value="EXCEL"

- Save the file. Restart the application pool of Advisor in IIS (Intercept appPool by default).

Advisor 5.7 has EXCEL export in enabled state but with the warning about the limitations of Reporting Services 2005.

Applies to:

AVIcode Advisor 5.6 - 5.7

4.8. [AAV5] [Technical HowTo] AVIcode Advisor database diagram description for Advisor 5.6

Question:

This document describes the database schema for the AVIcode Advisor reporting product. The version of AVIcode Advisor that this document applies to is 5.6.322. If you are using a newer release of the product there may be a newer document describing the database. If you do have a newer product version, please check with Technical Support before relying on the information in this document.

Answer:

Specifically, this document provides schema diagrams and field information for the AVIcode Advisor Lookup, Auxiliary, Event and Performance Counter Tables.

Please see Appendix - Advisor Database Diagram at the end of either the AVIcode Intercept Studio User's Manual or the AVIcode Advisor User's Manual

Applies to:

AVIcode Advisor 5.6 - 5.7

4.9. [ISV5] The reports publication generates deadlock in ReportServer database

Symptoms:

The Configuration Utility publishes reports to the Reporting Services. You receive the following error in the "Configuration Reporting Service" dialog:

Test configuration failed: System.Web.Services.Protocols.SoapException: An internal error occurred on the report server. See the error log for more details. ---> Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details. ---> System.Data.SqlClient.SqlException: Transaction (Process ID 66) was deadlocked on lock resources with another process and has been selected as the deadlock victim. Rerun the transaction.

Cause:

Probably the reason deals with the conflict of working threads of a Reporting Server.

Resolution:

Try setting "MaxQueueThreads" to 1 in the "RSReportServer.config" file.

"MaxQueueThreads" parameter specifies the maximum number of threads dedicated to polling the event table in the report server database. Valid values range from 0 to maximum integer. The default is 0.

After reports publication it is necessary to change this parameter to reasonable value in order to prevent performance problems.

Applies to:

AVIcode Advisor 5.0 - 5.7

4.10. [AAV5] Incorrect resource type and resource details for remoting events

Symptoms:

Reporting transfers processed remoting resources as "Internal" and does not format it.

Cause:

Some reports calculate only events which are have resource type "Internal", "Web Service" or "Database". Because Reporting Service only uses "Database", "Web Service" and "Internal" resource types, reporting transfers processed remoting resources as "Internal" and does not format these resources.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.0 - 5.7

4.11. [AAV5] Computer and sources lists are cut while creating "Favorites wizard" summary

Symptoms:

Computer and sources lists are cut while creating "Favorites wizard" summary.

Cause:

Sources and computers lists are cut in the "Favorites" summary page when its count is too large.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.0 - 5.7

4.12. [AAV5] Ordering expands "by source" sections collapsed previously

Symptoms:

You see that ordering expands "by source" sections collapsed previously.

You may find this behavior, for example, by doing the following:

- Generate "Summary Size Analysis Report" for 3 sources

- Collapse sections regarding each source

- Order by "Page Size" for example

- See all section expanded again

Cause:

This case is treated by Reporting Service as new report generation.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.0 - 5.7

4.13. [AAV5] Configuration Utility does not save Windows user credentials for the reporting DB

Symptoms:

You may find this behavior by doing the following:

- Open the Configuration Utility, and go to the "Reporting" section

- Set the credentials for Windows user

- "Apply"

- Close Configuration Utility

- Open the Configuration Utility, and go to the "Reporting" section

- See that credentials are cleared

Cause:

Domain user name and password are not saved at all and you have to enter it each time the user publishes reports.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.5 - 5.7

4.14. [AAV5] "ProblemAnalysis: Hour of Day Utilization" report shows the wrong "Memory Usage History" graph when several applications are monitored under one application pool

Symptoms:

"ProblemAnalysis: Hour of Day Utilization" report shows the wrong "Memory Usage History" graph when several applications are monitored under one application pool.

Cause:

If two or more applications are run under the same "w3wp" process report "Memory Usage History" graph shows data for the time when the selected application was run.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.5 - 5.7

4.15. [AAV5] "Intercept Reporting Service terminated unexpectedly when transfer data" exception

Symptoms:

You receive the following exception:

"Intercept Reporting Service terminated unexpectedly when transfer data".

Cause:

This exception occurs when a network problem persists.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.0 - 5.6

4.16. [AAV5] In the "Application Daily Activity" report chart looks wrong: max value for the "Event/Request count" is shown for the previous hour, but really was later

Symptoms:

In the "Application Daily Activity" report chart looks wrong: max value for the "Event/Request count" is shown for the previous hour, but really was later.

Cause:

Application performance counters have different views in SE-Viewer and Advisor. They are shifted in time. Events and performance counters, occurred between 17:00 and 17:59:59, are aggregated to 17:00.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.0 - 5.7

4.17. [AAV5] "Application Daily Activity" report shows excess section for the web application source without an application pool

Symptoms:

"Application Daily Activity" report shows excess section for the web application source without an application pool.

Cause:

Concrete application cannot be associated with the application pool, when no data was collected for this source.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.0 - 5.7

4.18. [AAV5] In the "Application Status" report the wrong data is in message "Charts display information gathered from the next applications" when several web applications are monitored in several "w3wp" processes

Symptoms:

In the "Application Status" report the wrong data is in message "Charts display information gathered from the next applications". Despite the fact that application works into IIS Application Pool, report only shows Application Name.

Cause:

Concrete application cannot be associated with the application pool, when no data was collected for this source.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.0 - 5.7

4.19. [AAV5] During installation Intercept Service would be stopped automatically, but now installer shows screen with question about it

Symptoms:

During installation Intercept Service would be stopped automatically, but now installer shows screen with question about it.

Cause:

This message cannot be prevented because validation is performed before service is being stopped (in Windows Vista, Windows 2008).

Resolution:

By design.

Applies to:

AVIcode Advisor 5.0 - 5.7

4.20. [AAV5] If all sources and machines from "Favorites" are in group selection, "Favorite" should be shown immediately, but it does not

Symptoms:

Advisor specification use case about "Select application group for favorite" says: "If all sources and machines from favorite are in group selection, favorite should be shown immediately.", but it does not.

Cause:

This can occur if you have selected an application group that does not contain the necessary sources/computers before selecting correct application group.

State of "Favorites" when changing application group is saved. So when Advisor cannot generate "Favorites" after application group changes, it saves that report was not generated for this data. Then, when you switch to the correct application group, Advisor does not know that "Favorites" with this data was generated already and does not generate it immediately.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.6 - 5.7

4.21. [AAV5] "Problem Distribution Analysis" report does not show performance events

Symptoms:

The "Problem Distribution Analysis" report does not show performance events.

Cause:

Light performance events are not shown and hidden in this.

You can get light performance events via the following query:

select e.* from event e where

E.HEAVYLIGHT = 0 and e.eventclasstype = N'performance'.

Intercept Reporting Service in Advisor 5.7 does not transfer light events at all.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.5 - 5.6

4.22. [AAV5] "CSM/Summary Size Analysis" report cannot be exported to XML format and fails with an error

Symptoms:

"CSM/Summary Size Analysis" report cannot be exported to XML format and fails with the following error:

Reporting Service Log:

w3wp!webserver!3!10/05/2009-19:29:16:: e ERROR: Reporting Services error Microsoft.ReportingServices.Diagnostics.Utilities.RSException: An unexpected error occurred in Report Processing. ---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: An unexpected error occurred in Report Processing. ---> Microsoft.ReportingServices.ReportRendering.ReportRenderingException: An error occurred during rendering of the report. ---> System.NullReferenceException: Object reference not set to an instance of an object.

Event Log:

Event Type: Error

Event Source: Intercept Advisor

Event Category: None

Event ID: 0

Date: 10/5/2009

Time: 7:49:15 AM

User: N/A

Computer: EM-WIN2003

Description:

Message: The remote server returned an error: (500) Internal Server Error.

Source: System

Target Site: System.Net.WebResponse GetResponse()

Stack Trace: at System.Net.HttpWebRequest.GetResponse()

at Avicode.Intercept.SEManager.WebViewer.Pages.ReportServices.ReportingServiceRequest.GetResponse()

Message: /emakhmudova/Intercept Studio/AVIcode Advisor Reports/Client Side Monitoring/Summary Size Analysis:

Abs_StartDate : 09/27/2009 07:29:20

Abs_EndDate : 10/05/2009 18:23:11

Offset : -420

Source : 5...

machine : 1...

OrderBy : 7

Rel_StartDate : 0

Rel_EndDate : 0

AdvisorAddress : http://localhost:80/Advisor

Source: ARViewer

Target Site: System.Net.HttpWebResponse GetResponse()

Stack Trace: at Avicode.Intercept.SEManager.WebViewer.Pages.ReportServices.ReportingServiceRequest.GetResponse()

at Avicode.Intercept.SEManager.WebViewer.Pages.ReportServices.ReportingServiceDrawer.Avicode.Intercept.SEManager.Core.Services.ReportingServices.IReportDrawerEx.Draw(IReportServiceProvider provider, String format)

at Avicode.Intercept.SEManager.Core.Services.ReportingServices.ReportDrawerAdapter.OnDraw(String format, String& mimeType)

at Avicode.Intercept.SEManager.Core.Services.ReportingServices.ReportDrawer.Avicode.Intercept.SEManager.Core.Services.ReportingServices.IReportDrawer.Draw(String path, String format, String zoom, String& sessionID, String& mimeType)

at Avicode.Intercept.SEManager.WebViewer.Pages.ReportServices.Export.Page_Load(Object sender, EventArgs e)

at System.Web.UI.Control.OnLoad(EventArgs e)

at System.Web.UI.Control.LoadRecursive()

at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Message: Exception of type 'System.Web.HttpUnhandledException' was thrown.

Source: System.Web

Target Site: Boolean HandleError(System.Exception)

Stack Trace: at System.Web.UI.Page.HandleError(Exception e)

at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

at System.Web.UI.Page.ProcessRequest()

at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)

at System.Web.UI.Page.ProcessRequest(HttpContext context)

at ASP.pages_reportservice_export_aspx.ProcessRequest(HttpContext context)

at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

.NET Framework: 2.0.50727.1433

Advisor: 5.6.314.0

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Cause:

Using Reporting Server 2008 this is not reproduced with the same databases (looks like this issue was fixed by Microsoft, but unfortunately it was not found any information about it in MSDN).

This issue is considered to be related to Reporting Server 2005.

Resolution:

By design.

Applies to:

AVIcode Advisor 5.6 - 5.7

Reporting Server 2005

5. SCOM 2007 Management Pack

5.1. [OPSMGR2007V5] Reports do not open with the error: "System.ArgumentOutOfRangeException: Value of '1/1/0001 12:00:00 AM' is not valid for 'Value'. 'Value' should be between 'MinDate' and 'MaxDate'".

Symptoms:

You receive error like the following one on opening the report:

Date: 29/7/2009 9:13:38 PM

Application: System Center Operations Manager 2007 R2

Application Version: 6.1.7043.0

Severity: Error

Message: Cannot initialize report.

System.ArgumentOutOfRangeException: Value of '1/1/0001 12:00:00 AM' is not valid for 'Value'. 'Value' should be between 'MinDate' and 'MaxDate'.

Parameter name: Value

at System.Windows.Forms.DateTimePicker.set_Value(DateTime value)

at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.Parameters.Controls.ReportDatePicker.LoadValue(ReportParameterInfo parameter)

at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.Parameters.Controls.ReportStandardParameterEditorBase.LoadValues(ReportParameterInfoCollection reportParameters)

at Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.Parameters.ReportParameterBlock.LoadValues()

at Microsoft.EnterpriseManagement.Mom.Internal.UI.Console.ReportForm.SetReportJob(Object sender, ConsoleJobEventArgs args)

Cause:

This problem occurs when the user manually changes the "Short Date Format" in the "Regional and Language Options" and this format does not equal with default format for the user's culture.

This is a bug in the Microsoft control "Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.DateTimePicker".

Resolution:

You must prepare a new Reporting Management Pack with all controls: "Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.DateTimePicker" replaced with "Microsoft.SystemCenter.DataWarehouse.Report.ParameterControl.TextBox".

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.1 - 5.7

5.2. [OPSMGR2007V5] [Tips] [HowTo] Set the SE-Viewer location for the specified computers

Question:

You need to set the SE-Viewer location for the specified computers.

Answer:

To change the automatically assigned SE-Viewer address for a host you need to:

- Override the rule as shown on the image below:

a. "Change scope" to the "Windows Computer" on the "Rules" tab

b. Override "Enable enterprise mode" rule - then you can Choose the appropriate group in the "For a group" menu or you can choose a separate computer in the "For a specific object of class: Windows Computer" menu:

c. choose an appropriate group or a computer to apply new settings (groups menu or a computers menu will appear depending on the previous selection):

d. Set up the appropriate "Override Value" in SE-Viewer Location (Domain/NetBIOS name depending on your network settings):

e. Do not use the "Default management pack" as destination management pack to avoid possible inconsistencies - choose/create another one (e.g. "AVIcode Overrides");

f. Apply the changes.

4. Run the task "Upgrade Enterprise Agent" on the corresponding "Enterprise .NET Monitoring Agent" object:

These steps will apply new SE-Viewer location for the selected host(s).

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.1 - 5.7

5.3. [OPSMGR2007V5] There is different functions parameters' order in SCOM events and SE-Viewer events

Symptoms:

There is different functions parameters' order in SCOM events and SE-Viewer events.

Cause:

This is an internal logic difference in parameters representation.

Resolution:

By design.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.1 - 5.7

5.4. [OPSMGR2007V5] For some added applications in root of "Monitoring" view appears empty folder

Symptoms:

For some added applications in root of monitoring view appears empty folder.

Cause:

Two folders appear with name of added application - in the ".NET Applications subfolder" (as it should) and in root folder:

Resolution:

By design.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.1 - 5.7

5.5. [OPSMGR2007V5] Added executable through SCOM affects all executables with this name

Symptoms:

Executable application added through SCOM affects all executables with this name.

Cause:

Added executable through SCOM affects all executables with this name, because no "use path" parameter is used. This parameter can be changed via the Intercept Management Console.

Resolution:

By design.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.1 - 5.7

5.6. [OPSMGR2007V5] Management Pack cannot display dashboard pages when SE-Viewer runs in secure mode

Symptoms:

Management Pack cannot display dashboard pages when SE-Viewer runs in secure mode.

Cause:

Management Pack and SE-Viewer should be configured in the way when SE-Viewer user is similar to OpsMgr user.

Resolution:

By design.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.1 - 5.7

5.7. [OPSMGR2007V5] "DataItemDoesNotExistException" warning from Health Service Modules

Symptoms:

You receive the following warning:

Event Type: Warning

Event Source: Health Service Modules

Event Category: None

Event ID: 31405

Date: 10/24/2008

Time: 21:57

User: N/A

Computer: MMINKIN

Description:

Group membership calculation encountered exception -- retrying: Microsoft.EnterpriseManagement.Common.DataItemDoesNotExistException: ManagedTypeId = 738a5240-8099-562f-26af-90c8492ae324

at Microsoft.EnterpriseManagement.Mom.DataAccess.TypeSpaceCache.GetAllDerivedTypesAndSelf(Guid managedTypeId)

at Microsoft.EnterpriseManagement.Mom.DatabaseQueryModules.IncrementalCalculation.GetSubscriptionDependencies(Dictionary`2 membershipSubscriptionIdMap, Dictionary`2 membershipTargetTypeMap, Dictionary`2 membershipHostingTypeMap, Dictionary`2 membershipContainsTypeMap)

at Microsoft.EnterpriseManagement.Mom.DatabaseQueryModules.IncrementalCalculation..ctor(Dictionary`2 membershipSubscriptions)

at Microsoft.EnterpriseManagement.Mom.DatabaseQueryModules.MembershipCalculationManager.IncrementalCalculations(DateTime timestamp, DatabaseConnection databaseConnection)

at Microsoft.EnterpriseManagement.Mom.DatabaseQueryModules.MembershipCalculationManager.ChangeNotificationCalculation()

at Microsoft.EnterpriseManagement.Mom.DatabaseQueryModules.MembershipCalculationManager.ChangeNotificationThreadMethod()

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Cause:

This warning appears when the Management Pack was deleted.

Resolution:

By design.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.1 - 5.7

5.8. [OPSMGR2007V5] Custom counters reveal after deleting

Symptoms:

Custom counters reveal after deleting.

Cause:

When the application template is resaved, counters are recreated again.

Resolution:

By design.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.1 - 5.7

5.9. [OPSMGR2007V5] In PerfDataSource initialization fails with the error "Unspecified error".

Symptoms:

You receive the following in the Event Log:

Event Type: Warning

Event Source: Health Service Modules

Event Category: None

Event ID: 10102

Date: 21.05.2009

Time: 20:58:08

User: N/A

Computer: WIN2003R2RB

Description:

In PerfDataSource, could not resolve counter SQLServer:Wait Statistics, Lock waits, All Instances. Module will be unloaded.

One or more workflows were affected by this.

Workflow name: CustomCounter.b4ef8f168c2646bda9e0eea400731d6f

Instance name: Application monitoring: Duwamish7

Instance ID: {E0966A1C-7F16-CD27-E2C3-46D973A54450}

Management group: ok-scom07r2

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Event Type: Error

Event Source: Health Service Modules

Event Category: None

Event ID: 10143

Date: 21.05.2009

Time: 20:58:08

User: N/A

Computer: WIN2003R2RB

Description:

In PerfDataSource, Initialization failed with error 'Unspecified error'.

Module is being unloaded.

One or more workflows were affected by this.

Workflow name: CustomCounter.b4ef8f168c2646bda9e0eea400731d6f

Instance name: Application monitoring: Duwamish7

Instance ID: {E0966A1C-7F16-CD27-E2C3-46D973A54450}

Management group: ok-scom07r2

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Event Type: Warning

Event Source: HealthService

Event Category: Health Service

Event ID: 1103

Date: 21.05.2009

Time: 20:58:08

User: N/A

Computer: WIN2003R2RB

Description:

Summary: 1 rule(s)/monitor(s) failed and got unloaded, 1 of them reached the failure limit that prevents automatic reload. Management group "ok-scom07r2". This is summary only event, please see other events with descriptions of unloaded rule(s)/monitor(s).

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Cause:

This is stable behavior of OpsMgr when performance category does not exist.

Resolution:

By design.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.1 - 5.7

5.10. [OPSMGR2007V5] Computers added to "Application Discovery", "Agent Deployment", "Collector Discovery" groups, disappear during upgrade of Management Pack

Symptoms:

Computers added to "Application Discovery", "Agent Deployment", "Collector Discovery" groups, disappear during upgrade of Management Pack.

Cause:

An ability of merging Management Pack configuration is not provided by design.

Resolution:

By design.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.1 - 5.7

5.11. [OPSMGR2007V5] "Sharepoint" application may not have transactions

Symptoms:

"Sharepoint" application may not have transactions.

Cause:

Adding transactions for "Sharepoint" application is denied because it stores all files in SQL and the user cannot select the physical file from disk. If the user wants to monitor some transaction for "Sharepoint" he should write its name without "Assembly Inspector".

Resolution:

By design.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.6 - 5.7

5.12. [OPSMGR2007V5] Unable to specify Ajax/WCF Threshold on Client Side Monitoring wizard in SCOM

Symptoms:

You are unable to specify Ajax/WCF threshold in the Client Side Monitoring wizard in SCOM.

Cause:

An ability to specify Ajax/WCF threshold is not provided by design.

Resolution:

By design.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.6. This ability was added for version 5.7.

5.13. [OPSMGR2007V5] Column name "Description" does not show extended data in the "All Events" view

Symptoms:

Column name "Description" does not show extended data in the "All Events" view.

Cause:

The reason deals with internal logic of event representation. By default this column is hidden.

Resolution:

By design.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.7

5.14. [OPSMGR2007V5] Monitoring of web application by Agent added to deployment group is not started

Symptoms:

You may find this issue, for example, by having followed these steps:

- You have server with Intercept Agent deployed on it

- This server is not included in the .NET Enterprise Agent deployment group

- Monitoring on .NET Enterprise Agent is disabled

- Add this server to .NET Enterprise Agent deployment group

- SCOM configured to monitor some web applications which exist on Agent machine

- Server monitoring of Agent is not started

Monitoring status is defined as "enabled", but in the MMC it is disabled:

Cause:

This is current architecture design: currently correct state "disabled" should be shown and the user will understand that he should run the task "Resume Monitoring" for concrete application.

Resolution:

Behavior by design.

Workaround - use the task "Resume monitoring application" on one of monitored application instances.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.0 - 5.6

That is how it works for now:

- User has 2 web applications added to monitoring

- User uses "Stop all applications monitoring" task

- User enables task "Resume monitoring application" for 1 web application

- Both previously added web applications added for monitoring

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.6 SP1 - 5.7

5.15. [OPSMGR2007V5] Client endpoints or application are not discovered after the discovery interval.

Symptoms:

Client side endpoints or added applications are not discovered after the discovery interval.

Cause:

For version 5.7 client endpoints are the applications already added for monitoring by using client console.

Client applications added on client monitoring through SCOM (before update by using 5.6.SP1 version, for example) but not added in the client console will not be discovered.

Resolution:

In the "Intercept uX Console" check that client monitoring is enabled and application is added on client side monitoring.

For added application client side event should be generated, that will initiate discovery process.

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.7

5.16. [OPSMGR2007V5] [HowTo] Change the discovery intervals for an application.

Question:

You need to set the discovery interval for an application.

Answer:

For Enterprise Management Pack with version less than 5.6 SP1:

Open "SCOM" console "Authoring""Management pack objects" "Object Discoveries"

- Override the appropriate application discovery

- Set up the appropriate "Interval Seconds"

For the Enterprise Management Pack with version 5.6 SP1 or 5.7:

Open "SCOM" "Authoring""Management pack objects""Rules"

- Override the rule as shown on the image below:

- "Change scope" to the "Windows Computer" on the "Rules" tab

- Override the "Initiate application discovery" rule - then you can choose an appropriate group in the "For a group" menu or you can choose a separate computer in the "For a specific object of class: Windows Computer" menu:

- Set up the appropriate "Interval Seconds"

- Do not use "Default management pack" as destination management pack to avoid possible inconsistencies - choose/create another one (e.g. "AVIcode Overrides")

- Apply the changes

5.17. [OPSMGR2007V5] Event Based Discovery

Question:

Starting from the version 5.6 SP1 event based discovery was added to Enterprise Monitoring Management Pack and Enterprise Client Monitoring Management Pack. It works a bit differently for version 5.6 SP1 and 5.7. This article describes possible events appeared in the log during discovery.

Answer:

Event based discovery for 5.6 SP1

.NET Management Pack:

1) After installation, endpoints should be discovered. It works by the following events:

- "Endpoints are going to be refreshed": 19993.

- "New configuration became active": 1210.

By default 19993 event appears once per 4 hours.

2) Agent discovery is event based. It works by the following event:

- "The Enterprise .NET Monitoring Agent check has been started": 19994.

By default this event appears once per 4 hours. If agent is not installed deployment will not be started by this discovery.

3) Add application for monitoring. Application discovery is event based discovery. It works by events:

- "New configuration became active": 1210.

- "Application configuration $Application name$ has been changed": 19982.

- "Enterprise agent has been deployed successfully": 20000.

By default 19982 event appears once per 4 hours.

4) During the first application discovery agent is not installed yet. As a result the following discovery event will appear:

- "Enterprise mode is being enabled. To check the current mode refer to the .NET monitoring agent instance properties under the "AVIcode .NET Application Monitoring\Monitoring Agent State" view.": 19998.

By this event agent deployment will be started. After Agent is successfully deployed the following events will appear:

- "The Enterprise .NET Monitoring Agent check has been started": 19994.

- "Enterprise agent has been deployed successfully": 20000.

As a result new discoveries of applications and Agent will be started.

5) When the application is discovered for the first time the following event should appear:

- "Client Endpoints are going to be refreshed": 19983.

uX Management Pack

1) Collector Discovery

Event: "Collector check has been started": 19984.

Caused:

- Every 4 hours

- During collector discovery the wrong version of Subscriber or lobMapper was found or was not installed at all event "The AVIcode Intercept uX Monitoring is being enabled": 19995 will appear in the Event Log and installation or upgrade process for Subscriber or lobMapper will be started. In the end of this process event "Collector check has been started" will appear.

- By event "New configuration became active": 1210.

2) Application Discovery:

Event: "Application '$Config/ApplicationName$ (Client)' is available for client-side monitoring": 19981.

Caused:

- Once per 4 hours

- When event appears in WMI

- By event "New configuration became active": 1210.

3) Injector discovery:

Event: "Client application configuration " & applicationName & " has been changed": 19986.

Caused:

- As a result of the tasks "StartMonitoring" and "StopMonitoring" execution

- Once per 4 hours

- By event "New configuration became active": 1210.

4) Client endpoints discovery:

Event: "Client Endpoints are going to be refreshed": 19983.

Caused:

- Once per 4 hourse

- By events from the Enterprise Management Pack

- By event "New configuration became active": 1210.

Event based discovery for 5.7

In the 5.7 version were added the following events:

- "Management pack was updated. Discovery will be refreshed": 19982 (appears with 1 minute delay after event 1201 with any message).

- "AVIcode.DotNet.SystemCenter.Client.Monitoring.Overrides management pack was updated": 19982 (appears with 1 minute delay after event 1201 with message "New Management Pack with id:"AVIcode.DotNet.SystemCenter.Client.Monitoring").

- "AVIcode.DotNet.SystemCenter.Enterprise.Monitoring.Overrides management pack was updated": 19981 (appears with 1 minute delay after event 1201 with message "New Management Pack with id:"AVIcode.DotNet.SystemCenter.Enterprise.Monitoring").

These events are used for the discoveries as replacement of system event 1210 which was used in 5.6 SP1.

Client endpoints discovery logic was changed too. For this version client endpoints are applications added for monitoring via the Intercept uX Console.

.NET Management Pack

uX Management Pack

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.6SP1 and 5.7

5.18. [OPSMGR2007V5] Monitoring COM+ components over the AVIcode .NET Enterprise Management Pack for SCOM 2007

Question:

User wants to monitor COM+ components over the AVIcode .NET Enterprise Management Pack for SCOM 2007.

Answer:

"AVIcode .NET Management Pack for Operations Manager 2007" is intended for monitoring states of the following types of applications (Executable Applications, Window Services, ASP.NET Applications, Web Services, ASP.NET Client Side Applications):

For these types there are appropriate compatible dashboards implemented into SCOM console. Unfortunately COM+ is not supported for monitoring using AVIcode Management Pack integration over SCOM. So it is not possible to monitor COM+ applications using the Management Pack.

But the user can monitor .NET performance/exception violations of NET-based COM+ applications by standalone version of Intercept Studio installed on the server and get events in SE-Viewer after adding these applications in the MMC console:

In SCOM console.NET Event there is a link to SE-Viewer path to navigate it:

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.6 - 5.7.

5.19. [OPSMGR2007V5] [HowTo] Change Framework version by overriding the appropriate Management Pack rule

Question:

User wants to change Framework version, which will be automatically set for all computers with discovered "Enterprise .NET Monitoring Agent". Also this version will be automatically overridden by set value in case the user modifies it manually in the configuration file.

Answer:

"AVIcode .NET Management Pack for Operations Manager 2007" has the special rule which sets Framework version for all computers with discovered "Enterprise .NET Monitoring Agent" in some period of time. The Management Pack automatically tests that AVIcode has tested your installed version of the .NET Framework with the monitoring Agents to verify compatibility. If your .NET Framework version has not been tested, an alert will appear that says application monitoring has been disabled because the .NET Framework version has not been verified, and to notify AVIcode about the problem. Once AVIcode has been notified, .NET Framework support can be enabled via the rule overrides.

In order to modify this rule you should:

- Open the SCOM console

- Select "Rules"

- In the "Rules" window, select "Change Scope" (or click the appropriate button on the toolbar)

- Select "View All Targets"

- Find and check "Enterprise .NET Monitoring Agent"

- Click "Ok"

- Select the "Set .NET Framework" version and select the override rule

- Select "Overrides""Override the Rule" make selection for all objects, a group, or a specific instance

- Select the "Override" checkboxes to the all fields you want to override

- Change the "Override" fields with correct values

- Select a destination management pack to save overridden values (it is strongly recommended not to use the "Default Management Pack", but select the "AVIcode .NET Enterprise Management Pack for Operations Manager 2007 Overrides" or create new Management Pack and select it)

- Click "Ok"

Applies to:

AVIcode .NET Enterprise Management Pack for SCOM 2007 5.6 - 5.7.

6. AVIcode Visual Studio Plug-in

6.1. [ISV5] Visual Studio Plug-in issues with UAC and Protected Mode of Internet Explorer on Windows Vista/Win2008

Symptoms:

1. The VSPlugin launches a new instance of the Visual Studio per click on the source code link despite links are in the same solution. You have Windows Server 2008/Vista and Internet Explorer runs in Protected Mode (you can see notification in the right-bottom corner of IE window).

OR

2. VSPlugin launches a new instance of the Visual Studio despite the same solution is already opened by another user. You have Windows Server 2008/Vista with UAC Enabled.

OR

3. VSPlugin reports "Cannot open Visual Studio" and "SE-Viewer Visual Studio Integration is not properly configured on the system" on opening a source code link. You have Windows Server 2008/Vista with UAC Enabled.

Cause:

1. Protected Mode of the IE prevents Visual Studio Plug-in from accessing an instance of Visual Studio that was already opened.

2. "VSPlugin run from IE" and "already opened Visual Studio" have different Privilege Levels. In this case new instance of Visual Studio will created with corresponding Integrity Level.

3. "Devenv.exe" (VS process) can only be run with higher rights than Visual Studio Plug-in has. For example, "Run this program as Administrator" was selected in the "Devenv.exe" executable file properties.

Resolution:

1. Disable Protected Mode in IE for the Zone of SE-Viewer Web Site or move the SE-Viewer Web Site to the Zone with disabled Protected Mode.

Open Internet Explorer"Tools""Internet Options": "Security" Tab:

OR

Run Internet Explorer under Administrator ("Run as Administrator") to only work with SE-Viewer Web Console - do not use Administrator rights for suspicious sites.

2. Check, if Visual Studio with opened solution has Integrity Level higher or lower than Internet Explorer. For example, Visual Studio run as Administrator, but Internet Explorer does not and vice versa. You should correlate Levels of the processes: for example if VS under Administrator, you should run IE under Administrator to have rights for this VS instance or work with newly created instance of VS according to real IE Level.

3. See, if you have "Privilege level: Run this program as Administrator" selected on "Compatibility" tab of "devenv.exe" properties. If so, you should run Internet Explorer as Administrator or disable "Run This Program as Administrator" in the "devenv.exe properties" ("C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\" folder).

Applies to:

AVIcode Visual Studio Plug-in 5.0 - 5.7 for Visual Studio.

Windows Server 2008/Vista with UAC enabled

7. Common Issues

7.1. [ISV5] Troubleshoot "is_ie6up is undefined" error on the SE-Viewer/Advisor page

Symptoms:

You receive attached JavaScript error on SE-Viewer/Advisor Web Console opening.

Cause:

One of the possible reasons: "Static Content" feature is not selected for IIS7 installation. In this case IIS will not work correctly with some "Static content".

Resolution:

Add "Static Content" feature to your IIS7 installation. You can find it under the "Common Http Features" list under the "World Wide Web Services" IIS feature.

Applies to:

AVIcode Intercept SE-Viewer/Advisor 5.0 and 5.5. Friendly message about insufficient IIS prerequisites were implemented on installation or starting phase of SE-Viewer experience in later releases.

7.2. [ISV5] Troubleshoot "The description for Event ID 11001 from source MsiInstaller cannot be

found. " error during SE-Viewer/Advisor/CSMCollector product installation

Symptoms:

Installation of the AVIcode SE-Viewer/Advisor/CSMCollector product fails. You receive the following error in the Application Event log from the MsiInstaller:

Log Name: Application

Source: MsiInstaller

Date: 6/16/2009 3:02:37 PM

Event ID: 11001

Task Category: None

Level: Error

Keywords: Classic

User: domain\user

Computer: name.domain.com

Description:

The description for Event ID 11001 from source MsiInstaller cannot be

found. Either the component that raises this event is not installed on

your local computer or the installation is corrupted. You can install or

repair the component on the local computer.

If the event originated on another computer, the display information had

to be saved with the event.

The the following information was included with the event:

Product: AVIcode Intercept SEViewer 5.5 -- Error 1001.

(NULL)

(NULL)

(NULL)

(NULL)

the message resource is present but the message is not found in the

string/message table

Cause:

"Management Tools" feature is not selected for IIS7 installation.

Resolution:

Add "Management Tools" feature to your IIS7 installation:

Applies to:

AVIcode Intercept SE-Viewer/Advisor 5.0 and 5.5, CSMCollector 5.5

7.3. [ISV5] E-mail notification fails down with Anti-Virus installed (for example, Microsoft Forefront AV)

Symptoms:

You have notgot e-mail notifications from the AVIcode SE-Viewer or Advisor products being configured. You have anti-virus software installed, for example Microsoft Forefront AV.

Cause:

Microsoft Forefront AV (or similar configured AV software) scans AVIcode folders and detects the AVIcode products sending e-mails as a threat.

This case notification e-mails will not reach recipients.

Resolution:

Change settings of the Microsoft Forefront AV or another Anti-Virus software you use in the following way:

- Exclude SE-Viewer Installation Directory from the scans

- Restart the SE-Viewer and Advisor Application pools ("Intercept" by default)

Also, changing of the trust level for the blocked AVIcode components can help.

Applies to:

AVIcode SE-Viewer/Advisor 5.6 - 5.7

7.4. [ISV5] SE-Viewer/Advisor "Authenticate.aspx" page stays blank/gray without any controls. There is no redirection to dashboards.

Symptoms:

You cannot open the SE-Viewer page in the browser. Screen stays empty and "./SEViewer/Pages/Authenticate.aspx" is displayed as the query string.

Cause:

Browser security settings do not allow "Active Scripting". This is default setting for the "Restricted Zone" and "Internet Zone" with "High" security enabled.

Resolution:

You should do either:

- Change security settings of the Browser to allow Active Scripting (Internet Explorer: "Tools""Internet Options""Security""Custom Level""Active Scripting""Enable""OK").

OR

- Add SE-Viewer site to "Local Intranet" Zone or to "Trusted Sites" Zone. Default security settings for these Zones allow scripts to be executed.

Applies to:

AVIcode SE-Viewer/Advisor 5.5 - 5.7

7.5. [ISV5] [Technical HowTo] Maintaining recommendations for the SE-Viewer and Advisor DBs running on SQL Server 2005 and SQL Server 2008

Question:

This document provides recommendations for maintaining the SE-Viewer and Advisor databases running on SQL Server 2005 and SQL Server 2008.

Answer:

The goal of implementing a database maintenance plan is to help prevent the following kind of problems:

- Drastic drops in query performance

- Servers running out of disk space

- Databases becoming corrupt with no backups to restore

If implemented correctly, a database maintenance plan can help ensure that a SQL Server's databases perform adequately and, if there should be a problem, provide the necessary backups to minimize the loss of any data. A good maintenance plan often reduces the time spent troubleshooting problems.

Specifically, this document covers:

- Maintaining Statistics

- Maintaining Database Indices

- Verifying the Integrity of the Database

- Backing Up the Database

- Removing Old Backups

Please see the Database Maintenance section of this manual for more information.

Applies to:

AVIcode SE-Viewer/Advisor 5.5 - 5.7

7.6. [ISV5] [Technical HowTo] AVIcode solution Performance and Scalability Guide

Question:

This document describes general performance and scalability guidelines for AVIcode Intercept Studio and AVIcode Advisor (the term "AVIcode Solution" will be used throughout the rest of this document to refer to one or both of these products), and recommends hardware configurations for a variety of loads.

Answer:

AVIcode Solutions are built to be flexible and scalable, so the hardware requirements for your specific scenario may be more or less than the suggested guidelines presented in this document. A discussion of the factors affecting the performance of each AVIcode Solution component is presented so that you can adapt these guidelines to your specific requirements.

The purpose of this document is to aid you in:

- Implementing an AVIcode Solution and estimate the cost for the hardware

- Monitor more servers and applications with Intercept Agents

- Increase the performance of your AVIcode Solution

- Increase the availability of your AVIcode Solution, since events can be missed under a high load or in the event of database server failures.

Please see the AVIcode Solution Performance and Scalability Guide in this manual for more information

Applies to:

AVIcode Intercept Studio/Advisor 5.6 - 5.7

7.7. [ISV5] [Technical HowTo] Install and configure Microsoft SQL Server 2008 Express Edition for the SE-Viewer and Advisor DBs

Question:

This document describes the step by step installation and configuration process for installing MSSQL Express for AVIcode Intercept SE-Viewer and Advisor.

Answer:

Please see The DatabaseConfigure for SQL Express in this manual

Applies to:

AVIcode Intercept Studio/Advisor 5.0 - 5.7

7.8. [ISV5] [Technical HowTo] Install and configure Microsoft SQL Server 2005 Express Edition for the SE-Viewer and Advisor DBs

Question:

This document describes the step by step installation and configuration process for installing MSSQL Express for AVIcode Intercept SE-Viewer and Advisor.

Answer:

Please see The DatabaseConfigure for SQL Express in this manual

Applies to:

AVIcode Intercept Studio/Advisor 5.0 - 5.7

7.9. [ISV5] Calculating database storage needs for the SE-Viewer and Advisor DBs

Question:

The the following knowledgebase article applies to the attached spreadsheet which is used for calculating SE-Viewer and Advisor DBs storage needs.

Answer:

The main goals of the Scalability excel spreadsheet are:

- Predict storage size and storage period with SE-Viewer default settings based on the environment metrics such as number of applications and number of servers.

- Propose custom settings of SE-Viewer that allow us to save all the data for a custom period

- Predict custom settings more closely to real environment

- Predict storage size of Advisor database based on the metrics calculated for the SE-Viewer and environment metrics

Main Information

This document is divided into 2 sheets:

- SE-Viewer General Information sheet: Contains information for the SE-Viewer application, database

- Advisor General Information sheet: Contains information for the Advisor application, database

In the following sections these sheets will be described in the details.

Notes

- Ensure that your copy of the spreadsheet is compatible with the version of SE-Viewer and/or Advisor that you are using.

- Do not forget to enable macros after opening the document. Otherwise the document will not be able to re-calculate metrics after the configuration changes.

Go "File""Options": "Trust Center" tab:

- Any value in that document that is marked with green is configurable and can be overridden with your custom value. Any value that is marked with red is a metric that will be calculated based on the "green" values.

- Some parameters are collapsed by default. These parameters are calculated based on a number of customer databases and in most cases it is not necessary to change them (unless you have collected metrics from your environment).

- Some metrics are also collapsed by default. There are more specialized metrics that can be used to understand database filling more accurately.

- You can move your mouse over any parameter name in the spreadsheet and read the description of that parameter.

Columns

Default Configuration

The Default column should be used when the default configuration has not been changed for the Agent, SE-Viewer or Advisor. The event parameters are based on the average values for customer databases, and only the Environment Information for Server Count, Application Count and Average Servers per Application should be changed.

Advanced Configuration (SE-Viewer Only)

The Advanced column should be used when namespaces are enabled because of the larger event sizes. The calculations are almost the same as those for the Default Configuration, but the average event size (Average binary size of performance event and Average binary size of exception event) is doubled.

Current

The Current column is a read-only column that holds your current data and allows you to compare it to the values predicted in the Projection column. AVIcode provides a script to fill in this column with actual current data from your SE-Viewer/Advisor database. Please contact Technical Support for this script.

Projection

Use this column to do initial estimates for the database size. Specify the number of servers, number of applications, and number of servers hosting each application. Based on this information, the spreadsheet will estimate how many events will be generated for the storage period, which, by default, is 7 days. Additional calculations are made for the number of performance counters that will be collected, traffic/rate times, and total database size.

If you have already collected metrics from your environment and saved them in the "Current" column, you should replace default values from the "Event Monitoring Parameters" section and "Performance Counter Collection" section with values from the "Current" column.

The database size analysis workbook for V5.6  is available for download from http://download.microsoft.com/download/B/C/C/BCC67B5B-8C73-4867-A151-F40A49AC253F/Databases size analysis(ver 5.6).xlsm, and for 5.7 from http://download.microsoft.com/download/B/C/C/BCC67B5B-8C73-4867-A151-F40A49AC253F/Databases size analysis.xlsm

Applies to:

AVIcode Intercept Studio/Advisor 5.6 - 5.7

7.10. [ISV5] [HowTo] Add custom performance counters to be collected by Agent and represented in SE-Viewer and Advisor products

Question:

You need to add custom counters to be collected by Agent and represented in SE-Viewer and Advisor products.

Answer:

To add custom performance counters to Advisor and represent them in the reports) you need to do several actions:

- Add custom counter to the list of monitored counters

- Transfer this counter to the Advisor

- Create new/change old reports to show this counter

1. Add custom counter to the list of monitored counters

1.1 Add configured custom counter

The list of counters, which are configured in the SE-Viewer to monitor, but are not monitored by default, is big enough and you can try to add the custom counter by the agent MMC console at the first action:

a. Open the MMC Console

b. Open the properties on the "Applications" level

c. Go to the "Performance Counters" tab and click on "Advanced... " button

d. Add a new counter via "Add... " button

Custom (dynamic) counters are only added on computer level and cannot be mapped to application or process instance.

1.2 Add a new custom counter

Some customers need to add to monitor counters that are not configured to monitor in the SE-Viewer configuration files.

If you want to add this type of counter you need to:

a. Open "PerfCounterMonitor.config" from "\Configuration\Standard" folder

b. Add a new counterDefinition tag with a unique id attribute in the <ss:counterDefinitions> section

For example:

<ss:counterDefinitions>

...

<ss:counterDefinition id="1350" object="MyMultipleCategory" name="Counter1" edit="false" measure="no suffix"/>

<ss:counterDefinition id="1351" object="MyMultipleCategory" name="Counter1" edit="false" measure="no suffix"/>

</ss:counterDefinitions>

c. Fill all attributes (all of them are required) corresponding to the selected performance counter

d. Save configuration file and close it

e. Go to step 1.1 to add this counter to monitor

Now you are able to add custom counters to monitoring:

Each counter has a definition in "PerfCounterMonitor.config" in the following format:

<ss:counterDefinition id="1" object=".NET CLR Data" name="SqlClient: Current # pooled and nonpooled connections" edit="true" measure="connections"/>

Attributes meaning:

id - ID of counter definition, should be unique for the entire configuration file

object - performance counter category

name - performance counter name (should belong to ,performance counters group defined in the object attribute). Name should be defined without instance.

edit - "true" if this performance counters group supports instances.

In some situations, categories are further subdivided into instances. Instances track data about multiple occurrences of the object that a category relates to. It is important to note that instances apply t the whole category, rather than to individual counters. All counters within a category have each instance defined for the category. For example, the "Process" category contains instances called "Idle" and "System". Each counter within the "Process" category specifies data in these two ways, showing information about either idle processes or system processes. And for example "System" performance category does not support instances.

measure - should display unit of performance counter. Default value is "no suffix". The value of this attribute is used for consolidation on the SE-Viewer Server.

After adding custom counters you should restart the "Intercept service" to receive them with new performance events.

1.3 See new counter in SE-Viewer

After actions which are described above the new counter are configured and will be received with the following performance counters set and will be shown in SE-Viewer.

SE-Viewer displays performance counters information for each event (troubleshooting counters).

To see it:

a. Select an event and select the "Performance Counters tab"

b. Scroll down the list and find an added performance counter

c. Press corresponding check box and the "Apply" button

Additionally SE-Viewer can display State performance counters that are collected independently from event collection (even if the application is not monitored).

To inspect them:

a. Select the "Computers" button in the left tab

b. Select your computer from the list

c. Trend "Reports" tab contains performance counters including custom (dynamic) ones

2. Transfer this counter to the Advisor

If you want to add these counters to some Advisor reports you need to add it to the transfer procedure:

a. Open the SE-Viewer configuration file ("SEViewer.config") from the SE-Viewer installation folder ("C:\Program Files\AVIcode\Intercept\SEViewer\" by default)

b. Find the task "Aggregation" in the section <reporting> <reportingOperations>

c. Follow instructions inside to add your performance counters to reports

For example:

<perfcounterSet>

<perfcounter NAME="\MyMultipleCategory\Counter1" TYPE="0" INSTANCEFUNC="AVG" DATEFUNC="AVG" />

</perfcounterSet>

Applies to:

AVIcode Intercept Studio/Advisor 5.0 - 5.7

7.11. [ISV5] CPU cores number is not collected in the "Collection Notes" for problem events

Symptoms:

In some cases CPU cores number is not collected in the "Collection Notes" for problem events.

Cause:

A possible user scenario which can cause this problem is importing event from old Agent to latest SE-Viewer - CPU cores parameter is not shown in this case as it is supposed to:

Resolution:

By design.

Applies to:

AVIcode Intercept Studio 5.6 - 5.7

7.12. [ISV5] [HowTo] Intercept Agent and SE-Viewer products upgrade recommendations

Question:

You want to get recommendation to prevent issues while upgrading Intercept Studio. This article describes the most common cases connected with product upgrade.

Answer:

Agent and SE-Viewer versions are preferred to be synchronized (the same). But as a temporary solution it is possible to work with the Agent's version less than the SE-Viewer's one.

The best approach to prevent using unsynchronized versions is:

- Upgrade SE-Viewer first using the ".msi" installer.

- Browse SE-Viewer from the server you want to upgrade the Agent on.

- In SE-Viewer application go "Tools""Download wizard" and select the product you want to download (for instance, Agent for x64 system).

In this case the appropriate version is the same as SE-Viewer's will be downloaded and it will prevent upgrading issues. Besides, using "Download wizard" you can get compatible versions of other Intercept products (such as Intercept VS Plug-In for x86/x64 and Intercept uX Collector) - just by selecting "Additional Packages" in the list of management tasks.

While upgrading Avicode products you should pay attention to the following:

1. In most cases while upgrading versions you do not need to uninstall the previous version. You just have to run the original ".msi" with version you want to upgrade to.

For Agent upgrade is compatible from 5.0 up to 5.6SP1; for SE-Viewer - from 5.5 up to 5.6SP1. Upgrade to the next version (5.0 - 5.5, , 5.6 - 5.6SP1) is supposed to be provided without issues for both products.

But, for example, if you want to upgrade SE-Viewer 5.0 to 5.6SP1, you should first uninstall it and then install 5.6SP1 using the original ".msi".

2. If you have uX installed on the server, you will have to uninstall it before Agent's upgrade; the same issue occurs with installed Advisor over SE-Viewer.

In both cases while trying to upgrade product, you will see the appropriate notification messages like this:

3. Configuration will be merged during the Agent upgrading process. For SE-Viewer sometimes after upgrade you need to modify DB in the Configuration Utility to make it compatible with the latest version (click "Test" button and accept upgrading DB if it is necessary; for details see "[ISV5] [Manual] Configuring SE-Viewer database using Configuration Utility" article).

4. After Agent's upgrade you may notice that there are two Agent folders with different versions in "C:\Program Files\Avicode\Intercept\Agent". That is ok - it means that the previous version was used by some running processes during upgrade. All of these folders will be removed by uninstalling the latest Agent version.

Applies to:

AVIcode Intercept Studio 5.0 - 5.7

Last update: Tuesday, December 14, 2010 12:46:17 PM