Hyades v3.2.0 - Release notes


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.1.2 Importing a log file from a remote z/OS system may result in incomplete data
1.1.3 Invalid Common Base Event XML generated for log files containing control characters
1.1.4 Long message elements truncated when converting to Common Base Event
1.1.5 ExtendedDataElement elements created not to Common Base Event specification
1.2 Agent Controller
1.2.1 Console text is garbled when profiling a Java application on a DBCS system
1.2.2 Agent Controller file copy on HP 11i does not work
1.2.3 Agent Controller reports "sh: sysdef: not found" error on Solaris
1.2.4 Agent Controller 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 Agent Controller on one machine not permitted
1.2.7 Agent Controller crashes when RAServer command typed in with incorrect case on Windows
1.3 Log and Trace Analyzer
1.3.1 Logging agent does not show up in Agents tab in new profiling configuration wizard
1.3.2 Continuous log monitoring is not supported for localhost
1.4 Probekit
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.5.7 Method counts incorrect with JIT Inlining
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 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'

1.0 Known problems and limitations

1.1 Generic Log Adapter

1.1.1 Problems running Generic Log Adapter rules using IBM's Java Runtime Environment (JRE) v1.4.1

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.

1.1.2 Importing a log file from a remote z/OS system may result in incomplete data

Bugzilla defect: 80730

Importing a log file using Log and Trace Analyzer from a remote z/OS system may result in incomplete data shown in the Log View. The import operation may stop prematurely and not all of the log records are shown in the Log View. This problem occurs when one of the following IBM JDK versions is installed on the z/OS system:

To work around this problem, change the configuration of the Hyades Agent Controller on the z/OS system by doing the following steps:

  1. Edit the file plugins/org.eclipse.hyades.logging.parsers/config/pluginconfig.xml in the Agent Controller install directory.
  2. Add a new Parameter to the RemoteLogParserLoader Application element after the java.version parameter. For example:
    <Parameter position="prepend" value="-Djava.version=1.4"/>
    <Parameter position="prepend" value="-Djava.compiler=NONE"/>
    <Parameter position="append" value="&quot;config_path=%GLA_CONFIG_PATH%&quot;"/>
  3. Restart Agent Controller.
  4. Import the log file again.

1.1.3 Invalid Common Base Event XML generated for log files containing control characters

Bugzilla defect: 81490

Generic Log Adapter may generate invalid Common Base Event XML for log files that contain control characters, such as x01. Specifically, if the control character is parsed into a Common Base Event field, invalid XML will be generated. The XML generated by Generic Log Adapter in these cases may cause errors or exceptions when users of the Generic Log Adapter, such as Log and Trace Analyzer, try to parse the XML. In the case of Log and Trace Analyzer, only Common Base Events preceding the incorrect XML will be shown in the Log View. To avoid this problem, ensure log files do not contain any control characters.

1.1.4 Long message elements truncated when converting to Common Base Event

Bugzilla defect: 81649

When parsing log file records with messages longer than 1024 characters, Generic Log Adapter may not capture the end of the message in the Common Base Event. The Common Base Event specification gives a limit of 1024 characters to the value of the msg field. When GLA parses a message longer than 1024 characters, it sets the msg field to contain the first 1024 characters of the message and then stores the full message in two or more Extended DataElement elements, each containing up to 1024 characters. Generic Log Adapter fails to store the last portion of the message if it is less than 1024 characters. This last portion of the message is not stored in the Common Base Event. 

In other words, the message is stored in a set of strings 1024 characters long, and if the last of these strings is less than 1024 characters, it is discarded.

There is no work around for this problem.

1.1.5 ExtendedDataElement elements created not to Common Base Event specification

Bugzilla defect: 79880

Generic Log Adapter may create Common Base Events that do not conform to the Common Base Event specification with respect to ExtendedDataElement elements.  The Common Base Event version 1.0.1 specification indicates that the ExtendedDataElement values field is an array of Strings and there is a 1024 limit to the size of the String.  Generic Log Adapter does not check the size of the value string parsed from the log record before adding it to the values String array and therefore may create an ExtendedDataElement with the values array containing Strings longer than 1024 characters.

There is no work around for this problem.

1.2 Agent Controller

1.2.1 Console text is garbled when profiling a Java application on a DBCS system

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.

1.2.2 Agent Controller file copy does not work on HP 11i

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.2 $
        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.2 $
        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.

1.2.3 Agent Controller reports "sh: sysdef: not found" error on Solaris

The Agent Controller uses the sysdef command to obtain the maximum size for a shared memory buffer on your system. If the Agent Controller 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 found
To work around this problem, add the /usr/sbin directory, which contains sysdef, to the PATH variable.

1.2.4 Agent Controller running with a Sun JVM on Linux enters an infinite loop

When running the Agent Controller on a Linux machine with a Sun 1.4.2_04 JVM, the engine enters into an infinite loop. The following messages are logged to the servicelog.log with the last three lines repeated continuously until a kill command is issued to stop the RAServer process:
<SERVER_MSG time="2004:6:3:17:42:49" severity="INFORMATION" text="Service starting"/>
<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"/>
To work around this problem, set LD_LIBRARY_PATH pointing to all .so files before starting Agent Controller. For example, before running the RAServer, issue this command:
export 
LD_LIBRARY_PATH=/opt/j2sdk1.4.2_04/jre/lib/i386/server:/opt/j2sdk1.4.2_04/jre/li
b/i386

1.2.5 Agent Extension does not work on iSeries

Agent extensions do not work on iSeries systems.

To work around this problem, before starting the Agent Controller on the iSeries machine, execute the following command:

	ADDLIBLE LIBNAME
where LIBNAME is the library name that contains the agent extension code. This will allow the Agent Controller to find and load the library.

1.2.6 Multiple instances of Agent Controller on one machine not permitted

Only one instance of the Agent Controller 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 Agent Controller under the name Agent Controller.

1.2.7 Agent Controller crashes when RAServer command typed in with incorrect case on Windows

Bugzilla defect: 80367

The RAServer command is case sensitive on Windows. If you type in "raserver", Agent Controller will crash.

To work around this problem, use the correct case when typing in the command: RAServer.

1.3 Log and Trace Analyzer

1.3.1 Logging agent does not show up in Agents tab in new profiling configuration wizard

Bugzilla defect 80399

If you are creating a profiling configuration, but the agent you need to use is not showing up in the Agents tab, ensure that the hyadesdc\bin directory is in the PATH environment variable setting. If you are starting the workbench from the command line, you can set the PATH variable from the same command line window as you will be starting the workbench. If you will be starting it from an icon, set the variable and then reboot for the PATH change to take effect system-wide (especially on Windows XP).

1.3.2 Continuous log monitoring is not supported for localhost

Log and Trace Analyzer does not support continuous log monitoring via localhost. However, if you want to continuously monitor local log files, you can through the loopback interface (127.0.0.1), thus simulating a remote import with a local log file. In this case the logging agent can be at any time terminated to avoid hanging the UI.

To import or continuously monitor via loopback, Agent Controller must be started (not necessary for importing from localhost).

1.4 Probekit

1.5 Profiling Tool

1.5.1 Problem with garbage collection when using IBM JDK 1.4.1

56182

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.

1.5.2 With Sun JDK, some method calls are not traced

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.

1.5.3 Profiling on Solaris using the Sun JDK 1.4.x may cause JVM to crash

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.

1.5.4 Potential crash when running in standalone mode with STACK_INFORMATION=contiguous on Solaris

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.

1.5.5 Negative timeout values for WAIT and WAITED events

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.

1.5.6 Incorrect monitor dumps with IBM JDK 1.4.2

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.

1.5.7 Method counts incorrect with JIT inlining

Bugzilla defect 70660 (closed as "Won't fix")

If you suspect that the method counts you are seeing in the analysis tools are too low, turn off JIT inlining, if you are using it. This problem happens only when with the IBM Java 2 Runtime Environment v.1.4.2, and only when JIT is enabled.

The only work-around for this problem is to turn off inlining. To do this, set the following environment variable:

JITC_COMPILEOPT=NINLINING

1.6 Statistical Console

N/A

1.7 Test

1.7.1 Common Test Issues

1.7.1.1 JUnit, Manual, and URL Tests do not work on iSeries

Bugzilla defect: 68899

1.7.1.2 Datapool access

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();
	}
	

1.7.2 Hyades URL Test

1.7.2.1 URL response time and hit rate reports are not visible in the Test navigator

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.

1.7.2.2 URL Test Recorder displays "IWAT3042E recording aborted due to exception: null"

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.

1.7.2.3 Executing URL Tests as JUnit tests

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
	

1.7.2.4 Executing the URL Test Sample

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.

1.7.2.5 URL Test Sample readme.html incorrectly refers to 'Component Test'

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.