1.0 Known problems and limitations
1.1 Generic Log Adapter
1.1.1 Problems running Generic Log Adapter rules IBM®'s Java™ Runtime Environment (JRE) v1.4.1
1.2 Data Collection Engine
1.2.1 Console text is garbled when profiling a Java application on a DBCS system
1.2.2 Data Collection Engine file copy on HP 11i does not work
1.2.3 Data Collection Engine reports "sh: sysdef: not found" error on Solaris
1.2.4 Data Collection Engine running with a Sun JVM on Linux™ enters an infinite loop
1.2.5 Agent extension does not work on iSeries™ systems
1.2.6 Multiple instances of Data Collection Engine on one machine not permitted
1.3 Log and Trace Analyzer
1.3.1 Cannot set a working path when profiling
1.3.2 Agents and processes are lost when closing the Profiling Monitor
1.3.3 Refresh views may not work depending on selection in Profiling Monitor
1.4 Probekit
1.4.1 ProbeInstrumenter program strips the entire META-INF directory from jar files
1.4.2 ProbeInstrumenter program throws an exception while instrumenting some classes
1.5 Profiling Tool
1.5.1 Problem with garbage collection when using IBM JDK 1.4.1
1.5.2 With Sun JVM, some method calls are not traced
1.5.3 Profiling on Solaris using the Sun JDK 1.4.x may cause JVM to crash
1.5.4 Potential crash when running in standalone mode with STACK_INFORMATION=contiguous on Solaris
1.5.5 Negative timeout values for WAIT and WAITED events
1.5.6 Incorrect monitor dumps with IBM JDK 1.4.2
1.6 Statistical Console
1.7 Test
1.7.1 Common Test Issues
1.7.1.1 JUnit, Manual, and URL Tests do not work on iSeries
1.7.1.2 Automated deployment and execution of tests using hetergenous platforms does not work
1.7.1.3 Remote execution with manual deployment
1.7.1.4 Datapool Access
1.7.2 Hyades URL Test
1.7.2.1 URL response time and hit rate reports are not visible in the Test navigator
1.7.2.2 URL Test Recorder displays "IWAT3042E recording aborted due to exception: null"
1.7.2.3 Executing URL Tests as JUnit tests
1.7.2.4 Executing the URL Test Sample
1.7.2.5 URL Test Sample readme.html incorrectly refers to 'Component Test'
The IBM JDK 1.4.1 that ships in 2003 causes problems in the rule-based Apache access log parser.
Service Release (SR2) and above is required when running IBM's Java Runtime Environment (JRE) v1.4.1 to use the Generic Log Adapter and/or importing log files in Hyades using a rules-based log file parser.
When profiling a remote Java application within Eclipse on a DBCS (e.g. Traditional Chinese, Simplified Chinese, Japanese, Korean) system, the console output is displayed as garbled text. This problem happens on all platforms except the Z/OS and iSeries™.
To work around this problem, add a Java VM argument -Dconsole.encoding=UTF8 when launching the remote Java application. This will ensure proper encoding when transferring the console output from the remote side back to the Eclipse workbench.
The file copy does not work because the file server does not startup. This is due to the JVM library libjvm.sl not being loaded at run-time, which in turn causes the file server not to run.
To work around this, the linker patch version PHSS_30049 or higher is required. The linker version from patch 30049 is as follows:
/bin/ld:
$Revision: 1.5 $
HP aC++ B3910B X.03.37.01 Classic Iostream Library
HP aC++ B3910B X.03.37.01 Language Support Library
ld_msgs.cat: $Revision: 1.5 $
92453-07 linker command s800.sgs ld PA64 B.11.38 REL 031217
To check the version number: what /bin/ld
To list the installed patches: swlist -l fileset
Grep for "ld" to get the version number for the cumulative ld and linker tools patch.The Hyades Data Collection Engine uses the sysdef command to obtain the maximum size for a shared memory buffer on your system. If the Data Collection Engine is unable to run sysdef, it will use dataChannelSize="30M" specified in the <RAServer>/plugins/org.eclipse.hyades.datacollection/pluginconfig.xml file. The following error will be reported on the console where the RAServer.exe was launched:
sh: sysdef: not foundTo work around this problem, add the /usr/sbin directory, which contains sysdef, to the PATH variable.
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION" text="Service starting"/>To work around this problem, set LD_LIBRARY_PATH pointing to all .so files before starting the Data Collection Engine. For example, before running the RAServer, issue this command:
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Successfully loaded plugin: org.eclipse.hyades.datacollection"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Successfully loaded plugin: org.eclipse.hyades.logging.parsers"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Successfully loaded plugin: org.eclipse.hyades.test"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Active configuration set to: default"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Loaded configuration: default"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION"
text="Service started successfully"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="Server stopping"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="Internal server closed"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="External server closed"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="Server stopping"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="Internal server closed"/>
<SERVER_MSG time="2004:6:3:17:42:49" severity="WARNING" text="External server closed"/>
export
LD_LIBRARY_PATH=/opt/j2sdk1.4.2_04/jre/lib/i386/server:/opt/j2sdk1.4.2_04/jre/li
b/i386
Agent extensions do not work on iSeries systems.
To work around this problem, before starting the Data Collection Engine on the iSeries machine, execute the following command:
ADDLIBLE LIBNAMEwhere LIBNAME is the library name that contains the agent extension code. This will allow the Data Collection Engine to find and load the library.
Only one instance of the Data Collection Engine may be installed on a machine. This means that if you have installed the engine or an extended version of the engine with another product, you will have to uninstall that instance for a new instance to work correctly. For example, some IBM WebSphere Studio or IBM Rational® products, or the Autonomic Computing Toolkit from developerWorks®, include optional installs of the Hyades Data Collection Engine under the name Agent Controller.
Bugzilla defect: 61754
Currently there is no way to set an arbitrary working path when
configuring an application to be profiled.
The Working directory field provided in the Arguments tab for
the Java Application type is not
being processed and sent correctly by the launcher from the workbench
to the data collection engine.
For the External Java Application type, there is no field
available to specify a working path.
In order to work around this problem, follow these steps:
Bugzilla defect: 51161
If there is any unsaved data displayed in the Profiling Monitor view
such as agents or processes, they will lost
when the view is closed. It is recommended that all content be saved in
the Profiling Monitor before
closing the view.
Note: Opening a new perspective then switching back to the
Profiling and Logging perspective will not
cause any data loss.
Bugzilla defect: 71567
When the Link with Viewer option is disabled in the Profiling Monitor,
the Refresh Views action (in the same
toolbar) will only work when the current selection in the Profiling
Monitor corresponds to the view currently
open.
To work around this problem, do one of the following:
If the jar file's META-INF directory contains files other than the MANIFEST.MF file, follow these steps to preserve those files in the instrumented jar file:
jar xf yourfile.jar META-INF
jar uf yourfile.jar META-INF
Bugzilla defect:68435
While instrumenting some classes, Probekit's "ProbeInstrumenter"
program throws an exception with the following
error message:
Probe Kit Exception number 4 from location 3
One cause for this exception is methods which contain unreachable byte codes after the last reachable instruction of a method. Some Java compilers produce such code.
There is currently no workaround for this problem.
If the user's application uses an extremely large amount of heap space, requesting Collect Object References or Run GC, can potentially cause the JVM to crash with the following error message:
**Out of memory, aborting**
*** panic: JVMCI023: Cannot allocate memory to collect heap dump in jvmpi_heap_dump
abnormal program termination
You can try to work around this by running without the -Xmx parameter, if you are currently running with it.
Bugzilla defect: 69051
Using the Sun JDK on Windows, certain method calls in Java programs are not being traced by JVMPI.
There is no known workaround.
Bugzilla defect:56404
When profiling on Solaris using the Sun JDK 1.4.x may cause the JVM to
crash. This is due to a bug in the Sun JVM.
To work around this problem, use only one of the following profiling sets:
The problem arises if you use these in combination, or if "Show instance level" information is turned on.
Bugzilla defect:
50090
When profiling on Solaris, you may encounter problems with standalone
profiling. The problem only occurs when STACK_INFORMATION=contiguous
(or boundaryAndContiguous) and TRACE_MODE=full. This problem may result
in your JVM crashing.
To work around this problem with STACK_INFORMATION=contiguous, set TRACE_MODE=noObjectCorrelation. The problem does not occur when STACK_INFORMATION=none or STACK_INFORMATION=normal.
Bugzilla defect: 63969
When running with IBM 1.4.2 JDK, with the Hyades jvmpi profile option 'MONITOR_MODE=all' (in standalone mode), you may see negative timeout attributes on monitorWait and monitorWaited elements in their trace. These are actually extremely large timeout values cast as positive 64 bit integers. This bug is the result of a JDK bug.
Bugzilla defects: 65193 and 72180
Because of a JDK bug, when running Hyades in standalone mode with the jvmpi profile option 'MONITOR_MODE=all', you may get incorrect monitor dumps. For bug 65193 particularly, this happens when the '-Xj9' VM argument is used.
N/A
Automated deployment/execution of tests to remote systems that run on heterogenous platforms (Windows to Linux or Unix, and vice versa) does not work. Information on how a test can be executed remotely can be found in the Remote execution section of this document.
Bugzilla defect:68910
A common use of a Test (URL, JUnit, or Manual) is to have the workbench
(Eclipse UI) installed on a Windows-based machine and the remote
execution on a Linux or Unix system. Currently, automated deployment
doesn't work across platforms. However, tests can still be run
remotely.
The file that represents the test to be executed must be transfered
(most likely using FTP) from the system where it was created to the
system from which it will be executed. The Data
Collector, or RAC, must be configured to point to the test asset that
was transferred.
When the byte code for a test is compiled it is stored in the bin directory of the Java project where the test was created. An example would be:
[ECLIPSE_HOME]/workspace/project1/bin/test/URLTest.class
One method of packaging the above file for execution on a remote system is to create a jar file. The commands below show how this can be done.
"cd [ECLIPSE_HOME]/workspace/project1/bin"
"jar -cf test.jar test"
The test.jar file can then be transferred to the remote machine's Data Collector directory structure.
Next, the [RAC_HOME]/config/serviceconfig.xml file must be adjusted to point to test.jar as shown below.
<AgentControllerEnvironment configuration="default">
...
...
<Variable name="CLASSPATH" position="append" value="%RASERVER_HOME%/test/test.jar"/>
</AgentControllerEnvironment>
When the test is launched from the workbench, the Data Collector will have a classpath that points to the test location and the test will be executed.
Bugzilla defect:68911
The documentation that describes accessing a datapool from a Hyades
test is missing a step
and contains a code sample that doesn't completely work.
The following jars need to be added to the Java build path.
([ECLIPSE_HOME] is the directory where Eclipse has been installed.
[ECLIPSE_HOME]/plugins/org.eclipse.hyades.models.common_3.0.0/common_model.jar
[ECLIPSE_HOME]/plugins/org.eclipse.hyades.test.datapool_3.0.0/datapool_api.jar
[ECLIPSE_HOME]/plugins/org.eclipse.emf.ecore_2.0.0/runtime/ecore.jar
[ECLIPSE_HOME]/plugins/org.eclipse.emf.common_2.0.0/runtime/common.jar
The following code snippet demonstrates how to access a datapool and extract information properly.
IDatapoolFactory dpFactory = new Common_DatapoolFactoryImpl();
IDatapool datapool = dpFactory.load(new File("d:\\hyades3.0\\workspace\\testproj\\dpoo1.datapool"), false);
IDatapoolIterator iter = dpFactory.open(datapool, "org.eclipse.hyades.datapool.DatapoolIteratorSequentialPrivate");
iter.dpInitialize(datapool, -1);
while (!iter.dpDone())
{
String firstName = iter.dpCurrent().getCell("First Name").getStringValue();
// your code here
iter.dpNext();
}
Bugzilla defect:68553
URL response time and hit rate reports are not visible in the Test
navigator. The reports can be found by opening the project under which
they were created in the 'Resource' perspective.
Bugzilla defect:66199
When Eclipse is launched with the the '-Xj9' argument, after multiple
recordings the 'Recorder Control' view will display "IWAT3042E
recording aborted due to exception: null". The workaround is to close
and reopen Eclipse.
Hyades URL Tests can be executed as JUnit tests. In order to do so, the following entries must be added to the Java build path of the project containing the URL Test:
[ECLIPSE_HOME]/plugins/org.eclipse.hyades.logging.core_3.0.0/hlcore.jar
[ECLIPSE_HOME]/plugins/org.eclipse.hyades.logging.core_3.0.0/hlcbe101.jar
[ECLIPSE_HOME]/plugins/org.eclipse.emf.ecore_2.0.0/runtime/ecore.jar
[ECLIPSE_HOME]/plugins/org.eclipse.hyades.logging.java14_3.0.0/hl14.jar
[ECLIPSE_HOME]/plugins/org.eclipse.emf.common_2.0.0/runtime/common.jar
The URL Test Sample won't execute directly after its creation. Two artifacts must be configured for it to run successfully. artifact1's CLASSPATH variable should point to the location of the workspace on the machine:
[ECLIPSE_HOME]/eclipse/workspace/URL Test Sample/bin
location1's ROOTDIR variable should point to the directory that represents the workspace
[ECLIPSE_HOME]/workspace
The default name of the URL Test Sample contains spaces. This may cause problems for certain operating systems. The name of the sample can be changed when it is created.
Bugzilla defect:68910
The URL Test Sample web page refers to an online help section named 'Component Test', which does not exist. The web page should refer to the 'Test' section of online help.
Return to the main readme file