Hyades V3.0.1 - 发行说明


1.0 已知问题和局限性
1.1 通用日志适配器
1.1.1 使用 IBM (R) 的 JavaTM 运行时环境(JRE)V1.4.1 运行通用日志适配器规则时出现问题
1.2 数据收集引擎
1.2.1 在 DBCS 系统上对 Java 应用程序进行概要分析时控制台文本显示乱码
1.2.2 HP 11i 上的数据收集引擎文件副本不起作用
1.2.3 在 Solaris 上,数据收集引擎报告“找不到 sh: sysdef:”错误
1.2.4 在 LinuxTM 上与 Sun JVM 一起运行的数据收集引擎进入无限循环
1.2.5 代理程序扩展在 iSeriesTM 系统上不起作用
1.2.6 一台机器上只允许有一个数据收集引擎实例
1.3 日志和跟踪分析器
1.3.1 在概要分析时不能设置工作路径
1.3.2 代理程序和进程在关闭概要分析监视器时丢失
1.3.3 根据概要分析监视器中的选择,刷新视图可能无法工作
1.4 Probekit
1.4.1 ProbeInstrumenter 程序从 JAR 文件除去整个 META-INF 目录
1.4.2 ProbeInstrumenter 程序在插装某些类时抛出异常
1.5 概要分析工具
1.5.1 使用 IBM JDK 1.4.1 进行垃圾回收时出现问题
1.5.2 使用 Sun JVM 时未跟踪某些方法调用
1.5.3 在 Solaris 上使用 Sun JDK 1.4.x 进行概要分析可能导致 JVM 崩溃
1.5.4 在 Solaris 上以单机方式运行并且 STACK_INFORMATION 设置为 contiguous 时可能会崩溃
1.5.5 WAIT 和 WAITED 事件的超时值无效
1.5.6 IBM JDK 1.4.2 的监视器转储不正确
1.6 统计信息控制台
1.7 测试
1.7.1 常见测试问题
1.7.1.1 JUnit 测试、手工测试和 URL 测试在 iSeries 上不起作用
1.7.1.2 使用不同平台进行测试的自动部署和执行不起作用
1.7.1.3 借助手工部署执行远程测试
1.7.1.4 数据池访问
1.7.2 Hyades URL 测试
1.7.2.1 测试导航器中未显示 URL 响应时间和命中率报告
1.7.2.2 URL 测试记录器显示“IWAT3042E 记录因为空异常而中止”
1.7.2.3 将 URL 测试作为 JUnit 测试来执行
1.7.2.4 执行 URL 测试样本
1.7.2.5 URL 测试样本 readme.html 错误地引用了“组件测试”

1.0 已知问题和局限性

1.1 通用日志适配器

1.1.1 使用 IBM 的 Java 运行时环境(JRE)V1.4.1 运行通用日志适配器规则时出现问题

2003 年发布的 IBM JDK 1.4.1 在基于规则的 Apache 访问日志解析器中可能会出现问题。

在运行 IBM 的 Java 运行时环境(JRE)V1.4.1 以使用通用日志适配器和/或使用基于规则的日志文件解析器在 Hyades 中导入日志文件时,需要服务发行版(SR2)及以上版本。

1.2 数据收集引擎

1.2.1 在 DBCS 系统上对 Java 应用程序进行概要分析时控制台文本显示乱码

在 DBCS(如繁体中文、简体中文、日语和韩国语)系统上对 Eclipse 中的远程 Java 应用程序进行概要分析时,控制台输出将显示为乱码。所有平台都会发生这一问题,但 Z/OS 和 iSeriesTM 除外。

要解决此问题,在启动远程 Java 应用程序时添加 Java VM 自变量 -Dconsole.encoding=UTF8。这会确保在将控制台输出从远程位置传送回 Eclipse 工作台时正确编码。

1.2.2 HP 11i 上的数据收集引擎文件副本不起作用

因为文件服务器未启动,所以文件副本不起作用。这是因为在运行时未装入 JVM 库 libjvm.sl,从而导致文件服务器不运行。

要解决此问题,需要链接程序补丁版本 PHSS_30049 或更高版本。 补丁 30049 中的链接程序版本如下所示:

/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

检查版本号:what /bin/ld

列示安装的补丁:swlist -l fileset

搜索“ld”以获取累积 ld 的版本号和链接程序工具补丁。

1.2.3 在 Solaris 上,数据收集引擎报告“找不到 sh: sysdef:”错误

Hyades 数据收集引擎使用 sysdef 命令来获取系统上共享内存缓冲区的最大大小。如果数据收集引擎无法运行 sysdef,它将使用 <RAServer>/plugins/org.eclipse.hyades.datacollection/pluginconfig.xml 文件中指定的 dataChannelSize="30M"。将在启动 RAServer.exe 的控制台上报告以下错误:

找不到 sh: sysdef:
要解决此问题,将包含 sysdef/usr/sbin 目录添加至 PATH 变量。

1.2.4 在 Linux 上与 Sun JVM 一起运行的数据收集引擎进入无限循环

在 Linux 机器上将数据收集引擎与 Sun 1.4.2_04 JVM 一起运行时,引擎将进入无限循环。下列消息将被记录至 servicelog.log,最后三行将不断重复直到发出 kill 命令来停止 RAServer 进程:
<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"/>
要解决此问题,在启动数据收集引擎之前将 LD_LIBRARY_PATH 设置为指向所有 .so 文件。例如,在运行 RAServer 之前发出以下命令:
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 代理程序扩展在 iSeries 上不起作用

代理程序扩展在 iSeries 系统上不起作用。

要解决此问题,在 iSeries 机器上启动数据收集引擎之前执行以下命令:

	ADDLIBLE LIBNAME
其中 LIBNAME 是包含代理程序扩展代码的库名。这将允许数据收集引擎查找并装入该库。

1.2.6 一台机器上只允许有一个数据收集引擎实例

一台机器上只能安装一个数据收集引擎实例。这表示如果您已经将该引擎或者该引擎的扩展版本与另一产品安装在一起,必须卸载该实例以使新实例正常工作。例如,某些 IBM WebSphere Studio 或 IBM Rational(R) 产品或者 developerWorks(R) 中的 Autonomic Computing Toolkit 包括了名为代理控制器中的 Hyades 数据收集引擎的可选安装。

1.3 日志和跟踪分析器

1.3.1 在概要分析时不能设置工作路径

Bugzilla 缺陷:61754
目前没有办法在配置要进行概要分析的应用程序时设置任意工作路径。启动程序将无法正确处理 Java 应用程序类型的“自变量”选项卡中提供的工作目录字段并将其从工作台发送至数据收集引擎。对于外部 Java 应用程序类型,没有可用来指定工作路径的字段。

要解决此问题,请遵循下列步骤:

  1. 在“概要分析和记录”透视图中,单击“运行”图标并选择运行
  2. 在“运行配置”对话框中,从配置列表中双击 Java 应用程序以创建新配置。
  3. 从列表中选择新配置。配置信息显示在右边。
  4. 单击自变量选项卡。
  5. 在“VM 自变量”字段中输入 VM 自变量 -XrunpiAgent:server=controlled。根据需要指定工作目录。
  6. 单击运行
  7. 选择“概要分析”按钮并选择概要分析
  8. 在“概要分析配置”对话框中,从配置列表中选择“连接 - Java 进程”并指定该进程所需的信息。

1.3.2 代理程序和进程在关闭概要分析监视器时丢失

Bugzilla 缺陷:51161
如果“概要分析监视器”视图中显示的数据(如代理程序或进程)未保存,关闭视图时它们将会丢失。建议在关闭视图之前将所有内容保存在“概要分析监视器”中。
注意:打开新透视图然后切换回“概要分析和记录”透视图不会导致任何数据丢失。

1.3.3 根据概要分析监视器中的选择,刷新视图可能无法工作

Bugzilla 缺陷:71567
在概要分析监视器中禁用“使用查看器进行链接”选项后,仅当概要分析监视器中的当前选择与当前打开的视图相对应时,刷新视图操作(在同一工具栏中)才会起作用。

要解决此问题,执行下列其中一项:

1.4 Probekit

1.4.1 ProbeInstrumenter 程序从 JAR 文件除去整个 META-INF 目录

Bugzilla 缺陷:68309
Probekit 的“ProbeInstrumenter”程序从执行操作的 JAR 文件除去整个 META-INF 目录。如果 META-INF 目录仅包含缺省 MANIFEST.MF 文件,这样做没有什么问题。

如果 JAR 文件的 META-INF 目录包含 MANIFEST.MF 文件之外的文件,则遵循下列步骤以将这些文件保留在插装的 JAR 文件中:

  1. 使用以下命令以将 JAR 文件的 META-INF 目录的内容解压至临时目录:
    jar xf yourfile.jar META-INF
  2. 正常运行 ProbeInstrumenter 以插装该 JAR 文件的内容。
  3. 使用以下命令以将临时 META-INF 目录内容放到插装的 JAR 文件中:
    jar uf yourfile.jar META-INF
  4. 除去临时 META-INF 目录。

1.4.2 ProbeInstrumenter 程序在插装某些类时抛出异常

Bugzilla 缺陷:68435
在插装某些类时,Probekit 的“ProbeInstrumenter”程序将抛出异常,并显示以下错误消息:

ProbeKit 异常编号 4,来自位置 3

出现此异常的一个原因是方法的最后一个可访问指令后包含不可访问的字节代码。某些 Java 编译器会产生这种代码。

这一问题目前没有变通方法。

1.5 概要分析工具

1.5.1 使用 IBM JDK 1.4.1 进行垃圾回收时出现问题

56182

如果用户的应用程序使用巨量堆空间,请求收集对象引用运行 GC 可能导致 JVM 崩溃,并显示以下错误消息:

 **内存不足,正在中止**

*** 应急启动:JVMCI023:无法分配内存以收集 jvmpi_heap_dump 中的堆转储

程序异常终止

如果运行时带有 -Xmx 参数,可尝试通过不带此参数运行来解决此问题。

1.5.2 使用 Sun JDK 时未跟踪某些方法调用

Bugzilla 缺陷:69051

在 Windows 上使用 Sun JDK 时,JVMPI 将不会跟踪 Java 程序中的某些方法调用。

没有已知的变通方法。

1.5.3 在 Solaris 上使用 Sun JDK 1.4.x 进行概要分析可能导致 JVM 崩溃

Bugzilla 缺陷:56404
在 Solaris 上使用 Sun JDK 1.4.x 进行概要分析时可能导致 JVM 崩溃。这是由于 Sun JVM 中的一个错误造成的。

要解决此问题,使用下列概要分析集合中的一项:

如果同时使用这两种方式或者如果“显示实例级别”信息已打开,就会出现该问题。

1.5.4 在 Solaris 上以单机方式运行并且 STACK_INFORMATION 设置为 contiguous 时可能会崩溃

Bugzilla 缺陷:50090
在 Solaris 上进行概要分析时,如果以单机方式进行概要分析,可能会遇到问题。仅当 STACK_INFORMATION 设置为 contiguous(或 boundaryAndContiguous)并且 TRACE_MODE 设置为 full 时,才会发生此问题。此问题可能导致 JVM 崩溃。

要在 STACK_INFORMATION 设置为 contiguous 的情况下解决此问题,将 TRACE_MODE 设置为 noObjectCorrelation。如果 STACK_INFORMATION 设置为 none 或者 STACK_INFORMATION 设置为 normal,则不会发生此问题。

1.5.5 WAIT 和 WAITED 事件的超时值无效

Bugzilla 缺陷:63969

在 Hyades jvmpi 概要文件选项 MONITOR_MODE 设置为 all 的情况下使用 IBM 1.4.2 JDK 运行(以单机方式)时,可能会在跟踪 monitorWait 和 monitorWaited 元素时发现它们的超时属性无效。将它们强制类型转换为 64 位正整数后,它们实际上是极大的超时值。此错误是 JDK 错误造成的。

1.5.6 IBM JDK 1.4.2 的监视器转储不正确

Bugzilla 缺陷:6519372180

因为 JDK 错误,在 jvmpi 概要文件选项 MONITOR_MODE 设置为 all 的情况下以单机方式运行 Hyades 时,可能会产生错误的监视器转储。特别是对于错误 65193,使用“-Xj9”VM 自变量时会发生这种情况。

1.6 统计信息控制台

1.7 测试

1.7.1 常见测试问题

1.7.1.1 JUnit 测试、手工测试和 URL 测试在 iSeries 上不起作用

Bugzilla 缺陷:68899

1.7.1.2 使用不同平台进行测试的自动部署和执行不起作用

Bugzilla 缺陷:67677

对在不同平台上运行的远程系统(Windows 至 Linux 或 Unix 及 Linux 或 Unix 至 Windows)进行的测试的自动部署/执行不起作用。有关如何远程执行测试的信息可在本文档的远程执行一节中找到。

1.7.1.3 借助手工部署执行远程测试

Bugzilla 缺陷:68910
常用测试(URL、JUnit 或手工)是将工作台(Eclipse 用户界面)安装在基于 Windows 的机器上,然后在 Linux 或 Unix 系统上远程执行。目前自动部署在跨平台时不起作用。但是,仍然可以远程运行测试。 必须将表示要执行的测试的文件从创建该测试的系统传送至执行它的系统(最有可能使用 FTP)。数据收集器或 RAC 必须配置为指向已传送的测试内容。

编译测试的字节代码后,它将存储在创建该测试的 Java 项目的 bin 目录中。下面是一个示例:

[ECLIPSE_HOME]/workspace/project1/bin/test/URLTest.class

将以上文件打包以便在远程系统上执行的一个方法是创建 JAR 文件。下面的命令显示如何完成该任务。

    "cd [ECLIPSE_HOME]/workspace/project1/bin"
"jar -cf test.jar test"

于是 test.jar 文件会被传送至远程机器的数据收集器目录结构。

接着,必须将 [RAC_HOME]/config/serviceconfig.xml 文件更改为指向 test.jar,如下所示。

	<AgentControllerEnvironment configuration="default">
...
...
<Variable name="CLASSPATH" position="append" value="%RASERVER_HOME%/test/test.jar"/>
</AgentControllerEnvironment>

从工作台启动测试时,数据收集器将具有指向测试位置的类路径,并且将会执行该测试。

1.7.1.4 数据池访问

Bugzilla 缺陷:68911
描述从 Hyades 测试访问数据池的文档中缺少一个步骤,并且包含不能完全起作用的代码样本。

下列 JAR 需要添加至 Java 构建路径。 [ECLIPSE_HOME] 是 Eclipse 的安装目录。

	[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

以下代码段演示如何正确访问数据池并抽取信息。 

	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 测试

1.7.2.1 测试导航器中未显示 URL 响应时间和命中率报告

Bugzilla 缺陷:68553
测试导航器中未显示 URL 响应时间和命中率报告。可通过在“资源”透视图中打开创建测试报告的项目来找到这些报告。

1.7.2.2 URL 测试记录器显示“IWAT3042E 记录因为空异常而中止”

Bugzilla 缺陷:66199
如果在启动 Eclipse 时使用了“-Xj9”自变量,则在多次记录后“记录器控制”视图将显示“IWAT3042E 记录因为空异常而中止”。变通方法是关闭 Eclipse 然后重新打开它。

1.7.2.3 将 URL 测试作为 JUnit 测试来执行

Hyades URL 测试可作为 JUnit 测试来执行。为此,必须将以下各条目添加至包含 URL 测试的项目的 Java 构建路径:

      [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 执行 URL 测试样本

在创建 URL 测试样本后,不能立即执行该样本。必须配置两个构件,该测试样本才能成功运行。构件 1 的 CLASSPATH 变量应指向机器上该工作空间的位置:

	[ECLIPSE_HOME]/eclipse/workspace/URL Test Sample/bin

位置 1 的 ROOTDIR 变量应指向表示工作空间的目录

	[ECLIPSE_HOME]/workspace

URL 测试样本的缺省名称包含空格。这可能导致某些操作系统出现问题。样本的名称可在创建时更改。

1.7.2.5 URL 测试样本 readme.html 错误地引用了“组件测试”

Bugzilla 缺陷:68910

URL 测试样本 Web 页面引用了名为“组件测试”的联机帮助部分,但这一部分并不存在。该 Web 页面应引用联机帮助的“测试”部分。

返回到主自述文件