HP Diagnostics 8.0, 8.01, 8.02, 8.03, 8.04, 8.05
Readme
Software version: 8.05 / September 2010
This file provides the following information about HP Diagnostics:
Documentation
The first page of this readme document contains the following identifying information:
In addition to this readme, please see the Patch_Install_Instructions.pdf (in each patch
download package) for important upgrade and patch installation instructions.The full Diagnostics documentation set was last updated and posted on the manuals download site for the
8.03 release. To check for recent updates or to verify that you are using the most recent edition, visit the
following URL:http://h20230.www2.hp.com/selfsolve/manuals
This site requires that you register for an HP Passport and sign-in. To register for an HP Passport ID, go to:
http://h20229.www2.hp.com/passport-registration.html
Or click the New users - please register link on the HP Passport login page.
You will also receive updated or new editions if you subscribe to the appropriate product support service.
Contact your HP sales representative for details.To view files in PDF format (*.pdf), Adobe Acrobat Reader must be installed on your system. To download
Adobe Acrobat Reader, go to the following URL: www.adobe.comInstallation Overview
Diagnostics patch releases, such as 8.05, contain a full replacement of the Diagnostics components; therefore
you need to follow the same instructions as for an upgrade.Upgrade and patch installation instructions are provided in the HP Diagnostics Installation and
Configuration Guide in Appendix G.For patch releases, installation instructions are also provided in a document available with each package
download (Patch_Install_Instructions.pdf). The patch install instructions are a duplicate of
Appendix G, provided in each download package as a convenience.Important Installation Note:
The configuration guidelines found in the Diagnostics Installation guide for setting up SiteMinder module
are incorrect (defect 49236).When entering into the SiteMinder site and provide credentials, the Browser shows "Internal Server Error".
To correct this, add "ProxyPass /siteminderagent !" to the httpd.conf and before other ProxyPass directives.
An example of Apache reverse proxy setup on HP-UX - update procedure as follows:
Edit the Apache configuration file httpd.conf and add the following properties:
ProxyPass /siteminderagent !
ProxyPass / Error! Hyperlink reference not valid. of Diagnostics Server>:2006/
(2006 is the default Diagnostics Server port, use the port configured for your Diagnostics Server)ProxyPassReverse / Error! Hyperlink reference not valid. of Diagnostics Server>:2006/
(2006 is the default Diagnostics Server port, use the port configured for your Diagnostics Server)What's New in 8.05
Diagnostics 8.05 has a number of defect fixes and a number of new features. Note that the defect tracking
number shown (for example 35266) is generally prefixed with QCCR1I.New Features
- UI - The ability to print the thread dumps from the profiler view (47024)
Background: Prior to 8.05, it was not possible to print the thread dumps from the profiler view.
Description: New to this version is the ability to print the thread dumps from the profiler view.
Benefits: Usability
- Java Agent - Felix Framework Support (34416)
Background: Customers who depended on the Felix framework for application development could not
measure the performance of their applications in Diagnostics.Description: New instrumentation points have been added to measure the performance of applications
created using Felix.Benefits: Functionality (Platforms)
- Server - Extend the HP Diagnostics (MercuryStatusAlerts.mib) to transfer the information to Tivoli
(41715)Background: In order to transfer information to the IBM Tivoli product (server name and probe of
the event), the HP Diagnostics (MercuryStatusAlerts.mib) should be enhanced.Description: In 8.05, alertProbe, alertHost, and alertPath have been added to the MIB to provide
additional entity info when applicable.Benefits: Functionality
- Server - Keepalive from probes is impacting the performance on the server due to communication
overhead. (45642)Background: Keep Alive from probes in some high volume customer environments will severely
impact the performance of the Commander server.Description: The server was modified to improve the algorithm that sends the keep alive messages
so that performance is not as heavily impacted.Benefits: Performance
- Server - CAM Discovery: Make throttling of queries configurable (41529)
Background: Prior to this release, it was not possible to instruct the server on how often to run
discovery queries. In some cases, it is advantageous to throttle down or even throttle up the queries.Description: The property file server.properties contains entries now to throttle queries.
# default max throughput for discovery ... making it faster will use more CPU and disk resource
#cam.discovery.throughput.max_hits=20
#cam.discovery.throughput.per_time=10s
Benefits: Performance
- Java Agent - Support of AXIS2 Web Services (33847)
Background: Customers who depended on AXIS2 Web Services for application development could not
measure the performance of their applications in Diagnostics.Description: New instrumentation points have been added to measure the performance of applications
created using AXIS2 Web Services.Benefits: Functionality (Platforms)
- UI - Allow the deletion of Server Requests (41717)
Background: Prior to this release, via the context menu, it was possible to delete a probe but not a
server request.Description: It is now possible to delete a server request via the context menu.
Benefits: Usability, Functionality
- UI - Throttle Enterprise UI Queries To Improve Performance (41821)
Background: In order to support 100 concurrent Enterprise UI sessions or more, the UI needs to throttle
the queries that the UI is executing so as to not inundate the server. This is like a freeway entrance
ramp light that only allows 2 cars every N seconds to keep the freeway from getting overly jammed with
cars.Description: These values in the ui.properties can be used to throttle update frequency of UI queries to
the server. This is important when there are hundreds of Enterprise UI users. The Enterprise UI data
is updated based on the time control (last 5 minutes, 20 minutes, 1 hour, etc.) and data type. For
example trend data that populates charts are updated every 5 seconds when the time control is set to at
last 5 minutes. When the property
ui.query.update.frequency.multiplier.com.mercury.diagnostics.common.data.query.builder.handles.
TrendDataHandle=2 is enabled then the chart will update every 10 seconds ( 5 s * 2 multiplier).
Adjust the multiplier upward as the number of users increases.#ui.query.update.frequency.multiplier.com.mercury.diagnostics.common.data.query.builder.handles.
SummarySetDataHandle=2.5#ui.query.update.frequency.multiplier.com.mercury.diagnostics.common.data.query.builder.handles.
SummaryDataHandle=2#ui.query.update.frequency.multiplier.com.mercury.diagnostics.common.data.query.builder.handles.
TrendDataHandle=2#ui.query.update.frequency.multiplier.com.mercury.diagnostics.common.data.query.builder.handles.
EntityContentsDataHandle=2.5#ui.query.update.frequency.multiplier.com.mercury.diagnostics.common.data.query.builder.handles.
GetAlertEventsHandle=2#ui.query.update.frequency.multiplier.com.mercury.diagnostics.common.data.query.builder.handles.
GetMetaDataHandle=2#ui.query.update.frequency.multiplier.com.mercury.diagnostics.common.data.query.builder.handles.
BizTxnTopologyDataHandle=3#ui.query.update.frequency.multiplier.com.mercury.diagnostics.common.data.query.builder.handles.
ServerRequestTopologyDataHandle=3Benefits: Performance
Defect Fixes
.NET Agent Fixes
- 42342 - A WCF method is not being detected as a WCF method
Problem - The problem is that when you define a method like IBooksPort.GetBook(), the method name
ends up with a fully qualified name like services.pernix.local.IBooksPort.GetBook. When this happens
Diagnostics cannot find this method in the metadata so Diag cannot figure out that it is a WCF method.
These methods should be detected as WCF methods.Resolution - These methods will now be detected as WCF methods.
- 49315- .NET Probe crashes on VMWare environment. The same same version of Probes on physical non-virtualized servers which host the exact same .NET application pools, works fine without experiencing this problem. Problem is only reproducible on VM environment.
Problem - .NET probe crashes on VMWare environment. The same version of probes on physical non-virtualized servers which host the exact same .NET application pools, works fine without experiencing this problem. Problem is only reproducible on VM environment. The crash seems to be triggered by accessing perfmon counters for a .NET version 3.5.
Resolution - Added an option in probe_config.sml file which will prevent the probe from accessing perfmon counters. The committed memory metric for the probe will revert to using Total Memory.
To disable the perfcounter access set
<vmware disableperfcounters="true"/>
The default is false
- 39569 - After upgrading the .NET agent, some features such as RUM/TV integration no longer work.
Problem - After upgrading the .NET agent, one or more .NET agent assemblies are missing that affect
RUM/TV integration.Resolution - This is a known operating system issue (http://support.microsoft.com/kb/905238). The
"upgrade" mode of the 8.05 agent install package now applies a workaround automatically to avoid
this Microsoft defect.- 42342 - When you disable the .NET Agent from the menu, IIS hosted applications continue to run the
probe even after an "iisreset".Problem - The .net profiler checks for the environment variable COR_ENABLE_PROFILING=1 to
indicate that the probe is enabled. The environment variable is set in the "global" environment space
for all processes, and also specifically for the w3svc service. Performing a 'disable probe' action removes
the environment variable, indicating that the probe is disabled.If a system is rebooted with the probe in the 'disabled' state (no environment variable), the svchost
serving up w3svc will never see the new environment variable (when an 'enable' occurs).Resolution - Always keep COR_ENABLE_PROFILING around for w3svc, and just set it to '0' for disable
and '1' for enable.- 44668 - Server Error: CLR detected an invalid program
Problem - This problem was caused by our instrumentation code not handling generic methods correctly.
Resolution - We made a change to the instrumentation logic to handle generic methods correctly
Collector Fixes
- 39409 - SAP Collector runs out of memory when under heavy load
Problem - By design, a single SAP Collector had to monitor the entire ABAP cluster (i.e. all the Dialog
Instances). This had scalability issues, especially in the presence of a lot of busy Dialog Instances. The
data we got back was simply too much for a single Collector to handle.Resolution - A fix was Implemented which allows for splitting the cluster into multiple Collectors. For
example if the cluster has 7 Dialog Instances, the user can now monitor 4 instances with one Collector
and 3 with another. Previously all 7 had to be monitored by the same collector.In order to do that, the user can use the new <dialogInstance> tag when editing the r3config.xml. Refer
to r3config.xsd for detailed documentation.For example, previously the below configuration would cause the Collector to collect data from the entire
cluster (even if it has 10 instances)<r3system name="SomeABAPStack" systemId="GBR" timezone="GMT+5:30">
<direct-connection>
<client>000</client>
<user>myuser</user>
<password>12345</password>
<host>foo.mycompany.com</host>
<systemNumber>00</systemNumber>
</direct-connection>
</r3system>
The following configuration tells the Collector to only collect from 3 instances (00, 01, and 10). Similarly,
the rest of the instances can be monitored by a different Collector:<r3system name="SomeABAPStack" systemId="GBR" timezone="GMT+5:30">
<direct-connection>
<client>000</client>
<user>myuser</user>
<password>12345</password>
<host>foo.mycompany.com</host>
<systemNumber>00</systemNumber>
<dialogInstance>00</dialogInstance>
<dialogInstance>01</dialogInstance>
<dialogInstance>10</dialogInstance>
</direct-connection>
</r3system>
- 36676 - SAP Collector - Unable to start SAP Collector due to host name containing underscore
Problem - Customer can't start the collector because the host name contains underscores. The Collector's
log contains the following error:2009-12-09 15:03:58,629 SEVERE r3collector [main] Unhandled exception for task InstanceDiscovery for
R07 due to:
java.lang.IllegalStateException:
Unexpected format for server name: a_b_c_d. Expected three tokens delimited by '_' at
com.mercury.diagnostics.sap.r3.function.servers.ServerRecord.getR3Identifier(ServerRecord.java:125) at
com.mercury.diagnostics.sap.r3.topology.R3Instance.createApplicationInstances(R3Instance.java:164) at
com.mercury.diagnostics.sap.r3.task.InstanceDiscovery.executeTask(InstanceDiscovery.java:62) at
com.mercury.diagnostics.sap.r3.task.AbstractTask.run(AbstractTask.java:150) at
com.mercury.diagnostics.sap.r3.topology.R3Instance.startTasks(R3Instance.java:119) at
com.mercury.diagnostics.sap.r3.R3Collector.start(R3Collector.java:64) at
com.mercury.diagnostics.probe.external.ExternalProbe.start(ExternalProbe.java:170) at
com.mercury.diagnostics.common.util.DiagnosticsProcess.postInitialize(DiagnosticsProcess.java:109) at
com.mercury.diagnostics.common.loader.ModuleLoader.initModules(ModuleLoader.java:690) at
com.mercury.diagnostics.common.loader.ModuleLoader.access$3(ModuleLoader.java) at
com.mercury.diagnostics.common.loader.ModuleLoader$1.run(ModuleLoader.java:173) at
java.security.AccessController.doPrivileged(Native Method) at
com.mercury.diagnostics.common.loader.ModuleLoader.initializeEverything(ModuleLoader.java:159) at
...Cause - The Collector does something called "instance discovery", which discovers the individual Servers
within R/3. Basically it asks the main R/3 Server for all the Servers' information and gets back some
strings in the format:<serverHost>_<R3systemID>_<systemNumber>.
The collector then needs to parse this string to extract the individual information. The presence of the
underscore in the <ServerHost> was causing this parsing to fail. As a result, the Collector could not
connect to the individual Servers so no collection was taking place. This will happen for any customer
whose R/3 host names contain underscores.Resolution - The code has been modified to take into account underscores in the host name.
Java Agent Fixes
- 46154 - Updating dispatcher.properties files causes probe to 'forget' mediator assignment
Problem - Updating JAVA probes dispatcher.properties files causes probe to 'forget' mediator
assignment if set on the command line.Resolution - If you do not want the mediator assignment from the file to override the command line
option, simply comment it out when you change the file. There will no longer be warnings about
NullPointerException.- 39967 - Java Profiler crashes with NullPointerException for WebSphere on SPARC Solaris
Problem - When the user tries to log in to the Profiler with "change" capabilities, the Profiler crashes.
Using "view" only capabilities work.Resolution - Internal coding issue, the crash no longer occurs.
- 48818 - BEA_JPD point has trended_methods setting OOB, resulting in thousands of trended methods
Problem - BEA_JPD point has trended_methods setting OOB, resulting in thousands of trended
methods. Diagnostics should not have any trended methods defined out of the box, especially one that
would result in so many entities.Resolution - Removed trended_method qualification.
- 43212 - Instrumentation runtime error (NullPointerException) in
com.ibm.ws.webservices.engine.client.Connection.invokeEngineProblem - In probe.log, the following can be seen:
2010-03-02 15:45:17,927 SEVERE com.mercury.opal.capture.proxy [WebContainer : 4] Instrumentation
runtime errorjava.lang.NullPointerException
at com.ibm.ws.webservices.engine.client.Connection.invokeEngine(Connection.java)
at com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:712)
at com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:663)
at com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:491)
at com.ibm.ws.webservices.engine.client.Call.invoke(Call.java:1515)
.
.
.
at $Proxy136.processMessage(Unknown Source)
Resolution - In a corner case, under unknown circumstances, the WebService may be null in
com.ibm.ws.webservices.engine.client.Connection.invokeEngine(). Necessary conditions to handle
this case gracefully was added.- 40239 - WebSphere 6.1 crashes with 8.03 probe on Solaris 10
Problem - The application log contains
[2/16/10 9:34:25:361 CET] 00000049 EJBContainerI E WSVR0068E: Attempt to start
|EnterpriseBean MProMediationWSApp#MProMediationWSEJB.jar#MProMediationWS failed with exception:
java.lang.VerifyError: (class: com/ibm/wsspi/sibx/mediation/flow/ejb/MediationFlowBean, method:getSessionContext signature: ()Ljavax/ejb/SessionContext;) Inconsistent stack height 1 != 2 at
java.lang.Class.getDeclaredConstructors0(Native Method)and the application does not start.
Resolution - The root cause is the Diagnostics instrumentation, as the instrumented bytecodes did not
pass the verification step. Changes were made to produce correct instrumentation and the application
now starts.- 39786 - Frequently logged messages "Metric group 'j2cModule' will be ignored (no stats found) " filling
log file.Problem - Frequently logged messages "Metric group 'j2cModule' will be ignored (no stats found) " filling
log file.Resolution - Changed the message level from 'info' to 'debug'.
- 39372 - Java Agent - Cross-vm RMI call profile is not showing for Servlet to EJB call in WebSphere 6.1.
Problem - 8 clusters of which 4 are web container and 4 are EJB container. These containers are never
on the same box. Load test is enabled with all the 8 probes.The transaction view -> server requests does not contain methods from EJB container. The methods it
has are only from web container.The same server request in 'server request ' view has the right information.
Cross-VM is not properly displayed.
Resolution - The solution to this problem is to enable Corba cross-VM on both probes. In 8.x cross-VM
support was added for pure IIOP which covers RMI over IIOP as well. After enabling Corba cross VM
on both probes, cross-VM instance will be shown.Corba Cross-VM must be enabled by following these steps (on both sides):
1) Disable RMI in the points file
2) Enable the Corba points (there is a Corba section towards the end of the points file)
3) Take a look at the documentation in the Corba section of the points file and follow the steps listed
there. After doing so, the "jvmEntries" of your WAS server.xml should look something like below.
The important 2 new things to notice are:-Dorg.omg.PortableInterceptor.ORBInitializerClass.com.mercury.opal.javaprobe.handler.corba.CorbaORBInitializer
and
<classpath>/opt/optibnch/JavaAgent/DiagnosticsAgent/lib/probeCorbaInterceptors.jar</classpath>
The "jvmEntries" section for the WAS server.xml looks something like this:
<jvmEntries xmi:id="JavaVirtualMachine_1182370866099" ....(ommitted for clarity).... genericJvmArguments="-
Dprobe.group=WAS_Group -Dprobe.id=was61-jvm15-ovribmt12 -
Xbootclasspath/p:/opt/optibnch/JavaAgent/DiagnosticsAgent/classes/IBM/1.5.0:/opt/optibnch/JavaAgent/DiagnosticsAgent/classes/b
oot -Xshareclasses:none -
Dorg.omg.PortableInterceptor.ORBInitializerClass.com.mercury.opal.javaprobe.handler.corba.CorbaORBInitializer"
disableJIT="false">
<classpath>/opt/optibnch/JavaAgent/DiagnosticsAgent/lib/probeCorbaInterceptors.jar</classpath>
</jvmEntriees>- 35355 - Instrumentation problems with Apache CXF
Problem - The Diagnostics JAX-WS outbound web service instrumentation needed to exclude one of the
Apache CXF proxy classes, in order for the cross-VM correlation to work properly.Resolution - Excluded the Apache CXF proxy class from the [JAX-WS-Outbound point]. Cross-VM for
Apache CXF works now.- 35583 - Consider changing the default instrumentation point for [JAX-WS-Outbound] to work with
Apache CXF FrameworkProblem - Using a simple Java client Apache CXF which invokes a web-service using the latest version
of Apache CXF (version 2.2.4), Diagnostics did not generate exceptions on the web services call.Resolution - To fix this problem, the following changes were made in the instrumentation file
auto_detects.points. See ignore_cl:[JAX-WS-Outbound]
class = javax.xml.ws.BindingProvider
ignore_cl = org.apache.cxf.jaxws.JaxWsClientProxy, ...- 34636 - "SEVERE archive.... Locale issues can cause this." errors filling mediator log.
Problem - SEVERE messages in the server log:
2009-10-01 15:21:00,116: SEVERE archive : Cannot persist data due to missing latency for:
com.mercury.diagnostics.common.data.graph.node.WebServiceData:
weblogic.wsee.server.servlet.BaseWSServlet.void
service(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
/callchain2/CallChain2Service, null, Web
Service, null, CallChain2ImplService, m, _appsdir_CallChain2WSEar_ear, http://callchain2,
CallChain2SoapPort Locale issues can
cause this. Refer to persistence.enable.locale.independent.latency in server.properties.Resolution - The message was misleading and incorrect, so we simply removed the message from the log.
- 42011 - When a proxy was enabled on the probe via dispatcher.proxy.host & dispatcher.proxy.port, user
permissions were not successfully being obtained for communication with the Mediator.Problem - When a proxy was enabled on the probe via dispatcher.proxy.host & dispatcher.proxy.port,
user permissions were not successfully being obtained for communication with the Mediator. The probe
useradmin.log & probe.log contained http 504 gateway timeouts as the mediator was unreachable from
the probe except via the proxy.Resolution - Updated the product to appropriately use a proxy url connection when doing server
communication.- 42459 - Request that Diagnostics will capture the GET parameters, to allow server requests to be
differentiated.Problem - Request that Diagnostics will capture the GET parameters, to allow server requests to be
differentiated.Resolution - Diagnostics will capture the GET parameters to allow server requests to be differentiated.
- 41880 - Diagnostics JavaProbe caused severe problems when using duplicate/multiple -javaagent options
of the probeagent.jar to start probeProblem - Problem - In certain rare circumstances, customers will mistakenly duplicate the command
line option "-javaagent:<diag-probe-dir>/lib/probeagent.jar" and the application server will not start.Resolution - Even when duplicate/multiple -javaagent options of the probeagent.jar appear in the Java
commandline, the app_server will start and run with Diag javaprobe without any issue.- 44826 - Upgrade to Probe version 8.03 causing issue
Problem - Customer migrated from HP Diagnostics probe 8.01 to 8.03 . They have a particular DB2
related reports failing after the migration.Resolution - This is because of a known J9 JVM bug and Diagnostics has 2 workaround points to address
this bug. However, this was encountered in a class which our workaround did not include adding the
class to the list of "workaround points". See comment below for more details (copied from
<probe>/etc/auto_detect.points). Notice that the recommendation is to patch WAS and de-activate these
points.; This is a series of 3 points introduced to avoid WebSphere 6.1 crashes due to a ; java.lang.VerifyError ...
invalid returnAddress for ret instruction ... at pc=65535 ; The root cause is a bug in IBM J9 2.3 JVM
(SR2), which is bundled with WebSphere 6.1.;
The point works by eliminating the specified method from instrumentation by [JDBC-Connection-
prepare].
; The SQL statements passed as arguments to the eliminated method(s) will not show up in SQL views.
; You may safely de-activate these points, if you are not a WebSphere 6.1 user, ; or if your version of
WebSphere 6.1 is patched.
IBM J9 2.3 JVM (SR5) is known to have the bug fixed.- 41400 - Scenario Summary View saved as CSV file contains invalid data (like "12/31/1969 23:50").
Problem - Scenario Summary View saved as CSV file contains invalid data (like "12/31/1969 23:50").
Resolution - Data is now valid.
- 41718 - Enable uri.pattern.replace for "Static Content" rule in dynamic.properties.
Problem - Diagnostics needs to better handle situations where unique URLs (e.g. .../1234534535.pdf) are
created which causes symbol explosion on the server and probe and performance issues occur as a result.Resolution - All pdf files will now be represented under a single server request, "Static Content".
- 48995 - Java Probe modifies response from the Oracle Application Server.
Problem - When the Java Probe is installed, the Application Server throws different responses as when
the Probe is not installed. So, it looks like the Java Probe modifies the response from the Application
Server.This is in the following environment:
- Solaris 5.10 - SPARC
- Java J2EE 1.4
- Java Probe 8.0x
- Oracle Application Server 10.1.2
Resolution - For 8.04 and earlier, disabling [SOAP_Faults] point is a confirmed workaround. Versions
8.05 and 9.01 (and later) will work correctly out-of-box.- 36067 - Apache Geronimo application server does not start with Java Agent.
Problem - An Apache Geronimo application server does not start with [HttpCorrelation] point enabled.
Environment:- Application Server: Geronimo 2.1.4 and using java 1.5.0_17 (SUN)
- Diagnostics Probe Version: 8.03.39.85
- OS: SUSE Linux Enterprise Server 10 (x86_64)
Resolution - The workaround is to disable the point for now.
- 42462 - Exception in production WAS server caused by HP probe.
Problem - Exception in production WAS server caused by HP probe.
Resolution - The issue is solved by using a new version of auto_detect.points
- 48462 - WAS with the probe does not start on z/OS.
Problem - Installation of Diagnostics 8.04 probe on WAS Portal Server v6.0 running on z/OS. The install
steps were:- extract binaries from tar
- jreinstrumenter -i <path_to_was_java>
- jreinstrumenter -b <path_to_was_java>
... this produced Xbootclasspath params ...
- modify Xbootclasspath in WAS console
After restart WAS is unable to start and producing this exception:
Trace: 2010/07/05 15:35:55.952 01 t=AE3E88 c=UNK key=P8 (0000000A)
Description: Log Boss/390 Error
from filename: ./bbolrt.cpp
at line: 283
error message: BBOO0073E Shasta Runtime function logJavaException detected that the following
exception occurred in the Java VM ...JVM Exception Message = java.lang.NullPointerException JVM Stack Trace =
java.lang.NullPointerExceptionat com.mercury.opal.capture.JavaProbe.getLog(JavaProbe.java:85)
at com.mercury.opal.capture.proxy.InstrumenterProxy.instrument(InstrumenterProxy.java:196)
at com.mercury.opal.capture.proxy.InstrumenterProxy.instrument(InstrumenterProxy.java:120)
at java.lang.ClassLoader.merc_defineClass0(ClassLoader.java)
at java.lang.ClassLoader.defineClass(ClassLoader.java:808)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:147)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:477)
at java.net.URLClassLoader.access$500(URLClassLoader.java:111)
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:849)
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java:389)
at java.net.URLClassLoader.findClass(URLClassLoader.java:373)
at java.lang.ClassLoader.loadClass(ClassLoader.java:570)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:442)
at java.lang.ClassLoader.loadClass(ClassLoader.java:502)
.
Trace: 2010/07/05 15:35:55.953 01 t=AE3E88 c=UNK key=P8 (0000000A)
Description: Log Boss/390 Error
from filename: ./bbolrt.cpp
at line: 328
error message: BBOO0021E Assertion failed: '0', file ./bbolrt.cpp, line 328.
***
Resolution - Changed the logger to log to stderr if a log file cannot be created. And provided a
description for the workaround for the encoding issues.- 47192 - Solaris systemmetrics can only handle 64 CPUs.
Problem - Systemmetrics core dumps on Solaris (Sparc) if there are more than 64 CPUs
Resolution - An internal array was expanded and the systemmetrics process no longer aborts.
- 36178 - Application memory corruption and potential aborts on x64 based VMware systems. (.NET and
Java Probes).Problem - Problem - On a 64 bit VM Ware system, the .NET probe can cause the application that it is
monitoring to abort.Cause - The code that was detecting a VM Ware situation and obtaining the correct timestamp was
flawed and was corrupting random memory locations.Resolution - The code has been modified and simplified and no longer corrupts memory.
Server Fixes
- 47328 - Commander's MRU cache for server permissions is too small for big deployments
Problem - MRU list only keeps 30 mediators which causes a reload from file in case of a cache miss.
Resolution - Increased the MRU list to 80
- 41888 - Customer is seeing sever performance problems on the server caused by slow application
discovery.Problem - The customer is seeing sever performance problems on the server caused by slow application
discovery.Resolution - Improved performance by not following cross server sync lists if user selects skipping of
topological discovery.- 49067 - Port 2006 still enabled after enabling HTTPS.
Problem - Even when SSL is enabled Diagnostics always keeps the non-SSL port open. Normally
firewalls would be used to secure this.Resolution - In webserver.properties, there is now a commented out setting:
# jetty.ssl.loopback.host=127.0.0.1
If you can't use a firewall, to secure the non-ssl port (e.g., 0.0.0.0:2006), then you can use this setting to
make that port open for loopback only. This will allow the server to communicate with itself without
allow external access. If this is enabled on the commander, then the commander and mediators would
need to be configured to use SSL to communicate with each other.Enterprise UI Fixes
- 34324 - CSV Export Footer Zoomed Time Range doesn't make sense.
Problem - The Zoomed Time Range for "a run" doesn't make sense. It says Zoomed Time Range:
6196:30:00 to 6207:44:59.Resolution - The local time was being used instead of run time. (Run start is also shown when
appicable).- 48450 - Data missing from views when saved as HTML page
Problem - The printable area is smaller than the table size so columns are dropped.
Resolution - Fixed by proportionally adjusting each column based on the printable area.
- 48882 - Call Profile export generates excessive white space when diagram is larger than the viewport.
Problem - Call Profile export generates excessive white space when diagram is larger than the viewport.
Resolution - The excessive whitespace has been eliminated.
What's New in 8.04
Diagnostics 8.04 has a number of defects fixed and a number of new features. Note that the defect tracking
number shown (for example 35266) is generally prefixed with QCCR1I.New Features
- Add default PMI metrics with the `EXPAND_PMI' parameter (35266)
Background: Prior to 8.04, there are no default EXPAND_PMI metrics configured for WebSphere JDBC
ConnectionPool module.Description: The default PMI metrics configurations for JDBC Connection Pool of the WebSphere5 and
WebSphere6 collectors are changed by adding EXPAND_PMI[*]. Also, default JMX metric configuration
for the WebSphere JDBC DataSource MBeans was added.Benefits: Usability
- Allow expand and contract all in the inspector of the Enterprise UI (34441)
Background: Previously, each category in the metrics inspector had to be expanded and contracted
one at a time.Description: A toolbar toggle button was added to the inspector to collapse / expand all categories.
Benefits: Usability
- Display probe-id on the main probe page http://probename:35000/ (37873)
Background: Prior to 8.04 http://probename:35000/files shows HP Diagnostics J2EE Probe ".. Probe Name ...",
version, but the main screen http://probename:35000 does not show that same line, this would be very
useful.Description: The main screen http://probename:35000/ now shows HP Diagnostics J2EE Probe ".. Probe
Name ...", version as well.Benefits: Usability
- .NET probe - Added the ability to exclude an assembly from being instrumented (35024).
Background: The excludeassembly parameter was added for the .NET probe for use in a customer
environment where they needed to exclude sensitive assemblies from instrumentation (example,
a product was used to obfuscate and encrypt code in sensitive assemblies and the code would
throw exceptions if it was instrumented). In .NET an assembly is a .exe or .dll file.Description: To configure the exclusion of an assembly, you add <excludeassembly
name=<AssemblyNameToExclude> as a child to a process element in the probe_config.xml file.
Do not include the file extension, .exe or .dll as part of the name of the assembly. An example of
excluding an assembly called WebService.dll:<process enablealldomains="true" name="ASP.NET">
<logging level="" />
<points file="ASP.NET.points" />
<points file="ADO.points" />
<points file="WCF.points" />
<excludeassembly name="WebService" />
<appdomain enabled="false" name="TestWebService">
<points file=" TestWebService .points" />
</appdomain>
</process>
Benefits: Functionality
- Expose additional jetty parameters (38279)
Background: For performance reasons, it is important to expose additional properties for jetty in
webserver.properties to influence performance.Description: The following properties are now included in webserver. properties:
jetty.acceptor_threads (1)
jetty.accept_queue_size (0)
jetty.linger_time (30)
Benefits: Performance
- Display probe-id on the main probe page http://<probe>:35000/ (37873)
Background: Prior to 8.04, http:/probename:35000/files shows HP Diagnostics J2EE Probe " .. Probe
Name ...", version, but the main screen http://probename:35000 does not show that same line, this would
be very useful.Description: The main screen http:/probename:35000/ now shows HP Diagnostics J2EE Probe " .. Probe
Name ...", version as well.Benefits: Usability
- Add TopN filter to UI (38538)
Background: If you have a large deployment with many probes, the probes views may populate slowly
due to the volume of data.Description: The probe views (Probes, MA Managers, Oracle Probes, SQL Server Probes, and SAP
Probes) are configured to use the top ui property located on the Diagnostics (commander) server in the
etc/ui.properties file. By default the ui.topn property is not enabled. When enabled the Enterprise UI
receives this property from the commander on start up. The UI will use this value to limit the number of
probes in the probe views mentioned above.For example with the value of ui.topn=20, the ui will ask the server to retrieve top 20 (times a small
factor that always gives more than requested) probes on each mediator. The top probes requested are
determined by the view's sorting metric (default is VM Heap Used). Additionally, the top n probes of
each mediator are returned with each change of the filters on the natural language title bar.For example with:
- ui.top=20
-10 mediators with each mediator having 100 reporting probes, all having foo in their name.
- the Title bar reading "Java Probes in All Probe Groups filtered by 'Probe Name containing foo' with
Top 5 by Latency (Avg) charted for the last 5 minutes" .The probe view will populate with at least 200 Java probes (10 mediators * 20) . From each mediator the
top 20 by Latency (Avg) with a name containing foo are returned to the commander. The commander
then sends all 200+ probe records to the Enterprise UI probe view.Benefits: Usability, Performance
- Make the creation of the symbol backup directory configurable (33771)
Background: Sometimes, the backup folder for jdb files under symboltable uses up a lot of disk
space when there are a large number of symbol files. This should be made configurable.Description: Backing up the symbol table is now configurable. Backing up the symbol table can
now be enabled/disabled by setting the server property "symboltable.backup" to true/false in the
server.properties file.Symbol table backup frequency (daily, weekly, monthly, and yearly) can now also be configurable
by setting the server property "symboltable.backup.majors". Set the property, using a common
separated list, to the desired backup frequency. The frequency names are the names as defined
by the persistency.major.x.name property. For example, to backup the symbol table weekly, use
the property "persistency.major.2.name", which is 'Weeks'.The default configuration for symbol table backup, as defined in the server.properties files are:
# Should the server backup the symboltable?
symboltable.backup = true
# Which majors should be backed up?
symboltable.backup.majors = Days,Weeks,Months
Benefits: Performance
- Remote backup script improvements (36487)
Background: The remote-backup scripts from 8.03 and before have some issues:
They backup the symboltable/backup directory which is not needed
They can accumulate files that are no longer relevant (not on the server but stay in the
backup location)They try to backup the obsolete SymbolTable.db
The -v option doesn't work in the cmd file
The .sh file has DOS line `enders'
Description: A -c option (clean was added). When specified, files that exist in the ouput dir and do
not exist on the server will be removed (the others need to be kept for better performance with
timestamping feature on download). The jdb and PathedSymbolTable.db download stop at level=3
so that the backup files won't get picked up. The dirs are created do to the recursive wget, but
the files will not be downloaded. Also fixed -v and added it to usage message.Removed the SymbolTable.db download. We're getting the .jdb files and the PathedSymbolTable.db.
The SymbolTable.db didn't make sense anymore.Benefits: Performance, Usability
- Java Probe - Document probe hookup configuration for Tomcat 5 running as a windows service (33531).
Background: The documentation should add information on how to configure Tomcat 5 running as
a Windows service to work with a Diagnostics Java Agent.Description: Follow these steps to configure Tomcat 5.x/6.x running as a web service for the Java Agent:
Tomcat 5.x/6.x is installed in service mode and the Tomcat service is started.
From the Windows Task bar, right-click on the Apache Tomcat service icon and then select
Configure.In the Apache Tomcat Properties dialog box, select the Java tab.
Add the -javaagent option and other Java parameters to the Java options section.
Restart the Tomcat service.
Benefits: Functionality
Defect Fixes
Java Agent Defect Fixes
- 35819 - On a Tru64 system using Classic VM 1.4.2, the probe can't communicate with the mediator
and a SEVERE error appears in the probe.logProblem - Diagnostics 8.03, Tru64, Classic VM 1.4.2
The probe.log file contains:
2009-11-19 11:37:27,166 SEVERE com.mercury.opal.util.webserver [Thread-1] error configuring
webserverjava.lang.NoClassDefFoundError: com/ibm/jsse/IBMJSSEProvider
at com.mercury.diagnostics.common.modules.webserver.RangeSocketListener.createListener(RangeSocket
Listener.java)at com.mercury.diagnostics.common.modules.webserver.JettyWebServer.createListener(JettyWebServer.ja
va)at com.mercury.diagnostics.common.modules.webserver.JettyWebServer.configureServer(JettyWebServer.j
ava)at com.mercury.diagnostics.common.modules.webserver.JettyWebServer.initServer(JettyWebServer.java)
at com.mercury.diagnostics.common.modules.webserver.JettyWebServer.start(JettyWebServer.java)
at com.mercury.diagnostics.common.modules.webserver.AutostartJettyWebServer$1.run(AutostartJettyWe
bServer.java)at java.lang.Thread.run(Thread.java:534)
and there's no communication between the probe and the mediator.
Resolution - The problem is fixed, the log entry is gone.
- 30714-Adding JMX Apache Tomcat support caused WebSphere JMX to stop working in some situations
Problem - When running the 8.0 probe against any WebSphere system, an error occurs and
PMI metrics are not collected.Errors in logfiles similar to the following are seen:
2009-03-19 19:39:36,023 WARN com.mercury.diagnostics.capture.metrics [Metrics Collection] Error
initializing
com.mercury.diagnostics.capture.metrics.jmx.JMXCollector@3a1164f4java.lang.IllegalAccessError: com.mercury.diagnostics.capture.metrics.jmx.JMXCollector tried to access
method
com/mercury/diagnostics/capture/metrics/jmx/JMXCollector$AttributesAndDescriptors.add(Ljava/lang/S
tring;Lcom/mercury/
diagnostics/common/metrics/MetricDescriptor;)V20Resolution - The fix is to set the depends.on.class of Apache Tomcat JMX collector to
javax.management.MBeanServer.- 35172 - Heap walker is not working with WebSphere 6.1 (IBM JVM 1.5 on x86_Linux)
Problem - Heapwalker does not work in the following environment:
Websphere 6.1.0.21 on Redhat Linux AS 4 (JVM 1.5.0_11 IBM j9)
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)
java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Server VM (build 1.5.0_11-b03, mixed mode)
Using:
-javaagent and -agentpath: No heapdump at all is seen
-Xbootclasspath and -agentpath: Heapdump works, but heapwalker does not work
Probe Version is 8.03.39.85
Cause - There is a defect in the Heapwalker code which prevented it from working, even if the
new approach is used which is described in the addendum for 8.03 at the end of these release notes.Resolution - This has been fixed and is available as a patch on top of 8.03 and will be in the 8.04
release as well. Contact support and reference this defect number to obtain the patch.- 36447- Corba cross-VM cannot be enabled on Java 1.4 VMs
Problem - Cannot enable Corba in the probe if the JVM is 1.4. Errors are thrown:
java.lang.UnsupportedClassVersionError:
com/mercury/opal/javaprobe/handler/corba/CorbaORBInitializer (Unsupported
major.minor version 49.0)at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.merc_defineClass0(ClassLoader.java(Compiled Code))
at java.lang.ClassLoader.defineClass(ClassLoader.java(Compiled Code))
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java(Compiled Code))
at java.net.URLClassLoader.defineClass(URLClassLoader.java(Compiled Code))
at java.net.URLClassLoader.access$500(URLClassLoader.java(Inlined Compiled Code))
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java(Compiled Code))
Cause - Corba interceptors were incorrectly compiled with Java 1.5
Resolution - Corba interceptors are now compiled with 1.4.
- 32360- Java Agent: NullPointerException in BasicMethodCaptureAgent.beforeInvocation
Problem - In probe.log, one can see massive messages like this:
2009-06-19 13:13:17,335 SEVERE com.mercury.opal.capture [[ACTIVE] ExecuteThread: '4' for queue:
'weblogic.kernel.Default (self-tuning)'] Error capturing invocationjava.lang.NullPointerException
at com.mercury.opal.capture.BasicMethodCaptureAgent.beforeInvocation(BasicMethodCaptureAgent.java:
191)at com.mercury.opal.capture.proxy.MethodCaptureProxy.beforeInvocation(MethodCaptureProxy.java:78)
at com.mercury.opal.capture.proxy.MethodCaptureProxy.beforeInvocation(MethodCaptureProxy.java:131)
at weblogic.jdbc.wrapper.PoolConnection_com_pointbase_net_netJDBCConnection30.commit(Unknown
Source)at weblogic.store.io.jdbc.ReservedConnection.commit(ReservedConnection.java:170)
at weblogic.store.io.jdbc.JDBCStoreIO.getTableOwnershipPhysical(JDBCStoreIO.java:2054)
at weblogic.store.io.jdbc.JDBCStoreIO.updateTableOwnership(JDBCStoreIO.java:2270)
at weblogic.store.io.jdbc.JDBCStoreIO.updateTableOwnershipFromTimer(JDBCStoreIO.java:2200)
at weblogic.store.io.jdbc.ReservedConnection.timerExpired(ReservedConnection.java:436)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:
464)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
2009-06-19 13:13:17,335 SEVERE com.mercury.opal.capture [[ACTIVE] ExecuteThread: '4' for queue:
'weblogic.kernel.Default (self-tuning)'] Error capturing invocationjava.lang.NullPointerException
at com.mercury.opal.capture.BasicMethodCaptureAgent.beforeInvocation(BasicMethodCaptureAgent.java:
191)at com.mercury.opal.capture.proxy.MethodCaptureProxy.beforeInvocation(MethodCaptureProxy.java:78)
at com.mercury.opal.capture.proxy.MethodCaptureProxy.beforeInvocation(MethodCaptureProxy.java:131)
at com.pointbase.net.netJDBCConnection.commit(DashoA13*..:669)
at weblogic.jdbc.wrapper.PoolConnection_com_pointbase_net_netJDBCConnection30.commit(Unknown
Source)at weblogic.store.io.jdbc.ReservedConnection.commit(ReservedConnection.java:170)
at weblogic.store.io.jdbc.JDBCStoreIO.getTableOwnershipPhysical(JDBCStoreIO.java:2054)
at weblogic.store.io.jdbc.JDBCStoreIO.updateTableOwnership(JDBCStoreIO.java:2270)
at weblogic.store.io.jdbc.JDBCStoreIO.updateTableOwnershipFromTimer(JDBCStoreIO.java:2200)
at weblogic.store.io.jdbc.ReservedConnection.timerExpired(ReservedConnection.java:436)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:
464)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
Cause - When http layer is disabled, the agent pushes a frame with null location on the stack.
Resolution - Tightening the guarding condition for accessing current layer.
- 31702- Java Probe - metrics collector is causing the IllegalStateException for Tomcat 5.5
Problem - The INFO below piled up in the Tomcat 5.5's logs\catalina.out and other log files:
INFO: Illegal access: this web application instance has been stopped already. Could not load
com.ibm.websphere.pmi.stat.StatDescriptor. The eventual following stack trace is caused by an error
thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal
access, and has no functional impact.java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1245)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at com.mercury.diagnostics.capture.metrics.CollectorControl.instantiateCollector(CollectorControl.java:455
)at com.mercury.diagnostics.capture.metrics.CollectorControl.initialize(CollectorControl.java:362)
at com.mercury.diagnostics.capture.metrics.CollectorAgent.validateInitialization(CollectorAgent.java:884)
at com.mercury.diagnostics.capture.metrics.CollectorAgent.run(CollectorAgent.java:653)
at java.lang.Thread.run(Thread.java:595)
May 22, 2009 1:43:44 PM org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already. Could not load
oracle.dms.instrument.Sensor. The eventual following stack trace is caused by an error thrown for
debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and
has no functional impact.java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1245)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at com.mercury.diagnostics.capture.metrics.CollectorControl.instantiateCollector(CollectorControl.java:455
)at com.mercury.diagnostics.capture.metrics.CollectorControl.initialize(CollectorControl.java:362)
at com.mercury.diagnostics.capture.metrics.CollectorAgent.validateInitialization(CollectorAgent.java:884)
at com.mercury.diagnostics.capture.metrics.CollectorAgent.run(CollectorAgent.java:653)
at java.lang.Thread.run(Thread.java:595)
Cause - Same as 30714 (see above)
Resolution - Same as 30714 (see above)
- 30580 - JavaProbe: negative time reported in a probe logfile.
Problem - Severe/warning entries appear in the probe.log file about negative latency/timestamping
similar to the following:2009-05-03 10:59:20,095 SEVERE common [Buffer write thread] Aggregating negative values into
AggregateTimedRecord due to an
inconsistent native timer,nodeData [latency (MICROSECONDS)] time [-953204] count [1]
exceptionCount [0] totalTimeouts [0] min
[-953204] max [-953204] sumTimesSquared [9.08597865616E11]java.lang.Exception
Cause - Issues with measuring time in a virtual, VMWare environment. This can occur in VMWare
systems on Linux or Windows.Resolution - Stop the probe. Set the following properties in the probe etc/capture.properties file. And
restart the probe.attempt.vmware.timestamp.adjustments=true
use.vmware.timestamp.workaround=true
- 33629- StringIndexOutOfBoundsException in jreinstrumenter.
Problem - Run jreinstrumenter on x86-64 Linux and try to "add" IBM Java 1.4.2 x86_64 to the list of
known JVMs.Exception in thread "Thread-2" java.lang.StringIndexOutOfBoundsException: String index out of range:
-1at java.lang.String.substring(String.java:1768)
at com.mercury.opal.javaprobe.jreInstrumenter.JVM.createJVM(JVM.java:320)
at com.mercury.opal.javaprobe.jreInstrumenter.JVM.scanDirectory(JVM.java:285)
at com.mercury.opal.javaprobe.jreInstrumenter.JVM.scanRecursively(JVM.java:244)
at com.mercury.opal.javaprobe.jreInstrumenter.JVM.scanRecursively(JVM.java:253)
at com.mercury.opal.javaprobe.jreInstrumenter.JVM.scanRecursively(JVM.java:253)
at com.mercury.opal.javaprobe.jreInstrumenter.JVM.scanRecursively(JVM.java:253)
at com.mercury.opal.javaprobe.jreInstrumenter.JVM.scanRecursively(JVM.java:253)
at com.mercury.opal.javaprobe.jreInstrumenter.JVM.scanForJVMs(JVM.java:225)
at com.mercury.opal.javaprobe.jreInstrumenter.ProbeConfigurationTool.scanForJVMsUnder(ProbeConfigu
rationTool.java:126)at com.mercury.opal.javaprobe.jreInstrumenter.JREInstrumenterPanel$10.run(JREInstrumenterPanel.jav
a:437)Occurs on x86-64, Linux 64-bit, IBM Java 1.4.2 64-bit
Resolution - A defect in the code was corrected.
.NET Agent Defect Fixes
- 30403- SEVERE errors in .net log "PerformanceCounter backslide! prev(1240323844650672)
new(1240323844648190) "Problem - .NET logfiles contain "PerformanceCounter backslide" SEVERE errors:
2009.04.21.08.09.39.979 [1407] SEVERE TimeStamp PerformanceCounter backslide!
prev(1240326557069316) new(1240326556575683)On a multiprocessor computer, it should not matter which processor is called.
However, you can get different results on different processors due to bugs in the basic input/output
system (BIOS) or the hardware abstraction layer (HAL).Please make sure this machine is properly patched. Also see use of the /usepmtimer boot switch in
boot.ini..
.
.
.
2009.04.21.08.09.39.979 [1407] SEVERE TimeStamp PerformanceCounter backslide!
prev(1240326557069316) new(1240326556577813)On a multiprocessor computer, it should not matter which processor is called.
However, you can get different results on different processors due to bugs in the basic input/output
system (BIOS) or the hardware abstraction layer (HAL).Please make sure this machine is properly patched. Also see use of the /usepmtimer boot switch in
boot.ini.Cause - The root cause of the timestamp backslide issue may be related to either the hardware
chip or the system software.Resolution - We provide a workaround for this issue in the probe, and when users see such
negative/backslide timestamping issue in the probe running on a VMware guest, they can
turn on the probe property "use.vmware.timestamp.workaround" and the probe will make the
workaround call to get the host time.Besides the workaround, the code changes also include the implementation of upgrading to
use the new VMWare backdoor command to extract host's time for 32-bit Windows and
Linux/Solaris. The VMWare backdoor command upgrade for 64-bit platforms has not been
implemented.- 34317- Application eventually crashes after a few minutes when the .NET probe is enabled
Problem - When .NET probe is enabled for Microsoft reporting services, the application crashes
after a few minutes. Only uninstalling the .NET probe will restore the application.Default points file is being used
Disabled RUM diagnostics
Disabled LWMD
Completely disabled DEP through boot.ini file
OS: 64-bit win 2003
Cause - Microsoft.ReportingServices.Library.CancelableSqlCommand was throwing an exception.
Resolution - Modified Ado.points files to ignore the class below which was throwing exceptions and
causing Reporter service to abort.- 38276- The Web Services reported by the .NET Agent will show "Unknown" namespace in customer
environment.Problem - The Web Services reported by the .NET Agent will show "Unknown" namespace in customer
environment.Resolution - The Web Services reported by the .NET Agent will now show the correct namespace in
customer environment so that the CI discovered by DDM and Diagnostics can be reconciled.- 38470- The appdomain list in probe_config.xml is not descriptive for Websites . It shows numbers like
<appdomain enabled="true" name="1429926444/Default">. This needs to map to a Website name.Problem - For the .NET agent, the appdomain list in probe_config.xml is not descriptive for Websites. It
shows numbers like <appdomain enabled="true" name="1429926444/Default">. This needs to map to a
Website name.Resolution - To avoid manual mapping of the website name to the number, the agent will 'decorate' the
appdomain entry with the Website name.Collector Defect Fixes
- 37597- SAP Collector runs out of memory when under heavy load.
Problem - The SAP Collector can potentially run out of memory when under heavy load. When this
happens, the collector can no longer collect data from the ABAP engine.Cause - The SAP Collector was unnecessarily keeping some information from the returned tables in
memory. The amount of data was proportional to how busy the ABAP engine was. This data gets
garbage collected eventually so it's not a problem in the common case. However, if a single query to SAP
returned a lot of data, it could cause the Collector to run out of memory.Resolution - This data is no longer kept around.
Server Defect Fixes
- 34760-Server reporting "error" on system health for probes configured for a "web garden" scenario.
Problem: After configuring a probe for a "web garden" scenario, on the system health screen, the
probe is listed twice, showing 2 ports, but is reporting health as an error. The server recognizes
the duplicate probe names and lists their status as a warning message (an error on the system
health).Resolution: In a web garden scenario, the duplicate probe name check is skipped.
- 36387-Internal server probe generates too many symbols
Problem - Too many Server Requests and method data points are created by the internal server
probe. This will fill up the symbol table, especially, when the remote-backup script is used to do an
incremental backup.Resolution - Added additional URI folding rules and removed argument capture for Jetty point.
- 39000 - Mediator is not pulling data from the probes in case the commander is down
Problem -When a mediator loses connectivity for more than 5m to the commander, the probes stop
reporting data to the mediator.Resolution - If a connection error between mediator and commander is encountered, Diagnostics keeps
already authenticated users in the cache instead of expiring them. This allows probes to send data to
the mediator even if there is no connection to the commander. This behavior can be changed with the
webauth.ignoreConnectionErrors property in the server.properties file.Enterprise UI Defect Fixes
- 34671-CSV Export Footer embedded quotes cause quoted strings to display wrong.
Problem - When exporting to CSV, embedded quotes in filtered by, cause the footer to show
some quotes that shouldn't be shown.Resolution - Need to double any double-quotes inside a quoted string for CSV. For example,
"This is ""quoted"" with quotes in it"- 34297 - First saved CSV file is sometimes missing data.
Problem - Data missing on 1st saved CSV file (first saved after entering Diagnostics) when
user saved as CSV file just after data completes updating on the view.Cause - Original implementation was automatically hitting pause to try to sync the data better,
but this actually causes a re-query and makes it more likely that the data is still refreshing.Resolution - Took out the pause. The code already handles mixed time ranges.
- 35359 - With large amounts of PMI metrics there are inspector performance issues.
Problem - Inspector performance issues prevent usage of view with large numbers of metrics.
Cause - Profiling shows performance issue is with localization and sorting of category and metric.
Resolution - Added a method to the Resource Manager to return all Keys. In the inspector cache
the keys that can be used for localization. Using this cache determine if localizable prior to
attempting localization. Add method to formatting to override lookup of a metric name based
on known localizability.Documentation Defect Fixes
- 31701 - BAC Integration, document the re-register of the BAC-DIAG integration steps after a
BAC upgrade.Problem - After upgrading BAC, Diagnostics source adapter has a `failed' status.
Cause - Diagnostics source adapter is not syncing.
Resolution - After a BAC upgrade, re-register the BAC-Diagnostics integration in the BAC >
Admin > Diagnostics page.What's New in 8.03
Diagnostics 8.03 has a large number of defects fixed and a number of new features. Note that the defect
tracking number shown (for example 33770) is generally prefixed with QCCR1I.New Features
- Enterprise UI improvement to allow you to navigate to a custom view from a selected entity.
Background: Prior to 8.03, custom views had to be created individually.
Description: With this new enhancement, a custom view can be created once and you can navigate to
this custom view from different entities.Select an entity in the Diagnostics view and use the right-click menu to select "Open in Custom View"
to open a custom view in the context of the selected entity.Custom views that apply to the type of entity selected are listed in the dialog box for you to select. The
custom view is then displayed in the context of the entity selected. This allows you to use custom views
with different instances of an entity.The list of custom views displayed in the "Open In Custom View" dialog box is very broad so even
though the custom views generally relate to the type of entity selected, a given custom view may not
apply to the specific entity selected because of other characteristics in the custom view.Avoid opening in a custom view if it contains a feature that is graphing based on the My Selections
filter, unless the selections make sense for the entity selected. So, for example, it would be fine to open
the custom view on a probe that contains a feature with server requests on the selected probe.Benefits: Enhanced functionality.
- Add support for NTLM authentication to connect to MS SQL Server (33770)
Background: Prior to 8.03, it was not possible to connect to MS SQL Server for collecting metrics using
NTLM defined security, only a SQL authentication using a user ID and password was allowed.Description: Starting in 8.03, a choice can be made between NTLM and SQL authentication.
To do this you must configure sqlserver-config.xml. Look at the documentation inside the ".xsd" file,
there is a new attribute called "integratedSecurity".When the collector is run from the command line, set this to true to indicate that Windows credentials
will be used by SQL Server to authenticate the Collector. If integratedSecurity is set to true, no user
name or password should be specified. The JDBC driver searches the local computer credential cache
for credentials that have already been provided at the computer or network logon. If set to false, the
username and password must be supplied. If this attribute is not specified, its default value is false.When the collector is run from the service HP Diagnostics Collector, the Windows user credentials used
to connect to SQL Server must be set as the logon property for the service. To do this, run the Windows
Services Manager (services.msc from the run dialog, or My Computer > Manage > Services and
Applications > Services). Open the Properties dialog for service HP Diagnostics Collector, select the Log
On tab, and set Log on as: to the user granted access to your SQL Server instance. Restart the service.Here is a sample configuration:
<sqlserverInstance
hostName= "Ros54896tst1vm3"
portNumber="1433"
instanceName="Default"
integratedSecurity="true"
probeName="ROS54896TST1VM3"
probeGroupName="SQL_Server"/>
Benefits: Enhanced functionality, usability
- User can export data from a Diagnostics view into a CSV file (34067)
Background: Prior to 8.03, there was no provision for exporting data into Excel
Description: This new feature allows you to save the currently displayed chart (graph) data to a CSV file
that can be viewed and formatted in Microsoft Excel. The Save this view as an HTML Web Page or
CSV file button is a pull-down with 2 options - Save as HTML or Save as CSV.When you save the data in a CSV file, only the chart data is exported. It does not export tables, call
profiles, topology, etc. The Save as CSV menu item is not available for every view, it is grayed out when
not available.When there are multiple charts displayed in a view, the data for all the charts is exported to the CSV
file. The data can be displayed in a single table if the time range is the same for all the charts. The data
will be displayed in separate tables if the time ranges vary.If you have zoomed in on the chart, the data for this zoomed in time range is what gets exported to the
CSV file.In Microsoft Office Excel you can format the CSV data as you like. For example, select the Data.Time
cell and select Format > AutoFomat > Classic3 to display the data in easy to read columns.Benefits: Enhanced functionality, usability
- Java agent allocated memory unnecessarily (33819)
Background: In prior version of the product, the Java agent did not allocate memory in the most
efficient way possible.Description: In this version, the Java agent is more efficient in its use of memory. Many megabytes
of memory less are used in every Java agent instance.Benefits: Enhanced performance, memory footprint
Defect Fixes
Server Defect Fixes
- 30447 - Data export generates incorrect metric values
Problem - When exporting data sometimes the values are incorrect
Cause - The root cause is the calculation for the recovery outage set the timestamp to be unaligned with
the persistence timeframe buckets. Then the extract queries incorrectly included data across multiple
time frames.
Resolution - The component was changed to force all query timestamps to align with the persistence
time frame buckets.- 33627 - Unable to delete a run via the /facade maintenance page
Problem - Unable to delete a run via the /facade jsp page.
Cause - The code that is called for deleting a button doesn't call the property delete functionality. It
needs to call the delete code that's in the com.mercury.diagnostics.server.topaz package. In addition,
we need to add the probegroup an agent is in as part of the StartRun page. The probegroup should be
the second column after the check box and the list should be sorted by probegroup. Another issue is the
use of a string instead of a number as the run id. It needs to be verified if this works for start/stop/delete
and view of a run.Resolution - The ViewRuns.jsp page now allows the user to completely delete a run (from OC and
persistence). In addition, the start run page now returns probegroup and host and is sorted by
probegroup.- 32090 - Discovery entity not defined in symbol table.
Problem - The following error will be found in the Discovery.log: Sanity_LR_8_1_ovrntt154: Entity
for2452460067279110308 not defined in symbol tableResolution - Fixed internal coding issue.
- 34050 - Reaggregation fails with an exception.
Problem - Reaggregation fails with the following exception:
2009-08-22 01:01:53,808: WARNING archive : , java.util.NoSuchElementException: Cannot find
node data for token 1016034032java.util.NoSuchElementException: Cannot find node data for token 1016034032
at com.mercury.diagnostics.server.persistence.symboltable.impl.SymbolManager._getValue(SymbolManage
r.java:774)at com.mercury.diagnostics.server.persistence.symboltable.impl.SymbolManager.getValue(SymbolManager
.java:753)at com.mercury.diagnostics.server.persistence.symboltable.impl.SymbolManager.getNodeDataFromPathKe
y(SymbolManager.java:1086)at com.mercury.diagnostics.server.persistence.symboltable.impl.SymbolManager.deletePathKey(SymbolMa
nager.java:614)at com.mercury.diagnostics.server.persistence.impl.Persistence.aggregateIteratorToFile(Persistence.java:1
853)at com.mercury.diagnostics.server.persistence.impl.Persistence.updateTotal(Persistence.java:867)
at com.mercury.diagnostics.server.persistence.impl.Persistence.aggregateDurations(Persistence.java:779)
at com.mercury.diagnostics.server.persistence.impl.ReaggregationManager.reaggregate(ReaggregationMan
ager.java:230)at com.mercury.diagnostics.server.persistence.impl.ReaggregationManager.reaggregate(ReaggregationMan
ager.java:116)at com.mercury.diagnostics.server.persistence.impl.ReaggregationManager.run(ReaggregationManager.jav
a:101)at com.mercury.diagnostics.common.util.InfrequentEventScheduler$Event.run(InfrequentEventScheduler.j
ava:289)at com.mercury.diagnostics.common.util.InfrequentEventScheduler.runThisEvent(InfrequentEventSchedul
er.java:590)at com.mercury.diagnostics.common.util.InfrequentEventScheduler.runEvents(InfrequentEventScheduler.j
ava:568)at com.mercury.diagnostics.common.util.InfrequentEventScheduler.access$5(InfrequentEventScheduler.ja
va)at com.mercury.diagnostics.common.util.InfrequentEventScheduler$BackgroundThread.run(InfrequentEve
ntScheduler.java:644)Cause - The exact cause of this exception has not been determined.
Resolution - In order to avoid the exception a " try/catch: was added so that if the path key is already
missing, the exception will not occur.- 33959 - AppDiscovery refresh is not working as defined in appDiscoveryRules.properties'
rescanFrquency.Problem - AppDiscovery refresh is not working as defined in appDiscoveryRules.properties'
rescanFrquencyResolution - AppDiscovery refresh works as defined in appDiscoveryRules.properties' rescanFrquency
.NET Agent Defect Fixes
- 33852 - The URI we get for WCF applications in the .NET agent includes the host name.
Problem - The URI that gets captured for WCF Service includes the host name: e.g.
http://ros59403big.ovrtest.adapps.hp.com/WebHost/Service.svc/SimpleService. The expected behavior is
a URI without host name: /WebHost/Service.svc/SimpleServiceCause - The code was getting the URI from a property that has the host name included.
Resolution - Use a different property that doesn't include hostname in the URI.
- 29345 - Intermittently, the .NET agent will run out of memory.
Problem - Intermittently, the .NET agent will run out of memory. Errors will be seen in the agent logs
that look like this:2007.09.24.13.21.09.674 [0167] SEVERE Timer Timer.DoWork(45037227) caught exception!
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at Mercury.Util.TrimStack..ctor(Int32 capacity)
at Mercury.Util.CaptureBuffer..ctor(Boolean useTrimStack, Boolean localEndianLE, Boolean
remoteEndianLE, IRecordStreamFactory
recordStreamFactory)at Mercury.Util.BufferPool..ctor(IBufferPoolOwner bufferPoolOwner, Boolean useTrimStack, Boolean
localEndianLE, Boolean remoteEndianLE)at Mercury.Capture.BufferedSink.SetEndians(Boolean localEndianLE, Boolean remoteEndianLE)
at Mercury.Capture.OpalSink.ChannelConnected()
at Mercury.Capture.OpalSink.SinkChannelConnected(Object o)
at Mercury.Util.Timer.DoWork()
Cause - The default scope for the LWMD Instrumentor was too wide: We were instrumenting Collections
in assemblies/appDomains that caused the target application to hang.Resolution - Changed the default ignoreScope settings for the LWMD.points to match the ignoreClass
settings for the POC.points.- 30771 - The .NET Agent does not send data to the mediator when the Agent is configured in "AD" mode
even when the agent is loaded using LR or PC.Problem - When the mode for the .NET Agent is set to AD <modes AD="true" /> n data is sent to the
mediator even when the Agent is in a run (LR\PC).Cause - This is actually proper behavior, but the modes are not properly documented.
Resolution - The fix is to update the documentation and the configuration file to describe the modes
properly:PRO Mode
When PRO mode is set the probe gathers additional metrics and presents them in the Diagnostics
Profiler for .NET user interface which is made available through a URL on the probe host. In this mode
the profiler is always collecting data even when the profiler UI is not in use. This mode can be combined
with other modes. If this mode is not set when in AD or AM mode then profiler data will not be available.AD Mode
In AD mode the .NET agent will only capture data during runs from LoadRunner/Performance Center
and the results will be stored in a specific Diagnostics database for that run, for example, Default
Client:21. When the agent is in this mode it will not use resources or send any data to the server unless
the probe is part of a LoadRunner/Performance Center run. AD mode supersedes all other modes. So for
example, if AD mode and any other modes are set then mode will be set to AD.AM Mode
In AM mode the .NET agent will capture all instrumentation data. In AM mode the .NET agent will
ignore runs. If LoadRunner/Performance Center is executing an application, then you will see the data
in the normal Diagnostics database (for example, Default Client). AM mode supersedes all other modes
except for AD.Enterprise Mode
Enterprise mode is a combination of AD, AM and PRO modes. It will capture data for
LoadRunner/Performance Center runs in a separate database as well as capture data outside of
LoadRunner/Performance Center runs. In this mode data will also be sent to the profiler. Both AD and
AM modes will override this mode. If the PRO mode is set along with Enterprise mode then the .NET
agent will collect data continuously for the profiler even if the profiler UI is not in use. If PRO mode is
not set then the agent will not start collecting until the profiler UI is started.TV Mode
TV mode will send events to Transaction Vision. This mode can be combined with other modes
(The Auto mode is no longer used.)
Note about AD Mode and Enterprise Mode
The .NET agent gets notified of LoadRunner/Performance Center runs by the Diagnostic Mediator.
If LoadRunner/Performance Center starts testing an instrumented application that is not running, for
example, a web application getting hit the first time, then when the application starts executing the
Diagnostics agent will not be notified of the run. This is because the agent will not have had enough time
to get initialized and start listening to the mediator for this notification.To work around this problem, the .NET agent needs to be "primed"(initialized) by a call to the web
application before a LoadRunner/Performance Center run is started. This initializes the web
application's process (worker process) and the probe so that it is ready to accept run information from
the mediator.- 34231 - Need Protection against Instrumenting the HP.RemotingCorrelation.dll.
Problem - The .NET agent instruments internal code incorrectly.
Cause - Diag should never instrument this code.
Resolution - Changed the Instrumenter to mark this assembly as uninstrumentable:
src/CorProfiler/corProfiler.hpp and src/CorProfiler/corProfiler.cppJava Agent Defect Fixes
- 32771 - Java probe invoked via -javaagent on IBM 1.5 JVM on AIX demonstrates high overhead.
Problem - The CPU overhead when using the Diagnostics Java agent with AIX IBM J9 JVM 1.5.0 is
very, very high.Cause - A bug in the IBM 1.5 JVM is causing the high overhead.
Resolution - The IBM 1.5.0 JVM supports the -javaagent option. However, using the option may
sometimes cause increased CPU utilization by the JVM, which can mislead you to see it as Java agent
overhead. Moreover, this option makes the IBM 1.5.0 JVM ignore the -agentpath option which is used
by Diagnostics agents to load native libraries needed for the Heap Walker functionality. To avoid
performance issues or to use Heap Walker, use the JRE instrumenter and pre-instrument this JVM just
as you would for a Java 1.4 JVM.- 30440 - Memory Analysis/Heap Walker tab is not shown in the java profiler for IBM Java 1.5 on ppc-
linux platform.Problem - Start the java probe on a ppc-linux box with option:
"-agentpath:/opt/optibnch/JavaAgent/DiagnosticsAgent/lib/ppc-linux/libjvmti.so", the Memory
Analysis/Heap Walker tab not shown, instead the heapdump tab is shown.Cause - A defect in the IBM JVM causes this problem.
Resolution - The solution is to use the jreinstrumentor for IBM JVM 1.5 even though it is normally only
used for 1.4. This is described above in the 32771 defect fix.- 34069 - The Java agent can crash BEA WebLogic.
Problem - This is a rare problem with JRockit version 1.5.0_06 when the JVM/WebLogic application
server is instrumented by the Java agent.Cause - An unusual bytecode combination is causing JRockit to abort.
Resolution - A workaround was added to eliminate the unusual bytecode combination.
- 33920 - Data from a Java agent only shows up for 5-10 minutes on Turkish systems.
Problem - On a Turkish system, the Java agent data is looking OK for 5 to 10 minutes and then it drops
off. It appears to be OK in memory, but does not show up in the UI.Cause - This issue is caused by the language setting on the system set to Turkish. Some code that
compared strings was not properly internationalized (i.e., made to work with all possible languages).Resolution - The code was modified to be properly internationalized.
- 33302 - Memory leak in the agent in AD mode when LoadRunner specifies less than 100% sampling rate.
Problem - When using LoadRunner and Diag is configured to less than 100% sampling rate, the JVM
running the agent runs out of memory. The probe.log will contain entries similar to the following:2009-07-29 19:35:20,896 SEVERE com.mercury.opal.capture [Servlet.Engine.Transports : 136] Error
capturing invocationjava.lang.OutOfMemoryError
at java.util.HashMap.clone(HashMap.java(Compiled Code))
at java.util.HashSet.clone(HashSet.java(Inlined Compiled Code))
at com.mercury.opal.capture.sample.FragmentsSampleMethod.shouldSample(FragmentsSampleMethod
.java(Compiled Code))at com.mercury.opal.capture.ThreadContextAgent._passedSampling(ThreadContextAgent.java(Compiled
Code))at com.mercury.opal.capture.ThreadContextAgent.pushFrame(ThreadContextAgent.java(Compiled
Code))at com.mercury.opal.capture.BasicMethodCaptureAgent.beforeInvocation(BasicMethodCaptureAgent.java
(Compiled Code))at com.mercury.opal.capture.proxy.MethodCaptureProxy.beforeInvocation(MethodCaptureProxy.java(Inlin
e
d Compiled Code))at com.mercury.opal.capture.proxy.MethodCaptureProxy.beforeInvocation(MethodCaptureProxy.java(Inlin
ed Compiled Code))Cause - Internal coding issue.
Resolution - Used a different approach to avoid the memory issue.
- 32763 - Java agent: event buffer corruption.
Module - Java Agent
Problem - The probe.log contains entries as follows:
WARN correlation [Buffer write thread] Popped everything from the stack, ignoring fragment.
WARN correlation [Buffer write thread] Attempting to pop an event from an empty stack at least once,
ignoring.SEVERE correlation [Buffer write thread] popEvent with depth < 0 @ -... received
WARN correlation [Buffer write thread] Dropping fragment ... because it has negative latency. (This is
logged only once)WARN common [Buffer write thread] Unable to obtain coloring information. The byte array length
:<number> is smaller than expected size : <huge-number>WARN com.mercury.opal.capture.event [Buffer write thread] Unable to obtain coloring information.
Event length is too small to contain coloring information.WARN correlation [Buffer write thread] Captured more than one SOAP fault event. The earlier event
will be ignored.SEVERE class com.mercury.diagnostics.capture.correlation.CorrelationSink [Buffer write thread]
java.lang.ClassCastException:com.mercury.diagnostics.capture.correlation.StackFrame$FragmentPlaceholder
After these errors, the probe is not working correctly.
Cause - The events retrieved by buffer write thread from the event buffers are corrupted.
Resolution - Addressed the race condition by ensuring that the thread's last buffer will be freed exactly
once.- 33592 - App does not start with JMS-Queue Sender in auto_detect.points.
Problem - WebSphere application does not start when the Java agent is installed. The following appears
in SystemErr.log:[8/6/09 15:10:12:257 EDT] 0000002d SystemErr R at
com.bcbsfl.vo.wvo.etgw.ais.icore.impl.ICOREClaimProcessorImpl.validateMember(ICOREClaimProcesso
rImpl.java:76).
.
.
[8/6/09 15:10:18:894 EDT] 0000002d SystemErr R at
com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)Cause - Received JMS messages are read-only. If an application re-sends the received messages, our
coloring will fail, because we cannot add or replace properties. Thus an exception is thrown, leading to
the application crash.Resolution - Catch the exception and ignore it.
- 33599 - The default WebSphere6 PMI webAppModule metrics in the probe metrics.config sometimes are
invalid running with WAS 6.1.Problem - If a metrics has a "." in the name, then an error similar to the following is generated:
2009-08-06 12:13:30,081 DEBUG com.mercury.diagnostics.capture.metrics.jmx [Metrics Collection]
Metric [15] webAppModule.RequestCount is invalid.Cause - The code did not anticipate periods in the metric names and the parsing algorithm is not
correct.Resolution - In order to work-around this issue, it is required to add parentheses around metric_name
with periods in it. See the 8.03 updated HP Diagnostics Installation Guide for details on creating JMX
metrics entries.metric_config consists of the following entries:
group_name.metric_name
If metric_name has any '.' in it, it should be surrounded by parenthesis:
group_name.(metric_name)
For example,
WebSphere6/webAppModule.(webAppModule.numLoadedServlets) =
Servlets Loaded|count|Web Applications
where the group_name is "webAppModule", and the metric_name is
"webAppModule.numLoadedServlets".- 32091 - Multiple "Invalid invocation attribute event" warnings
Problem - Probe logs are filled with "Invalid invocation attribute event" warnings
Cause - Complex internal algorithm issue.
Resolution - Modified the algorithm to avoid the unnecessary warning.
Collector Defect Fixes
- 33940 - SQL Server Collector - Connecting to named instances does not work.
Problem - When collecting metrics from MS SQL Server, if you specify a 'named' instance in the
sqlserver-config.xml and start the collector, the connection fails with the error "Error:
java.net.SocketTimeoutException: Receive timed out."Cause - SQL Server Collector could not connect to named SQL Server instances.
Resolution - The port is now the only thing we use during the connection process. This is actually also
recommended by the SQL Server JDBC documentation. The instanceName is not needed so it's now an
optional field in the configuration. The configuration is actually simplified a bit as well. The problem was
that the presence of the instanceName was causing us to fail to connect to the DB because of a bug in the
JDBC driver. This bug was fixed in the version 2.0 of the driver.Documentation Defect Fixes
- 34190 - Fix errors in the custom instrumentation documentation for code snippet grammar for literals.
Problem - Need to remove Arrays; add a no-type, no-value constant to Chapter 9 Instrumentation for
Java Applications of the Diagnostics Installation and Configuration Guide.Resolution - See below for correct documentation.
Code Snippet Grammar
Literals
Only the following literal types are supported in code snippets.
Literal Type Syntax Example string "a string" boolean true, false integer 42 null constant null A no-type, no-value constant void
- 28676 - The Diagnostics Installation and Configuration Guide does not contain probe configuration
information for TIBCO ActiveMatrix and Business Works.Resolution - See below for documentation.
The following instructions describe how to configure TIBCO ActiveMatrix and Business Works so that
the applications can be monitored by the probe.For TIBCO ActiveMatrix Service Bus, locate the .tra file and set up the Diagnostics agent JVM
parameters (-javaagent and -Dprobe) as shown in the example below. Note the use of backslash (/).java.extended.properties=-javaagent:C:/diag/lib/probeagent.jar -Dprobe.id=tibco_node1
For TIBCO Business Works, you set up the Diagnostics agent JVM parameters in different files
depending on how you deployed the application.Update bwengine.tra with the JVM parameters (see the example above for -javaagent and -
Dprobe) if deploying the application using TIBCO Administrator.Update designer.tra with the JVM parameters (see the example above for -javaagent and -
Dprobe) if deploying the application using TIBCO Designer.- LWMD configuration documentation for .NET agents is incomplete.
Problem - The existing LWMD configuration documentation for .NET agents in the Diagnostics
Installation and Configuration Guide is incomplete and needs to be updated.Resolution - See the updated 8.03 HP Diagnostics Installation Guide for updated instructions on
enabling LWMD for .NET Agents.What's New in 8.02
Diagnostics 8.02 has a large number of defects fixed and a number of new features.
New Features
- Enhanced Load Runner/Performance Center Metrics Integration
Background: As part of the Diagnostics/Load Runner/Performance Center (LR/PC) integration,
Diagnostics probe metric data can now be included for use in offline analysis (in the .eve file generated
for each run).Description: This feature is available for the Java Probe and requires LoadRunner/Performance Center
9.51 or later and Diagnostics 8.02 or later. By default, only HeapUsed, GC Collections/sec and GC time
Spent in Collections probe metric data is included in offline Analysis. To select additional probe metrics
to be included in offline Analysis (.eve file), you use the Diagnostics configuration file, etc/offline.xml. See
the 8.02 HP Diagnostics Installation and Configuration Guide chapter on Setting Up LoadRunner and
Diagnostics Integration for more information.Benefits: Enhanced functionality.
- Mediator server name shown in Server Summary screen
Background: It was not possible to quickly see in the server summary screen which probes and probe
groups belonged to which mediator servers.Description: The mediator server name has been added as a column to the server summary screen next
to the probe group.Benefits: Enhanced functionality and ease of use.
- Native features for Linux on IBM Power PC
Background: For Linux on the IBM Power PC, HP Diagnostics would work on pure Java features, but
features that required native compiles were not supported. This includes CPU timestamps on server
request, system metrics and heapwalker/heapdump (part of the Java Profiler interface).Description: With 8.02, HP Diagnostics now includes the native binaries for both 32 bit and 64 bit for
Linux on the IBM Power PC platform so the above mentioned features are now supported.Benefits: Enhanced functionality.
- Oracle BPEL Web Services
Background: Prior to this release, Diagnostics did not show Web Services for Oracle BPEL.
Description: New BPEL instrumentation points (auto_detects.points entry) and code snippets
(custom_code.properties entry) have been created. Diagnostics can now show both inbound and
outbound BPEL Web Services. However, the inbound instrumentation point by default is disabled in the
auto_detects.points file because the web service attributes are not readily available. If you are
interested in BPEL inbound Web Services, please contact an HP consultant or HP support for details on
how this can be accomplished via special customization.Benefits: Enhanced functionality.
- Java Probe support for WebSphere 7.0
Background: Prior releases did not support WebSphere 7.0 with the Java Probe.
Description: With this release, the Java Probe will now fully support WebSphere 7.0, including Web
Services and other standard features. See the 8.02 Diagnostics Installation and Configuration Guide
chapter on Configuring Application Server Startup Scripts to Work with the Java Agent for more
information.Benefits: Enhanced functionality.
- Capturing CORBA application calls
Background: In previous versions of Diagnostics, CORBA application calls were not captured by
Diagnostics.Description: With this version, the following features have been added by capturing CORBA application
calls.User can see CORBA cross-VM instance trees
User can see the CORBA topology
User can see CORBA outbound calls
User should be able to filter by "CORBA" type in the relevant screens.
NOTE - This feature only works with the new object adaptor technology, Portable Object Adapter
(POA) not the older technology, Basic Object Adaptor (BOA).Please see the 8.02 HP Diagnostics User's Guide chapter on Call Profiler View and the HP Diagnostics
Installation and Configuration Guide chapter on Custom Instrumentation for Java Applications for more
details on this feature.Benefits: Enhanced functionality.
- Users can monitor applications written using the Struts 2 application framework and see those calls in
the Server Request viewBackground: Diagnostics 7.5 is unable to capture data against Apache Struts 2 application. Diagnostics
works well with the framework Struts 1 and can show the metrics. e.g. most .do calls can be captured.
But for Struts 2, Diagnostics does not capture the same data as Struts1, . i.e. none of the .action calls are
captured.Description: In order to add support for Struts 2, new entries were added to auto_detect.points,
inst.properties and dynamic.properties. The Struts 2 support is NOT activated by default. To enable
Struts 2 support, enable points [ServletFilter] and [ServletFilter2] in auto_detect.points. To increase the
amount of collected data, also enable points [Struts2-Interceptor] and [Struts2-ActionInvocation]. If the
last two points are made active, consider increasing maximum.stack.depth in etc/capture.properties to
avoid depth trimming due to the cascading interceptor and action invocations. Also, to properly
categorize static content, you may want to change the property uri.pattern.replace in dynamic.properties
to an alternative value, as indicated within the file.Benefits: Enhanced functionality.
- Enhance metric collectors to dump all available JMX and PMI metrics to a file to make it somewhat
easier to configure new JMX/PMI metrics in metrics.configBackground: Chapters 20-22 of the Installation and Configuration Guide explains to the user how to
customize the JMX/PMI metrics collectors. Part of the configuration for this metrics collector is to
modify the etc/metrics.config file and add metric information to this file for Diagnostics to collect.
The difficulty of doing this is that the user must get the metric names exactly right for it to work. This
was error prone and frustrating for the user.Description: In order to make this configuration somewhat easier, a feature was added to dump all the
available metrics for each JMX collector into a file. When the following property in the probe
etc/metrics.config file is set to true, the probe will dump the available metrics of each JMX/PMI collector
to text files in the probe log directory. This property can be changed at runtime. It is recommended that
the property is only set to true temporarily to dump the available JMX/PMI metrics. After the metrics
are dumped, the property can be set back to false (or comment out) to avoid the overhead when the probe
periodically dumping the metrics. The dump file is at <probe-dir>/log/<probe-id>/jmx_metrics_<collector-
name>.txt.default.dump.available.metrics = true
In each dump file, the available MBean ObjectNames and their collectable attributes are listed as shown
below:======= MBean ObjectNames and Available Attributes =======
MBean ObjectName:
WebSphere:J2EEServer=server1,JDBCProvider=Derby JDBC Provider,JDBCResource=Derby JDBC
Provider,Server=server1,cell=yli87Node01Cell,diagnosticProvider=true,j2eeType=JDBCDataSource,mbe
anIdentifier=cells/yli87Node01Cell/nodes/yli87Node01/servers/server1/resources.xml#DataSource_12442
31364323,name=WST_PriceGen,node=yli87Node01,platform=dynamicproxy,process=server1,spec=1.0,
type=DataSource,version=6.1.0.0Available Attributes:
name: loginTimeout, type: int
name: statementCacheSize, type: int
name: testConnectionInterval, type: java.lang.Integer
........................
Users may use this info to add a JMX metric config in the probe etc/metrics.config file. For example:
WebSphere6/WebSphere\:type\=DataSource,*.statementCacheSize = JDBC Statement Cache
Size|bytes|JDBC DataSourceOr, they may use the optional GROUPBY modifier to create a separate metric for each matched group of
MBean ObjectNames with the same value of the key specified by GROUPBY.WebSphere6/GROUPBY[name]/WebSphere\:type\=DataSource,*.statementCacheSize = JDBC
Statement Cache Size|bytes|JDBC DataSourceFor WebSphere JMX collectors, besides the above generic MBean JMX metrics, the available WebSphere
specific PMI metrics are also dumped to the WebSphere collector's dump file. This includes the PMI tree
instance paths and their available statistics, and the PMI module config info. For example:
======= PMI Tree and Available PMI Statistics =======
connectionPoolModule
Available Statistics:
CreateCount, CloseCount, AllocateCount, ReturnCount, PoolSize, FreePoolSize, WaitingThreadCount,
FaultCount, PercentUsed, PercentMaxed, UseTime, WaitTime, ManagedConnectionCount,
ConnectionHandleCount, PrepStmtCacheDiscardCount, JDBCTimeconnectionPoolModule->Derby JDBC Provider
Available Statistics:
CreateCount, CloseCount, AllocateCount, ReturnCount, PoolSize, FreePoolSize, WaitingThreadCount,
FaultCount, PercentUsed, PercentMaxed, UseTime, WaitTime, ManagedConnectionCount,
ConnectionHandleCount, PrepStmtCacheDiscardCount, JDBCTimeconnectionPoolModule->Derby JDBC Provider->jdbc/ALBUM
Available Statistics:
CreateCount, CloseCount, AllocateCount, ReturnCount, PoolSize, FreePoolSize, WaitingThreadCount,
FaultCount, PercentUsed, PercentMaxed, UseTime, WaitTime, ManagedConnectionCount,
ConnectionHandleCount, PrepStmtCacheDiscardCount, JDBCTimeUsers may use the above PMI info to add new PMI metric/statistic configs to the probe etc/metrics.config
file. For example:WebSphere6/connectionPoolModule.CreateCount = JDBC Connection Creates|count|JDBC
ConnectionPoolsWebSphere6/[connectionPoolModule][Derby\ JDBC\ Provider][jdbc/ALBUM].AllocateCount = JDBC
Connection Allocates|count|JDBC ConnectionPools- Enhance probe metric collector to support GROUPBY like functionality for PMI
Background: In the probe's etc/metrics.config file, for JMX metrics that describes an MBean object name
pattern there is an optional modifier GROUPBY that can be added, which tells a JMX-based collector to
treat the metric_config as multi-instance expression:collector_name/GROUPBY[oname_key]/metric_config = ...
The collector will find all MBeans matching the metric_config and create a corresponding metric for each
of them using the object name key oname_key to provide unique naming by appending it to category_id.Description: Starting with 8.02, it is now possible to group PMI metrics in a similar as JMX metrics.
For PMI, the EXPAND_PMI modifier is specified to expand the PMI tree from the given module or
StatDescriptor branch by the specified level. The expansion level "n" can be 1, 2, ..., or *, with the default
level of 1 and * means expand all:collector_name/EXPAND_PMI[n]/metric_config = ...
For example,
WebSphere6/EXPAND_PMI[*]/connectionPoolModule.AllocateCount = JDBC Connection
Allocates|count|JDBC ConnectionPoolswill create "JDBC Connection Allocates" metric for each JDBC connection pool provider and for each
DataSource of the provider.Defect Fixes
Note that the defect tracking number shown (for example 27449) is generally prefixed with QCCR1I.
- 27449 - Recursive directory structure in JavaAgentSetup_win_8_01.exe.
Problem - After the installation of the Java agent on Windows, a repeat directory structure is located in
the following path:
C:\MercuryDiagnostics\JavaAgent\TransactionVisionAgent\config\sensor\AgentConfig\config
\sensor\AgentConfig\config\instrumentDef.
Many files are duplicated from the first occurrence of the AgentConfig directory.
Resolution - The installer was fixed to not repeat the directory.- 27257 - Diagnostics 7.5 is causing OOM issues on Weblogic Server 10.0.1.
Problem - If an application generates dynamic RMI classes and the [RMI] point was enabled, the
JVM/Application Server will run out of memory.
Resolution - The problem was caused by the dynamic RMI classes. Diagnostics was not freeing up
memory when instrumenting these points. The code has been modified to properly free memory in this
rare situation.- 29018 - Missing SQLs on WebLogic.
Problem - The Java agent is currently unable to collect some SQL statements on WebLogic
Resolution - After investigation, it was determined that this happens whenever non-standard JDBC
classes are being used (i.e. classes that do not implement the standard java.sql.* interfaces). The Java
agent relies on the standard interface (via a hardcoded BCEL instrumentation point - JdbcSQLPoint) to
determine that it should collect SQL statements. This was fixed by converting s the BCEL l code into
code snippets so that any instrumentation point can reference it (whether it implements the standard
JDBC interfaces or not).- 13647 - JMX Metrics are not collected for WebSphere (due to adding Apache Tomcat support in 8.0).
Problem - In 8.0, a new JMX collector was added for Apache Tomcat. This collector interferes with the
WebSphere JMX collector and WebSphere JMX metrics are not properly collected and are not displayed
in the enterprise UI.
Resolution - For 8.02, these Apache Tomcat metrics and their collector have been commented out in
metrics.config until a more permanent solution can be found in 9.0.- 30571 - Error retrieving MAC address on AIX.
Problem - On some AIX boxes, the MAC address is not displayed for a probe in the inspector window.
Resolution - The MAX address is now obtained.- 30464 - Java probe - Thread tool in profiler are missing "Waited Time (ms)" and "Blocked Time (ms)"
columns.
Problem - In the Java Profiler, the columns "Waited Time (ms)" and "Blocked Time (ms)" are missing,
even after enabling the property threads.contention.monitoring.enabled=true in
<probe>/etc/probe.properties.
Resolution - The columns are now present.- 30449 - Java Probe - thread tool in java profiler doesn't work using IBM JVM 1.5.
Problem - The SEVERE error below is seen in the probe.log file:
2009-04-22 11:33:55,452 SEVERE class com.mercury.diagnostics.capture.threads.ThreadTool
[RangeSocketListener-0] Failed to get JMX thread info: java.lang.reflect.InvocationTargetException
And the thread tool in the Java Profiler does not work. This is only with certain IBM 1.5 JVM's.
Resolution - The SEVERE error no longer occurs and the thread tool works.- 30320 - WAS 6.1 errors when run the PlantsByWhereSphere sample.
Problem - After running a WebSphere 6.1 application server and the PlantsByWebSphere sample, if you
click on a plant link the following error page appears:
An Error has occurred during PlantsByWebSphere processing.
Jsp Error Page
Using attributes javax.servlet.error.message ...status_code ...exception as specified by Servlet 2.2 to get
information
Processing request:http://localhost:9080/PlantsByWebSphere/error.jsp
StatusCode: 500
Message:CORBA TRANSACTION_ROLLEDBACK ... Please Check the application server log files for
details...
The application server log file has the following error info:
[4/28/09 10:50:48:052 PDT] 0000001a SchedulerImpl E SCHD0124E: Unable to initialize
sched/samples/scheduler/accountreport due to error:
com.ibm.ws.extensionhelper.exception.UnableToInitializeException: java.lang.VerifyError:
(org/apache/derby/impl/jdbc/EmbedConnection) invalid returnAddress for ret instruction in method 11
(prepareStatement(Ljava/lang/String;[I)Ljava/sql/PreparedStatement;) at pc=65535
Resolution - The root cause is a bug in IBM J9 1.5 JVM 2.3 (SR2) which is bundled with WebSphere 6.1.
A newer version, from November 2007, IBM J9 1.5 JVM 2.3 (SR5) has been tested. It does not have this
problem.28674 - Missing SQL statements in Diagnostic UI for Oracle .
Problem - When instrumenting Oracle Application Server, sometimes SQL statements will be missing
from the enterprise UI.
Resolution - Some of the "code snippets" for the Oracle Application Server were flawed. Once corrected
the SQL statements appear.- 29463 -.Net probe - Consumer ID from SOAP Header isn't shown in the enterprise UI
Problem - Even after defining the proper SOAP rules in probe-config.xml file, the consumer ID is not
present in the UI.
Resolution - An internal coding error was corrected and now the consumer ID will appear.- 27412 - Turning SSL on for the Diagnostics Server causes errors in the Probes
Problem - Turning SSL on for the Diagnostics Server causes errors in the Probes, the probe fails to
communicate with the Mediator. And an exception can be found in the logfile.
Resolution - Coding issue was fixed.- 27731 - Need to support lower screen resolution in JASM for better UI experience.
Problem - The JASM install utility requires a high screen resolution. On a lower resolution screen, the
buttons are off the screen and the UI is extremely difficult to use.
Resolution - The utility no longer requires a high resolution.- 26391 - Severe performance problem when retrieving raw registrar XML on the commander with large
number of probes
Problem - Connect a large number of probes to mediator (~500) and run /registrar/xml, it takes a long
time to execute the query on the server (for example, 7 seconds) and CPU spikes, when it should take 1-2
seconds.
Resolution - Excessive debug logging was slowing down the processing (even if debug is not enabled!).
Made the debugging conditional.- 29581 - TV to Diagnostics drill down work only in every other click or page refresh.
Problem - Steps to reproduce:
1. Setup TV and Diagnostics integration.
2. Go to Transaction Tracking Details report and find a transaction that contains Servlet events.
3. Click any TV-Diagnostics drill down button. There should be a Diagnostics window popping up and
showing the relevant Servlet request.
4. Without closing the Diagnostics window, go back to the Transaction Tracking Details report page, and
click any TV-Diagnostics drill down button again.
Actual:
The Diagnostics window show up again, but it does not show any data even after a long time.
Now, if TV-Diagnostics drill down button is clicked again, or the browser's Reload button, it will give the
correct Servlet request view.
However, if the browser's Reload button is pressed again, the same problem occurs again.
Expected:
The TV-Diagnostics drill down and page reload should work every time.
Resolution - A race condition where screen data is retrieved before the solution state is updated with the
flavor was fixed. The navigation helper is instantiated at solution container start so a flavor is
guaranteed.- 27355 - Need to change "Unsupported Database xxxxx" to something more meaningful
Problem - In the topology view we see the string "Unsupported Database xxxxx" for unsupported
databases. It is unclear what is meant by "Unsupported".
Resolution - Change the string to remove the "Unsupported" to avoid some confusion.- 30711 - The JOLT instrumentation points cause the application to run out of memory.
Problem - The code snippet in the JOLT points extracts byte arrays, which are then used as the
argument. Since those byte arrays change every time (and the probe keeps the arguments around), the
probe can run out of memory.
Resolution - The memory is properly freed and the out of memory issue is eliminated.- 27550 - Consumer IDs cannot be specified in WLS 10 when depth > 1
Problem - The property max.search.level.depth did not work for consumer ID captured through our
SOAP handler. It only worked for consumer ID captured through our code snippets.
Resolution - It now works for both ways.- 30712 - The JNDI code snippet causes the probe to run out of memory
Problem - Customer application would run out of memory when the application uses JNDI with
uniquely named objects.
Resolution - Modified instrumentation points and code snippets to not aggregate on the name of the
looked up object.- 30160 - .Net probe - Outbound Web service call to a Java Probe is not captured correctly in .NET
Server Request
Problem - Sometimes, the web service name is truncated in the Enterprise UI.
Resolution - Internal coding issue - the name will no longer be truncated.What's New in 8.01
Diagnostics 8.01 contained only defect fixes, no new enhancements.
- 96592-Error when installing the 8.0 .NET probe on a computer with only .NET 1.1 installed.
Problem: When installing the .NET probe on a computer with only .NET 1.1 installed, the following error
will occur: "Error writing to file: HP.DiagNET30.dll. Verify that you have access to that directory",Cause: The installation code is attempting to access a .NET 2.0 DLL which is not present.
Resolution: The installer will now check if .NET 2.0 is installed before attempting to invoke the DLL.
- 96576 -.NET Agent -- Remoting app crashes with security exception when Remoting correlation is
enabled.Problem: Security exceptions are thrown trying to instrument .NET remoting applications:
System.Security.SecurityException: Request failed.
Cause: The probe did not take into account certain Microsoft security considerations when implementing
the remoting instrumentation.Resolution: The probe is now built with special considerations to avoid the security exceptions.
- 96582- JMX collector error org.jboss.system.server.jmx.MBeanServerBuilderImplProcess causes JBoss
to failProblem: JBoss fails to start with diagnostics agent enabled, the following error can be found in JBoss
logs:javax.management.JMRuntimeException: Failed to load MBeanServerBuilder class
org.jboss.system.server.jmx.MBeanServerBuilderImpl: java.lang.ClassNotFoundException:
org.jboss.system.server.jmx.MBeanServerBuilderImplNote: This occurs when BAC gateway/processing server is enabled with Diagnostics agent.
Workaround: The workaround is to add the following to the Diag Install directory\etc\metrics.conf
1) Find this Java\ Platform.builders.to.ignore
2) At the end of line append this org.jboss.system.server.jmx.MBeanServerBuilderImpl example after
the edit Java\ Platform.builders.to.ignore ... org.jboss.mx.server.MBeanServerBuilderImpl
org.jboss.system.server.jmx.MBeanServerBuilderImplCause: The collector did not exclude this particular MBean builder and thus it did not force the default
builder to be used.Resolution: The collector now excludes this particular MBean builder and always uses the default
builder instead.
- 97174- System metric values are limited to about 1,000,000,000
Problem: After enabling optional system metrics on Windows:
system/\\Process(beasvc)\\Virtual\ Bytes = Virtual Bytes (beasvc)|bytes|Process
system/\\Process(beasvc)\\Private\ Bytes = Private Bytes (beasvc)|bytes|Process
system/\\Process(beasvc)\\Working\ Set = Working Set (beasvc)|bytes|Process
This message appears every 3 seconds in the probe.log:
2009-01-20 10:59:57,880 WARN class com.mercury.diagnostics.capture.metrics.SystemCollectorFacade
[System Metric Logger] [redirect] Extremely high metric value caught.Cause: Internal coding error.
Resolution: Metric values have a much larger limit that will never be reached.
- 96590- Health graph not available
Problem: Health graph not available in SaaS because it uses server's port instead of port as seen from
client. This does not work when the port is redirected and the server port is not accessible directly from
the client.Cause: The Applet was getting the host and port from the server. This is not valid in situations where
the client needs to use a different host or port.Resolution: Changed the applet to get the host and port from the base document.
- 96579- 414,Request URI Too Large in jetty.log
Problem: After adding a huge number of probearcs to an application (preferably by adding probes which
have probearcs), the error 414 occurs in jetty.log.NOTE: The jetty.log usually indicates the URI too long on an app contents query, but sometimes it
shows other queries and yes, they are all fairly short URIs. The actual URI that causes the error is not
the one logged.Cause: Internal coding error.
Resolution: Converted the code to use GET instead of POST operations to avoid the size limit.
- 98698- Mediator / Commander Proxy support fails.
Problem: If you configure a mediator to use a proxy to communicate to the Commander, the Mediator
communications for CrossServerSync could fail, CAM applications queries could fail and messages could
appear in server.log like the following:2009-01-31 03:48:45,573: WARNING mediator : Query to commander failed: <HTML><HEAD>
2009-01-31 03:48:45,573: WARNING mediator : <TITLE>Request Error</TITLE>
2009-01-31 03:48:45,573: WARNING mediator : </HEAD>
Cause: CAM support queries were not properly UTF8 encoded and were being rejected by the proxy.
Resolution: Problem was fixed by changing the code to use the HTTP POST now available for queries.
POST moves the query arguments from the URL to the body which doesn't have the encoding issue.- 96593- Server Dead Locks at startup when enabling proxy usage in server.properties file.
Problem: Enable proxy usage by completing the following properties in server.properties:
proxy.host=web-proxy.rose.hp.com
proxy.port=8080
proxy.protocol=http
The server then fails to start. It deadlocks in the module startup. No log files will indicate the hang,
making it very difficult to identify.Cause: The previous fix introduced a deadlock on server startup when a proxy was configured.
Resolution: Changed the implementation to correct this problem.
- 96577- BAC/LR Integration - all transaction instances timed out in the SSL mode commander server
integration.Problem: Follow the Diagnostics install and config guide to turn on the commander server in SSL mode,
then integrate the SSL mode commander server with non-SSL BAC server using the https protocol.
Almost all transaction instances will time out in this situation.Cause: When HTTPS is enabled on the Commander, LR/BAC/PC are using the XML document
generated by FacadeMessageComponent URL (/facade/StartRun) to determine what host and port to
send ETLs. The information for the host and port of the Commander come from the RegistrarInfo.
Thus, the HTTPS port is returned. So the ELT's post on that port without a CERT.Resolution: To fix this, the code was modified to send back the port of origin of the URL request which
will usually be 2006.- 96575- Provide debugging aids for consumer id configuration
Problem: When configuring the Consumer ID from the HTTP header, SOAP payload or JMS payload, it
is very difficult to know the structure of the header or payload and therefore very difficult to configure
the Consumer ID in Diagnostics.Cause: Without the structure of the header or payload, configuring the ID is very, very difficult.
Resolution: A feature has been added to dump the payload to a file.
A new location was added called *dump-payload to the consumer.properties file. This will print the
entire SOAP payload out to a new file called consumer.log. This will provide the help needed for the
person defining the consumer rule to see the actual payload.An example of the configuration to use this new feature would look like the following:
SoapTest1;HTTP_WS;TraderService = *dump-payload
The above rule would print the SOAP Payload out for a rule that matches TraderService. The content of
the consumer.log file would be as follows:2009-01-15 14:42:13,653 INFO consumer [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default
(self-tuning)'] [PAYLOAD:] <?xml version="1.0" encoding="UTF-8" standalone="yes"?><soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:trad="http://www.bea.com/examples/Trader"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><CallerA>customerA</CallerA></soapenv:Header><soapenv:Body><trad:buy soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><string xsi:type="xsd:string">hpq</string><intVal xsi:type="xsd:int">11</intVal></trad:buy></soapenv:Body></soapenv:Envelope>
- 96568- IllegalAccessError on WebSphere 6.1
Problem: On some WebSphere 6.1 instances, when the Java probe is installed, the following error occurs:
2008-03-26 12:15:44,612 SEVERE com.mercury.diagnostics.capture.metrics [Metrics Collection] Error
initializing com.mercury.diagnostics.capture.metrics.jmx.WebSphere6JMXCollector@9800980java.lang.IllegalAccessError:
com/mercury/diagnostics/capture/metrics/jmx/JMXCollector$AttributesAndDescriptors.add(Ljava/la
ng/String;Lcom/mercury/diagnostics/common/metrics/MetricDescriptor;)Vat
com.mercury.diagnostics.capture.metrics.jmx.JMXCollector.unflattenMetricNames(JMXCollector.java:43
9)at com.mercury.diagnostics.capture.metrics.jmx.JMXCollector.initialize(JMXCollector.java:144)
at com.mercury.diagnostics.capture.metrics.CollectorControl.initialize(CollectorControl.java:384)
at com.mercury.diagnostics.capture.metrics.CollectorAgent.validateInitialization(CollectorAgent.java:854)
at com.mercury.diagnostics.capture.metrics.CollectorAgent.run(CollectorAgent.java:625)
at java.lang.Thread.run(Thread.java:797)
Cause: A bug in Websphere. A number of JMX issues were fixed between version 6.0.0.1 and 6.0.2.29.
Resolution: Update WebSphere to fix pack 6.0.2.29 will resolve the issue. Also, the SEVERE message
has been changed to a WARNING for this exception, since the metrics are still collected.- 96570- Java Probe - OutOfMemoryError for SAP NetWeaver 6.4
Problem: When running the probe with SAP NetWeaver 6.4, the probe will experience the error
OutOfMemoryError, and it becomes inaccessible.Cause: The probe had memory leaks in certain, rare situations.
Resolution: The memory leaks were fixed.
- 96589- Java Probe - WL Aqualogic ESB has lots of pending requests and blocked threads after 1 day's
runCause: - An internal call was causing the application thread to deadlock for ALSB 3.0. This is due to a
newer design and caching feature introduced in ALSB 3.0Resolution: - Replaced this call with another call through port.getDefinitions() and the problems were
fixed.- 96578- Java Probe - WL AquaLogic ESB Java probe gets many Instrumentation runtime errors with
NullPointerExceptionsProblem: After running the probe for a few days with WebLogic AquaLogic ESB, the following SEVERE
error start to show up on the java probe log file:2008-11-17 10:28:06,998 SEVERE com.mercury.opal.capture.proxy [[ACTIVE] ExecuteThread: '19' for
queue: 'weblogic.kernel.Default (self-tuning)'] Instrumentation runtime error
java.lang.NullPointerExceptionCause: A "getWsdl()" call in a code snippet was generating these errors.
Resolution: The call was removed from the code snippet and implemented in a different way.
- 96595- Stack trace sampling may cause OutOfMemory errors
Problem: When using the new stack trace sampling feature, out of memory errors occur in the probe.
Heap analysis indicates massive ThreadSample objects linked to a ProbeThreadContext object.
Cause: Stack trace sample accumulate endlessly, without being processed.
Resolution: A limit of stack trace samples per each thread in now in place.
- 96596- Stack trace samples do not get recorded correctly when multiple fragments run at the same time
Problem: Run an application with more than one thread, each running its fragment at the same time.
Configure sampling to collect data for these fragments. Instead of the stack trace samples getting
assigned to all running fragments, only one fragment/thread will get the samples.Cause: Internal coding error.
Resolution: Stack trace samples will get assigned to all running fragments.
- 96584- Probe deadlock with WebLogic 8.1 on HP-UX Itanium
Problem: In non English environments with WebLogic 8.1 on HP-UX Itanium, the probe will sometimes
hang with a deadlock situation. For example, the probe.log file might show something like this:"shared InfrequentEventScheduler": waiting to lock monitor 00265824 (object 1503a688, a
sun.misc.Launcher$AppClassLoader), which is held by "main""main": waiting to lock monitor 002658a4 (object 150a0020, a
com.mercury.diagnostics.common.loader.ModuleClassLoader), which is held by "shared
InfrequentEventScheduler"Cause: This a locale issue.
Resolution: Eliminating "export LANG=pl_PL.iso88592" from the runtime environment eliminated the
deadlock.- 96571- Sampling - server request call profile doesn't show the expected sampling data all the time
Problem: In some rare instances, even if sampling is enabled, some call profiles will not show sampling
data.Cause: Internal coding error
Resolution: Sampling will now show on all call profiles all the time.
- 96591- Increase #of event buffers for default probe configuration
Problem: In some situations, customers will run into issues where the default number of event buffers in
the probe is not sufficient for their number of working threads. Although the probe writes SEVERE
messages to probe.log, the user will not see anything wrong until the probe runs out of memory, but even
then, he/she does not make the connection.Cause: Inappropriate default values in capture.properties
Resolution: The following properties were modified in capture.properties:
maximum.buffer.size from 1000000 to 200000
minimum.buffer.size from 100000 to 20000
initial.private.buffer.count from 5 to 25
maximum.private.buffer.count from 20 to 100
gentle.reserve.buffer.count from 20 to 100
- 96597- Customer randomly not seeing data from some probes with JRE 1.4 in Sun virtual OS
environment.Problem: Trend data is missing in some situations in the enterprise UI.
Cause: It was deterrmined that the value of 8 seconds set by the global VM property interfered with
Probe to Mediator communications. Application servers running on a JRE1.4 do not have a Java API for
overriding individual HTTP Connection timeouts.Resolution: Implemented new code to access setting the socket timeout for Diagnostic Probe running in
this type of JRE.- 96586-Invalid installation path for App Servers/JMS/JDBC provided by customer needs to be detected
Problem: In the Java setup utility, if a valid path is entered but the path is not to an application server,
the setup utility does not indicate any sort of error.Cause: Inappropriate error checking.
Resolution: SetupModule now informs of incorrect path and presents the user with a choice to fix, cancel
or continue.- 96583-SEVERE Error collecting metrics for ProcessMetrics on z/OS
Problem: The following error could be found in probe.log on z/OS:
2008-12-10 00:15:33,752 SEVERE com.mercury.diagnostics.capture.metrics
[Metrics Collection] Error collecting metrics for ProcessMetrics, initialized: true [Process Metrics
Collector] -> Error collecting in Process Metrics Collector [caused by:
com/mercury/diagnostics/capture/jni/ProbeJNI.getProcessCpuPercentJNI()D]
java.lang.UnsatisfiedLinkError:
com/mercury/diagnostics/capture/jni/ProbeJNI.getProcessCpuPercentJNI()DCause: On z/OS, the Process CPU Utilization Metrics are not supported.
Resolution: The message will be changed to a WARNING and worded differently.
- 96581-Adding the ability to look into a deeper xml level when looking for consumer id in the payload
Problem: Diagnostics currently only supports finding CallerA in the first level element (element directly
under the soapenv:Header). For example:<soapenv:Header>
<kurt:CallerA>ConsumerA</kurt:CallerA>
</soapenv:Header>
Cause: Limit in the design.
Resolution: With this change, Diagnostics can find CallerA "x" level deeps, for example with a
"max.search.level.depth = 2" we would find Consumer Id:<soapenv:Header>
<kurt:id>
<kurt:CallerA>ConsumerA</kurt:CallerA>
</kurt:id>
</soapenv:Header>
The dynamic property "max.search.level.depth" was added to the consumer.properties file to control the
depth to search for consumer Id. The default value is 1 level deep; this will allow existing customers to
not see a performance hit if another customer needs to go deeper into the XML to find their consumer Id.What's New in 8.00
This release contains the following new features.
- SOA Enhancements:
- SiteScope Integration:
- Performance Center/LoadRunner Integration
- Stack Trace Sampling - visibility into additional methods without instrumentation
- Dynamic Instrumentation
- Diagnostics
- Threshold Violations per Metric
- Support for .NET 3.0, .NET 3.5 (WCF)
- CPU utilization by probe
- Object lifecycle monitoring
- EJB 3 instrumentation
- .NET Remoting Cross VM
- Tuxedo monitoring (through JOLT instrumentation)
- Licensing changes
- Scalability Improvements (reduction in server memory usage and CPU utilization)
- Ability to select multiple entities in the UI
- The Diagnostics Online Help has been changed to include a link to the HP Diagnostics
Installation and Configuration Guide pdf fileSystem Requirements
The HP Diagnostics Installation and Configuration Guide contains detailed information about system
requirements. This guide is available in a PDF version (Diagnostics_Install_Guide.pdf) located on the
installation disk or in the Diagnostics Server download package. General system requirements are provided
below for the Diagnostics Server.Requirements for the Diagnostics Server
Diagnostics uses the Java 1.6 JVM for the Server (and the Collector).
Java 1.6 JVM is supported on the following operating systems and requires the patches listed below.
For the most recent information on supported environments refer to the Diagnostics Product Availability
Matrix at http://support.openview.hp.com/sc/support_matrices.jsp.
- Windows supported versions:
- HP-UX supported versions:
- HP-UX required patches:
- To run Java on an HP-UX system (for either the Diagnostics Server or Java Probe), you must
make sure that all Java required patches are installed. The Java required patches depend upon
the Java version and the HP-UX version. For HP-UX 11.11 the PHCO_29903 patch is required.
See the following website for details on additional patches that may be required for this and
other HP-UX operating system versions: http://h18012.www.1.hp.com/java/patches/index.html.- Java 5.0 Quality Pack
- A linker patch is required. The patch ID is PHSS_35385 for HP-UX 11i v1 (11.11) systems,
PHSS_37201 for HP-UX 11i v2 (11.23) systems, or PHSS_37202 for HP-UX 11i v3 (11.31)
systems.- For HP PA-RISC HP-UX 11i v2 (11.23) Diagnostics Server the following patches (and any patch
dependencies) are required: PHKL_37121, PHSS_37947.- Linux supported versions:
- Solaris supported versions:
- Solaris required patches:
The following table lists the desired system requirements for the host of a Diagnostics Server with Java
Probes.
The following table lists the desired system requirements for the host of a Diagnostics Server with .NET
Probes.
Information on System Impacts When Probed (.NET Probe)
Information on System Impacts When Probed (Java Probe)
The requirements and general impact on the system depends on the monitored application and on the
probe configuration. The values listed above are for the default probe configuration only.Notes and Limitations
Notes and limitations are provided for the following component areas:
Probes (Java, .NET)
- On z/OS, the Process CPU Utilization metrics are not supported. (44092)
The following metrics entries should be commented out or removed in the probe's /etc/metrics.config file.
###############################
#### Process Metrics Collector
# ProcessMetrics/processCpuUtil=ProcessCpuUtil|percent|Probe
# ProcessMetrics/processCpuUtilAbs = ProcessCpuUtilAbs|percent|Probe
- In Diagnostics 8.00, new JMX metrics were added for Apache Tomcat. These JMX metrics exist in Tibco,
JBoss and possibly other application servers. However, these new metrics caused a conflict and as a
result Diagnostics could no longer collect JMX metrics from WebSphere. Because of this, the Apache
Tomcat JMX metrics are disabled by default in 8.02.If you are not using WebSphere, you can enable the Apache Tomcat JMX metrics by commenting out the
lines in metrics.config.There can be other JMX conflicts too, although we are not aware of any. If you find that you are missing
JMX metrics or need help with the configuration, please contact HP Diagnostics support.- When the dynamic property enable.stack.trace.sampling is set to "auto" (the default value), stack trace
sampling will be enabled if and only if the probe is running on Windows or Linux using one of the
following JVMs:
- Sun Microsystems HotSpot Server 1.5.0_10 or later
- BEA/Oracle JRockit 1.5 JVM version R27.5 or later
- Sun Microsystems HotSpot Server 1.6.0_06 or later
- BEA/Oracle JRockit 1.6 JVM version R27.5 or later
If you want to use this feature for any other JVM, you must manually set the property to "Enabled" in
the Profiler user interface for the probe. Be aware that for any other JVM, there is a risk that this
feature will cause unknown problems with the JVM. It should be tested very carefully in a non-
production environment before attempting to use this feature in a production environment on any JVM
not listed here. In the future, as more JVMs are certified, they will be added to the above list. (43937)- Special configuration needed to support SAP JVM NetWeaver 7.1 and later (43388)
Because NetWeaver 7.1 runs in a clustered environment, you will need to do one of the following in order
to distinguish the probes in the cluster:
- Find a way to set the probe.id for each individual server process in your cluster (an expert SAP
administrator might be able to help).- If the above is not possible, then you need to specify the keyword %0 in the probe name. Doing
this will name each probe in the cluster uniquely. For example, if you specify "-
Dprobe.id=myProbe%0" then the first probe that comes up will be called "myProbe0", the second
one "myProbe1" and so on.- There is a potential issue on HP-UX 11.23 with IBM WebSphere: When multiple probes are installed on
the same system, it can happen that the probe's communication port (35000) will be overwritten with
each startup of the probe. In this case, simply specify a different port range for each of the probes in
etc/webserver.properties, for example:- Using the Heapwalker feature with JRockit JVM version 27.3 may cause the application to crash.
Versions 27.2 and 27.4 and higher work as expected, so the problem is only with version 27.3. Please
upgrade to a higher version of JRockit to fix this problem. (43993)- CPU times can be larger than latency times on Windows 2003.
On Windows 2003, the CPU timer has only 15.625 ms accuracy. In other words, the CPU timer is
incremented only 64 times per second (64 * 15.625 ms = 1 second). So every method invocation will
"consume" CPU time with a multiplicity of 15.625 ms, zero included, but no other values are possible.For larger latencies, for long time intervals, and for frequent server requests the average CPU remains
reasonable. The problem is visible for short, infrequent server requests only, where `luck' causes the
server request to execute when the CPU timer jumps by 15.625 ms.JAVA and NET Probes will demonstrate this problem. This is a problem with Windows 2003 and cannot
be fixed by Diagnostics. (42371)- When the Diagnostics/TransactionVision Agent is run in "dual" mode, there is a limitation on JDBC
calls. "Dual" mode means that both Diagnostics Java probe and TransactionVision Java sensor are
enabled on the system. In this configuration, Diagnostics has the following limitations:1) No data will show up from nodes in "dual" mode in the "SQL Statements" view.
2) When drilling down to a Call Profile, JDBC calls will not show the SQL statement in the Arguments of
the call.This problem will be fixed in a future release of Diagnostics. (42989)
- GC Time Spent in Collector metric may be inaccurate (JRockit JREs only)
The problem is caused by a bug in JRockit JRE which reports the time spent in GC in nanoseconds
rather than in milliseconds, as specified.Workaround: either upgrade JRockit to version 1.5.0_10, build
R27.2.0-131 (or later) or modify the Rate setting as follows:In <probe_install_dir>/etc/metrics.config, change "[0.1]" to "[0.0000001]" in the line which defines "GC
Time Spent in Collections" metric. For example:Java\ Platform/java.lang\:type\=GarbageCollector,*.CollectionTime = RATE[0.0000001](GC Time
Spent in Collections|percent|GC) (42344)- If the following WARN message is found in the probe.log file on the probe system:
2006-11-28 07:07:27,171 WARN com.mercury.opal.capture [ExecuteThread: `8' for queue:
`weblogic.kernel.Default'] Maximum number of SQL queries cached (4096). The values of some prepared
SQL queries will be lost. See sql.cache.size in capture.properties.Then you will need to increase the sql.cache.size in the capture.properties file on the probe system.
(40639)- Do not run jreinstrumenter from the Java Agent Setup Module if you are installing the probe only in
order to get the standalone system metrics agent. (42069)- By default, Diagnostics does not monitor server requests that always execute in under 51 milliseconds.
These requests are trimmed-no information is captured about them. SQL statement executions made
from these trimmed requests are not recorded, even if those same SQL statements are timed and
recorded in the context of executing other server requests. In addition, the probe-level layer breakdown
does not include time taken by trimmed server requests.An exception to this is in a case where, on at least one occasion, a server request takes longer than 51ms
to execute. Future executions of that server request are recorded, even if the subsequent requests are
faster than 51ms. The reason for this behavior is to report accurate averages (and not mislead the user
into thinking that this request only ran once or twice when in actual fact it is constantly running, just
very quickly). This "Always Record" flag lasts for 1 hour from the last time an execution over 51ms was
seen.You can redefine the 51ms trimming threshold. For the .NET Probe in all modes or for a Java Probe
integrated with LoadRunner or Performance Center, you configure this setting in the
<diagnostics_server_install_dir>\etc\trimming.properties file. For the Java Probe in standalone mode
or integrated with Business Availability Center, you configure this setting in the
minimum.fragment.latency property in the <probe_install_dir>\etc\dispatcher.properties file. All .NET
Probe trimming configuration is done in the <.NET_ probe_install_dir>\etc\probe_config.xml file.
(40631)- Memory Analysis/Heap Walker does not work on IBM JVM due to a defect on the IBM VM. (40630)
- A defect in the JVM on Linux (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6330858) results in
the thread CPU times being the same for all threads in BEA WebLogic 9.0. This bug was fixed in JDK
1.5.0_07. (40391, 39387)- The Java Probe causes core dump at startup of WebLogic 9.1 when used with JRockit VM version
150_04. The JRockit bug is fixed on jdk1.5.0_06. (38545)- By default, for performance reasons, Diagnostics does not capture target information for Database calls.
Therefore, these calls do not show up in the Outbound Calls view. You can enable it as follows:
- For version 7.0 and higher of the Java Probe, set create.database.fragmentArcs=true in the
probe's dispatcher.properties file.- For Java Probes earlier than version 6.5 and .NET Probes, set
create.database.fragmentArcs=true in the server.properties file for the Diagnostics Server in
Mediator mode. You should also use this workaround if enable.probe.aggregation in the Java
probe has been changed from its default value of true to false.Once capturing of Outbound database calls has been enabled, these calls will be displayed in the
Outbound Calls view. (40722)- For non 1.5, VM Heap Breakdown is based on an experimental api (JVMPI) in the JVM and is not
expected to work in the following JVMs:- Probe throttling does not decrease when load is reduced on the SAP NetWeaver app server.
Workaround: Increase the maximum number of buffers available to the probe. (See the HP Diagnostics
Installation and Configuration Guide.) (34278)- Running the profiler directly on z/OS is not supported. The script "profiler.sh" has been removed in the
7.50 version of the z/OS probe, it will exist in previous versions but cannot be successfully run on z/OS.
To run the profiler for a probe on a z/OS system, do so from a platform other than z/OS. (42369)Integration (BAC, LoadRunner, Performance Center, TransactionVision, SaaS)
- Diagnostics 8.04 LoadRunner Add-In does not work with LoadRunner 11 and Diagnostics Server 8.x. (46357)
The Diagnostics GUI is not visible in the Diagnostics tab of the LoadRunner Controller during a load test in which at least one Diagnostics agent is selected to participate.
Workaround: This problem does not occur on all systems. If encountered however, it can be resolved by installing the
Diagnostics 9.x LoadRunner Add-In. The package is available from the Diagnostics 9.x product download site and it is included in the Diagnostics 8.05 server patch bundle.- If, when you install Diagnostics Server you chose the option to integrate with BAC and make the
Diagnostics installers available from BAC, then in BAC, the Admin> Diagnostics> Downloads page
displays an incomplete list of the installers for Diagnostics components. (44105)Workaround: Copy all the installers from the Diagnostics DVD Diagnostics_Installers directory to the
<HP Business Availability Center root directory>\AppServer\webapps\site.war\admin\install
directory on the HP Business Availability Center Gateway Server. If required, create the admin\install
directory structure. Then in BAC you can go to Admin> Platforms> Downloads to find the complete list
of the installers for Diagnostics components.- Document BAC Lightweight Single Sign-on Parameters (33807)
Additional configuration for single sign-on between TV and Diagnostics is required if the BAC token is changed.
Workaround: For single sign-on between TV and Diagnostics to work correctly, the Token Creation Key
(initString) in Business Availability Center Authentication Management Wizard (Admin > Platform >
Users and Permissions) and the lwsso.init.string in etc/security.properties on the Diagnostics
commanding server have to match. If the BAC token is changed from the default for security reasons,
the change needs to be reflected in Diagnostics.- Jboss fails to start with diagnostics agent enabled, the following error can be found in Jboss logs:
javax.management.JMRuntimeException: Failed to load MBeanServerBuilder class
org.jboss.system.server.jmx.MBeanServerBuilderImpl: java.lang.ClassNotFoundException:
org.jboss.system.server.jmx.MBeanServerBuilderImplNote: This occurs when BAC gateway or processing server is enabled with Diagnostics agent. (44085)
Workaround: Add the following to the <diag_install_dir>\etc\metrics.config
1) Find this line in the metrics.config file: Java\ Platform.builders.to.ignore
2) At the end of this line append the following: org.jboss.system.server.jmx.MBeanServerBuilderImpl
Example after the edit:
Java\ Platform.builders.to.ignore ... org.jboss.mx.server.MBeanServerBuilderImpl
org.jboss.system.server.jmx.MBeanServerBuilderImpl- When Diagnostics is integrated with BAC it is possible that some to all entities of a snapshot do not
initially populate the screen.Workaround: Click the refresh button to resolve the issue. (44033)
- When configuring Real User Monitoring in Business Availability Center to use a Page definition
including parameters, Diagnostics will not be able to make a match unless parameter capturing has
been enabled. To enable this option on the Java Probe, list all desired parameter names in reverse
alphabetical order in the args_by_class property in auto_detect.points under the "[HttpCorrelation]"
section. (40496)- If the Session Replay applet from Business Availability Center is launched before Diagnostics the
Diagnostics UI cannot establish communication with the Diagnostics Server. The Diagnostics UI will fail
to load with the following message:Http Status 503 - RUM proxy Error -:Accessing URL
http://ovrntt150.rose.hp.com:2006/profiler/getProperties failed with status: 403 Forbidden
Apache Tomcat/5.0.28The work around is to open the Session Replay applet after the diagnostics applet or to close the Session
Replay applet before launching the Diagnostics applet. (42850)- Diagnostics Server does not work with IIS Basic Authentication with Business Availability Center and
Business Availability Center Reverse Proxy Server. (43987)- Offline vs. Online. The following features and functionality in LoadRunner Offline Analysis are different
from the Diagnostics Online.
- Data in the profiler that is not sent into the Diagnostics Server will not be in the offline analysis
after Performance Center/LoadRunner runs. This includes LWMD, Heap Breakdown, Allocation
Analysis, Exceptions, SOAP Faults and SOAP payloads.- Oracle 10g data will not show up in offline analysis.
- System metric data will not show up in the offline file.
- Instance trees will not be available in the offline analysis only aggregate trees after the needed
drill down.- HP Performance Center offline files are kept by default. To manage offline files, you need to configure
the Diagnostics Servers in Mediator mode so that they delete these files. You do this by setting the
property distributor.offlinedelivery.preserveFiles to true in the
<diagnostics_server_install_dir>/etc/server.properties file. When set to true, this property causes the
run-specific "offline" files stored in the server's data directory to be retained for the amount of time
specified in the facade.run_delete_delay property in the server's webserver.properties file (default period
is 5 days). During this retention period, the run can be successfully collated. Sometime after the
retention period has ended, the associated offline files will be deleted from the system. (40739)- In Performance Center 8.1 SP4, you should access Diagnostics help directly from the Diagnostics Help
menu and not from the Performance Center help menu. (40137)- Performance Center users that drill to Diagnostics get full admin privileges to the Diagnostics Server
and to the Probes that are connected to it. All restricted actions (for example, changing thresholds,
alerts, and Custom Attributes) are accessible by all Performance Center users. Furthermore, every
custom screen created by a Performance Center user is shared by all Performance Center users. (40133)- Starting in Diagnostics 7.0, many instrumented methods have been flagged when-root-rename in
auto_detect.points to prevent many spurious and uninteresting server requests from being created and
displayed in the UI. Should these methods execute outside the context of another server request, they
will still be recorded, but into a pseudo server request with the name "Background - <Layer>", where
<Layer> is the layer name for the method.For example, the Background JDBC connection testing that WebLogic runs used to be reported into a
few separate server requests, such as netJDBCPreparedStatement.executeQuery(), but will now be
recorded as invocations of a "Background - Database" pseudo server request.In addition, when using LoadRunner, these new pseudo server requests will not appear in LoadRunner
Offline Analysis.Should you wish to keep the old behavior for a particular instrumentation point and see these entries in
LoadRunner Offline Analysis, carefully remove the when-root-rename detail parameter from the
auto_detect.points. (42127)- When Diagnostics is integrated with HP Software-as-a-Service (SaaS), you must log on through Business
Availability Center when viewing data for customers other than "Default Client". Failing to do so will
cause several subtle issues with how data is reported. You can still use the standalone login to view the
"Default Client" data. (42178)- When using Performance Center, once a user name has been supplied to connect to Diagnostics (for
example, "admin"), even after logging on to Performance Center with a different user, Performance
Center will always open Diagnostics with the same user, "admin".- LoadRunner Collate fails when the Diagnostics Server was restarted during Performance Center
run/load test(34682)Collectors (Oracle, SAP, MQ, SQL Server)
JAVA Profiler
- When inside the profiler, Garbage Collection (GC) à Time Spent in Collection for the JRockIt JVM can
have very large, inaccurate values. For example:For JRockIt -> JRockIt -> GC Time Spent in Collections:
Min: 0
Max: 240,272,099.1
Average: 2,688,968.98For Java Platform -> GC -> Time Spent in Collections:
Min: 0
Max: 102,977,406.37
Average: 1,938,217.38According to BEA, there is defect in some versions of JRockIt when the data reported is in 'ticks' instead
of milliseconds. See http://forums.bea.com/bea/thread.jspa?messageID=400006438&tstart=0: "This is a
problem in JRockit version R27.1 which have been tracked down and fixed as CR311327, the figures are
right but we show data in ticks instead of milliseconds." (41844)- Launching the Profiler from the Diagnostics UI with the View Profiler menu option can fail.
The Profiler can fail to launch when the version of the probe is 6.5/6.6 or 7.0 and the version of the
Diagnostics Server is 7.50. In these version mismatch cases, the Web browser attempts to directly
connect to the probe and does not proxy through the Commander. If the probe is behind a firewall or
otherwise not directly routable from the client Web browser, the Web browser will not be able to connect.
Workaround: Run the Profiler from the host on which the Probe is running. (43331).NET Profiler
- When running the .NET Profiler under locales that use an Asian character set, the default font size may
be too small. In such cases, change the text size used by the Web browser. (43070)- Launching the Profiler from the Diagnostics UI with the View Profiler menu option can fail.
The Profiler can fail to launch when the version of the probe is 6.5/6.6 or 7.0 and the version of the
Diagnostics Server is 7.50. In these version mismatch cases, the Web browser attempts to directly
connect to the probe and does not proxy through the Commander. If the probe is behind a firewall or
otherwise not directly routable from the client Web browser, the Web browser will not be able to connect.
Workaround: Run the Profiler from the host on which the Probe is running. (43331)Diagnostics Servers
- There is a known issue removing the 8.00 Diagnostics Server after upgrading from a 7.0 Diagnostics
Server.Workaround. If you received the error message: "A suitable JVM could not be found. Please run
the program again using the option -is:javahome <JAVA HOME DIR>", then navigate to
<Diagnostics_install_dir>\Server\_uninst and double-click on uninstall.jar to remove the product.
(43825)- When enabling HTTPS between Diagnostics components the user should monitor the
<install_dir>/MercuryDiagnostics/server/log/jetty.log for warnings similar to:2008-11-17 15:33:07,528: WARNING : WARN!! [RangeSocketListener-
69]org.mortbay.http.SocketListener.isOutOfResources(SocketListener.java:358)22> OUT OF THREADS:
RangeSocketListener@0.0.0.0:84432008-11-17 15:33:35,582: INFO : EVENT [RangeSocketListener-
14]org.mortbay.http.SocketListener.isLowOnResources(SocketListener.java:325)04> LOW ON
THREADS ((200-198+7)<10) on RangeSocketListener@0.0.0.0:8443Workaround. If these messages appear, increase the value of jetty.threads.max by increments of 100 in
the <install_dir>/MercuryDiagnostics/server/etc/webserver.properties file.Continue to monitor and increase if necessary. (44007)
- On Linux 2.4 kernel systems server.log shows incorrect timestamps. (42665)
When the JVM starts up the wrong time zone is used. Related to Linux JVM only. Sun bug: http://bugs.sun.com/view_bug.do?bug_id=6456628. Bug was resolved in jre 1.6.0_17 but reintroduced as a regression in jre 1.6.0_18.
Workaround. Use a -D property at JVM startup: -Duser.timezone=GMT-<offset>"
For example: -Duser.timezone="GMT-8:00" -- is for PDT
- The default purging behavior has changed as of release 7.50. By default, the Diagnostic Server now
purges entities that it has not seen for 6 months. Once an entity (such as a probe) is purged, access to its
trends and summaries is no longer possible.This is also the case when a probe is renamed. Data for the probe under the old name is only available
for 6 months after the rename.The purging interval can be changed in server.properties by increasing the number of hours in the
persistency.major.4.total.length parameter (requires restart of the Diagnostics Server). Currently, the
value is set to 6 months (4320 hours). Note: increasing the interval will require more server disk space.- After configuring the Diagnostics Server in Mediator mode, if it appears missing or inactive in the
Diagnostics Server in Commander mode view, then it is possible that "commander.url" in
server.properties has an ending "/" on it. For example, if you open server.properties on the Diagnostics
Server in Mediator mode and set to commander.url=http://amkisty01:2006/ instead of
commander.url=http://amkisty01:2006 (Note that the difference is the appending /), then the Diagnostics
Server in Mediator mode will appear missing or inactive. (40527)- Broadly scoped allocation instrumentation may fill up perm-gen and cause the VM to crash. Users
should avoid widely scoped instrumentation and instead make instrumentation as narrow as useful to
minimize system impact. (39339)- When average latencies are less than 50ms, users may see CPU time slightly higher than latencies
because of resolution differences. (39690)- Entity purging results in contribution/breakdown not summing up to the total because the deleted
entities data was already rolled up and is not recalculated at this point. (39344)- When installing Business Availability Center and Diagnostics Servers on the same machine, Business
Availability Center should be installed before Diagnostics to avoid installer collisions. (37564)- Running the Diagnostics Server from a network drive, or configuring it to store the archive on a network
drive, is not supported.- Diagnostics Server Time on HP-UX
On HP-UX, if the time on the server has been modified, Diagnostics will not pick up the modified time
until the Diagnostics server is restarted. This is because the Diagnostics server picks up the time from
the JVM and the JVM does not, by default, detect changes in the system time.If the system time has been modified, you must restart the Diagnostics server in order for Diagnostics to
reflect the new time.Another option is to start the Diagnostics server using the -XX:+UseGetTimeOfDay option as described
in http://www.hp.com/products1/unix/java/java2/jdkjre5_0/infolibrary/jdk_rnotes_5.0.08.html#date_time.
However, you might notice a drop in performance if you use this option. (42145)- When you configure the Diagnostics Server to run only in SSL mode, it only affects port 2006. The
Diagnostics Server also has an embedded Diagnostics Probe (for internal troubleshooting purposes) that
listens, as usual, on port 35000. If you are trying to lock your environment to SSL only for security
purposes, you will also need to re-configure that embedded probe to listen only over SSL.User Interface
- Prior to exporting an Application Explorer view to html you should examine all of the tabs to activate the
population to the desired charts, otherwise the exported chart could be empty. (43934)- Problem adding Server Summary View to new views (2 or 4 way).
Workaround: As a rule of thumb you should only add standard views when creating a dashboard. (44079)
- It is possible that pinned frames, for example, common task and navigations, may become unresponsive
to mouse-over and click events.Workaround. To resolve the issue reset the screen layout. (43899)
- Navigation menu items on the popup (context) menu are different when right-clicked alone vs. selected
and then right-clicked. This occurs because only limited information is available when the first right-
click on an entity occurs, and the context menu is populated with what is known at that time. However,
the right-click operation immediately kicks off a query to the Diagnostics Server to find out more about
this entity, and so subsequent right-click operations use the returned data and the popup menu includes
more options. (42528)- In a custom 2-way view, both of the Navigation controls are updated with the navigations for the
selected entity. (42996)- When an application is selected (Application Explorer view) or a Probe Group is selected ( Server
Summary view) you may see two "View Probe" navigations. This will happen when the Application or
Probe Group contains both .Net and Java Probes. (42822)- When an application is selected (Application Explorer view) or a Probe Group is selected ( Server
Summary view) the number associated with the "View Probes" navigation will be incorrect when you
have a collector in the application or group. The number does not include the collector but the view
populated by the navigation will include the collector(s). (42827)- Within the context of an application, the counts on the navigation control may not always be correct.
(43228)- The navigation control only tracks the global time control. (42876)
- In the Application Explorer view, the Top 5 by Latency graphs are populated with the " % Latency over
Threshold" metric not the "Latency" metric as would be expected based on the graph title. (43314)- Drilling from some alerts to "View Threshold Violation" results in a view that is empty except for the
message "Either no data is available for the selected time range, or the data at this level of detail has
been purged from the database."This generally happens when the violating entity is 2 levels below the alert entity. For example, a probe
group alert from a server request threshold or a probe alert on a portal component--life cycle method
alert.Workaround: Notice the breadcrumb of the empty view. This indicates the view that shows the data
causing threshold violation. Add the alert to a snapshot. From the snapshot, use the Navigations pane
to drill-down. In most cases, you would navigate to Probes first and the destination view below that.
For Life Cycle Methods, navigate to Portal Components (under Probes) first. For better navigation from
alerts to threshold violations, keep alert rules closer to the entities being monitored. (43298)- When looking at the "Call Profile" view from within the JAVA Probe Profiler, when displaying a
netJDBCPreparedStatement.executeQuery method, this JDBC outbound method will not show a "Type"
in the "Method Data". Due to internal limitations, the Type cannot be obtained and displayed, only the
SQL statement associated with the method call can be obtained. (41070)- Secondary JVM credentials box pops up after login to Diagnostics Server using JRE 1.5.0_01 or other
1.5.x where 0 <= x < 6. Problem fixed on newer JRE. (40237)- System metrics for probes earlier than version 6.5 will not be properly categorized in the details pane.
(40592)- If there are two probes of the same name connected to different Diagnostics Servers in Mediator mode,
only one probe appears in the System Health. (40807)- User should close all browser windows to completely log out of Diagnostics. Logging out of Business
Availability Center/SaaS alone does not log you out of Diagnostics. (37133)- Diagnostics registration with Business Availability Center may results in HTTP Error 403 if IE
enhanced security settings are enabled (Win 2003).Workaround: Add the URL to your trusted sites and enable cookies. (40500)
- When drilling down from the Business Availability Center application to Diagnostics, the data displayed
in Diagnostics may be different. This is caused by differences in the time ranges and data capture
mechanisms used between the products. (40324)- For server requests under 10 ms, Minimum Time will always be reported as zero. (34125)
- In the Snapshot Analysis view, when you attempt to highlight a row, Diagnostics does not highlight just
one entity/metric pair in the chart. Instead it highlights all charted metrics related to the entity in the
selected row. (40356)- For Websphere 5.1, the Inbound Web Service name is not consistent with the Web Service name in the
outbound screen.Workaround: Users can use an alias for those entities. (40425)
- Beginning with the Diagnostics 7.0 release there were enhanced views for Portals data. Portal data
captured from probes in earlier releases cannot be shown in the new views. By default, the old portal
views are hidden and do not appear in the Diagnostics UI. When it is necessary to see historical data for
Portals, the old views must be restored.In order to restore these old views, please follow the instructions in the file
<diagnostics_server_install_dir>/contrib/Pre-7.0-Portal-View/README.txt.When it has been decided to no longer view the old data, remove the old view by right-clicking on it and
choosing "Delete View".- JAVA 6 Issue with Business Availability Center/RUM drilldown.
When drilling down from Business Availability Center/RUM to Diagnostics, if the JAVA console is
flooded with PatternSyntaxExceptions and the UI shows no data, it could be from the JVM version.
Diagnostics does not support JVM versions 1.6.0 and 1.6.0_1. Newer versions of 1.6, 1.6.0_02 or later,
are supported and work fine. (42225, 42315)- When using the HTML view of System Health, you may periodically receive a message: System error -
1072897514. This seems to occur especially with low latency connections. You can safely ignore this
message.Environment
- For an IPV6 environment, the following restrictions exist:
- All Diagnostic Server, Collector, and Java Probe configuration must be based on host names (not
IP addresses).- .NET Probes are not supported.
- Collectors must be running on IPV4 tunneled networks.
- Linux and Solaris operating systems must be explicitly configured to use the IPV6 network
host/IP resolution. On dual hosts, update /etc/nsswitch.conf. On Solaris, update ipnodes.Support
You can visit the HP Software Support Web site at:
http://support.openview.hp.com/
This web site provides contact information and details about the products, services, and support that HP
Software offers.HP Software online support provides an efficient way to access interactive technical support tools. As a
valued support customer, you can benefit by using the support site to:
- Search for knowledge documents of interest
- Submit and track support cases and enhancement requests
- Download software patches
- Manage support contracts
- Look up HP support contacts
- Review information about available services
- Enter into discussions with other software customers
- Research and register for software training
Most of the support areas require that you register as an HP Passport user and sign in. Many also require a
support contract. To find more information about access levels, go to:
http://h20230.www2.hp.com/new_access_levels.jspTo register for an HP Passport ID, go to:
http://h20229.www2.hp.com/passport-registration.htmlLegal Notices
© Copyright 2004 - 2010 Hewlett-Packard Development Company, L.P.
Confidential computer software. Valid license from HP required for possession, use or copying. Consistent
with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and
Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard
commercial license.The only warranties for HP products and services are set forth in the express warranty statements
accompanying such products and services. Nothing herein should be construed as constituting an additional
warranty. HP shall not be liable for technical or editorial errors or omissions contained herein.The information contained herein is subject to change without notice.
For information about third-party license agreements, see the Documentation directory on the product
installation media.Java™ is a US trademark of Sun Microsystems, Inc.
Microsoft® and Windows® are U.S. registered trademarks of Microsoft Corporation.
Oracle® is a registered US trademark of Oracle Corporation, Redwood City, California.
UNIX® is a registered trademark of The Open Group.
If you have any comments or suggestions regarding this document, please send them by e-mail to
SW-Doc@hp.com.
Copyright 2010 Hewlett-Packard Development Company, L.P.