本章介绍有关 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 软件的已知问题和相应的解决方法。如果汇总说明未指明特定平台,则所有平台都可能出现此问题。本部分信息按以下内容进行组织:
本节介绍已知的管理问题和相应的解决方法。
本节介绍 Apache Web 服务器和负载平衡器插件的已知问题和相应的解决方法。
错误号 |
摘要 |
---|---|
6306784 |
High-Availability Administration Guide 中有关对 Apache 使用 openssl 的说明不正确。 解决方法 在编译和生成 openssl 时,请使用以下命令: cd openssl-0.9.7e config make 另外,对于 Apache 1.3,mod_ssl 源的目录名称会因使用的 Apache 版本而异。例如,对于 Apache 1.3.33,该名称为 mod_ssl-2.8.22-1.3.33。 |
6307976 |
High-Availability Administration Guide 中不包含有关对 Apache 2.0 使用证书的说明。 解决方法 要运行 Apache 安全性,就必须使用证书。有关从证书授权机构获取证书的说明,请参见 modssl 常见问题解答中有关证书的信息。 |
6308021 |
必须以超级用户的身份启动 Apache Web 服务器。 解决方法 在 Solaris 上,如果 Application Server 由超级用户安装,则必须以超级用户的身份启动 Apache Web 服务器。必须以超级用户的身份来安装 Java Enterprise System 软件。对于 Apache 2.0,在以超级用户的身份启动后,Apache 会切换到您指定的另一用户并以该用户的身份运行。可在 /conf/httpd.conf 文件中指定该用户。要以超级用户的身份启动,在很多系统中都必须编辑 httpd.conf 文件以指定正确的组。将行: Group #-1 替换为: Group nobody 有关用户/组使用的信息包含在 httpd.conf 文件中。 |
6308043 |
有关在 Solaris 中对 Apache Web Server 2.0 使用 openssl 的补充说明。 在安装 Apache 2.0 和负载平衡器插件后,请按如下说明编辑 ssl.conf 和 sll-std.conf: 将行: <VirtualHost _default_:9191> 替换为: <VirtualHost machine_name:9191> 其中 machine_name 是计算机的名称,9191 是安全端口号。 |
本节介绍已知的应用程序客户机问题和相应的解决方法。
错误号 |
摘要 |
---|---|
6193556 |
封装在应用程序客户机归档文件中的库 JAR 覆盖 MANIFEST 文件。 如果在您的客户机 JAR 中具有顶层 JAR 文件(在此情况下,为 reporter.jar),则当您部署客户机 JAR 时,该 JAR 的 MANIFEST 文件将覆盖客户机 JAR 的 MANIFEST 文件。 解决方法 目前尚无解决方法。 |
6373043 |
不再支持动态内容技术,例如 CGI-bin 和 SHTML。 解决方法 请改为使用 JSP 和 Web 服务技术。 |
本节介绍已知的捆绑的 Sun JDBC 驱动程序问题和相应的解决方法。
错误号 |
摘要 |
---|---|
6165970 |
如果两个并行事务正在运行并且其中一个已回滚,则当使用准备好的语句进行更新时,结合使用 TRANSACTION_SERIALIZABLE 隔离级别和 Microsoft SQL Server 的捆绑 Sun 驱动程序的应用程序可能会挂起。 要为连接设置所需的隔离级别,必须以同一隔离级别创建相应的连接池。有关配置连接池的详细信息,请参见管理指南。 解决方法 目前尚无解决方法。 |
6170432 |
PreparedStatement 错误。 描述 1 如果应用程序在一个事务中生成超过 3000 个 PreparedStatement 对象,DB2 可能会出现以下错误: [sunm][DB2 JDBC 驱动程序] 无更多可用语句。请重新创建具有较大 dynamicSections 值的软件包。 解决方法 1 将以下属性添加到连接池定义中,以使驱动程序可以重新绑定具有较大动态段值的 DB2 软件包: createDefaultPackage=true replacePackage=true dynamicSections=1000 有关配置连接池的详细信息,请参见管理指南。 描述 2 可能抛出的与上述 PrepardStatement 错误相关的另一条错误消息为: [sunm][DB2 JDBC 驱动程序][DB2] 虚拟存储或数据库资源不可用。 解决方法 2 增大 DB2 服务器的配置参数 APPLHEAPSZ。最佳值为 4096。 描述 3 隔离级别为 TRANSACTION_SERIALIZABLE。如果应用程序使用隔离级别 TRANSACTION_SERIALIZABLE 并使用上面建议的某个参数,该应用程序可能会在获取连接时挂起。 解决方法 3 要为连接设置所需的隔离级别,必须以同一隔离级别创建相应的连接池。有关说明,请参见管理指南。 |
6189199 |
使用捆绑的 Sun 驱动程序为 Sybase Adaptive Server 设置隔离级别时出现问题。
解决方法 目前尚无解决方法。 |
6247468 |
在 Solaris 10 和 Enterprise Linux 3.0 上,Sun 捆绑的 Oracle JDBC 驱动程序不允许创建连接。 解决方法 使用 SUN JDBC Oracle 数据源 (com.sun.sql.jdbcx.oracle.OracleDataSource) 时,对 JDBC 连接池设置以下属性: <property name="serverType" value="dedicated"/> 属性的值取决于 Oracle 服务器侦听器的配置方式。如果它配置为“共享”模式,上述值必须更改为 "dedicated"。 |
6554602 |
从 JDBC 10.2 驱动程序开始,如果 CLASSPATH 中包含多个 JDBC jar 文件,则可能导致 java.lang.SecurityException: Sealing violation exception。 以下 Oracle 文档 ID 中包含来自 Oracle 的详细解释: 说明:405446 主题:JDBC 驱动程序 10.2 使用密封的 JAR 文件并可能导致安全性异常(密封违规) 解决方法 (Oracle 的建议)请确保 CLASSPATH 仅包含一个 JDBC 驱动程序 JAR 文件。 |
本节介绍已知的 J2EE 连接器体系结构问题和相应的解决方法。
错误号 |
摘要 |
---|---|
6188343 |
在重新启动 DAS 实例后,如果将级联设置为 false,取消部署连接器模块的操作将失败。 此方案中,已在 DAS 和连接器连接池中部署了独立或嵌入式连接器模块,并且已为该部署的模块创建了资源。在重新启动 DAS 实例后,如果将 cascade 设置为 false,取消部署连接器模块的操作将失败并且会出现以下异常: [#|2004-10-31T19:52:23.049-0800|INFO|sun-appserver-ee8.1|javax.enterprise.system .core|_ThreadID=14;|CORE5023:卸载应用程序时出错 [foo]|#] 解决方法 在重新启动 DAS 实例后,使用级联的取消部署(将 cascade 选项设置为 true)来取消部署独立连接器和嵌入式连接器。 |
本节介绍已知的文档问题和相应的解决方法。
错误号 |
摘要 |
||
---|---|---|---|
各种 ID |
Javadoc 不一致。 缺少多个 AMX 接口和方法的 Javadoc 或该 Javadoc 不正确:
|
||
6265624 |
捆绑的 ANT 会抛出 java.lang.NoClassDefFoundError。 线程 "main" 中会抛出以下异常:java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher。 解决方法 建议不要对 Application Server 外的对象使用捆绑的 ANT。 |
||
6486123 |
有关从包装的连接获取物理连接的文档不再正确。 由于其他错误(可能是 6295215),《Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Developer’s Guide》中的第 11 章 “Using the JDBC API for Database Access”中的《Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Developer’s Guide》中的“Obtaining a Physical Connection from a Wrapped Connection”一节中提供的代码不正确。 具体来说,以下行:
现在应该为:
|
本节介绍已知的高可用性数据库 (HADB) 问题和相应的解决方法。
错误号 |
摘要 |
|||
---|---|---|---|---|
无 ID |
使用双网络时的 HADB 配置 使用两个子网上的双网络进行配置的 HADB 可以在 Solaris SPARC 上正常工作。但是,由于操作系统或网络驱动程序在某些硬件平台上的问题,已发现在 Solaris x86 和 Linux 平台上并不总是能够正确处理双网络。这就导致 HADB 出现以下问题:
|
|||
无 ID |
HADB 数据库创建失败。 创建新数据库可能会失败并出现以下错误,说明可用的共享内存段太少: HADB-E-21054:系统资源不可用:HADB-S-05512:用关键字 "xxxxx" 连接共享内存段失败,操作系统状态=24,操作系统错误消息:打开的文件太多。 解决方法 请确认已配置共享内存且配置能正常工作。特别是在 Solaris 8 上,请检查文件 /etc/system,然后确定变量 shmsys:shminfo_shmseg 的值至少为每个主机的节点数的六倍。 |
|||
5052548 |
共享内存段被锁定,无法将其调出。 HADB 4.3-0.16 及更高版本被配置为在创建并附加到其共享内存段时使用锁定共享内存(使用 SHM_SHARE_MMU 标志)。使用此标志实质上是将共享内存段锁定到物理内存中,防止它们被调出。这很容易导致在低端计算机上安装时出现问题。 因此,如果开发者的计算机装有 512MB 的内存,并且在使用 Application Server 7.0 EE 时具有大量的可用交换空间,然后安装了 7.1 EE 或更高版本,则该开发者在配置默认的 clsetup 群集时会遇到问题(将创建两个 HADB 节点,每个节点的 devicesize 为 512,这将导致没有足够的物理 RAM,无法支持这两个节点所需的共享内存)。 解决方法 在同时使用 Application Server 和 HADB 时,请确保具有推荐的内存量。有关更多信息,请参见HADB 要求和支持的平台。 |
|||
5091280 |
hadbm set 不会检查资源可用性(磁盘和内存空间)。 使用 hadbm set 增大设备或缓冲区大小时,管理系统会在创建数据库或添加节点时检查资源可用性,但在更改设备或主内存缓冲区大小时则不会检查是否有足够的可用资源。 解决方法 在增大 devicesize 或 buffersize 配置属性之前,确认所有主机上都有足够的可用磁盘空间/内存空间。 |
|||
5091349 |
不支持对 packagepath 使用异构路径。 不能在不同主机上的不同位置使用相同名称注册同一个软件包;例如:
解决方法 HADB 不支持数据库群集中节点之间的异构路径。确保 HADB 服务器的安装目录 (--packagepath) 在所有参与的主机上都相同。 |
|||
6173886、6253132 |
createdomain 可能会失败。 在具有多个网络接口的主机上运行管理代理时,如果所有网络接口不是在同一子网中,则 createdomain 命令可能会失败:
管理代理将(如果不是采用其他配置)使用 UDP 多址广播的“第一个”接口(“第一个”接口由 java.net.NetworkInterface.getNetworkInterfaces() 的结果定义)。 解决方法 最佳解决方法是告诉管理代理要使用哪个子网(在配置文件中设置 ma.server.mainternal.interfaces,例如,ma.server.mainternal.interfaces=10.11.100.0)。此外,也可以配置子网之间的路由器,以便路由多址广播数据包(管理代理使用多址广播地址 228.8.8.8)。 在重试管理代理的新配置之前,可能需要清除管理代理系统信息库。停止域中的所有代理,并删除系统信息库目录(由管理代理配置文件中的 repository.dr.path 标识)中的所有文件和目录。必须先在所有主机上执行此操作,然后才能用新配置文件重新启动代理。 |
|||
6190878 |
在删除 HADB 实例后需要清理目录。 删除 HADB 实例后,接下来尝试使用 configure-ha-cluster 命令创建新实例会失败。问题在于 ha_install_dir/rep/* 和 ha_install_dir/config/hadb/instance_name 中保留了原始 HADB 实例的旧目录。 解决方法 在删除 HADB 实例后务必手动删除这些目录。 |
|||
6230792、6230415 |
启动、停止和重新配置 HADB 可能会失败或挂起。 在 Solaris 10 Opteron 上,使用 hadbm 命令启动、停止和重新配置 HADB 可能会失败或挂起,并产生以下错误:
如果 clu_noman_srv 进程所使用的文件 ( nomandevice) 存在不一致的读/写操作,就会出现这种情况。通过在 HADB 历史文件中查找以下消息,可以检测到此问题:
解决方法 以下解决方法未经验证,原因是此问题尚未手动再现。但是,对受影响的节点运行此命令应该能解决此问题。
请注意,该节点的所有设备都将重新初始化。在重新初始化之前可能必须停止该节点。 |
|||
6232140 |
管理代理终止并产生异常“IPV6_MULTICAST_IF 失败” 在运行 Solaris 8 且装有多个 NIC 卡的主机上启动时,如果混合启用了 IPv6 卡和 IPv4 卡,管理代理可能会终止并产生异常“IPV6_MULTICAST_IF 失败”。 解决方法 将环境变量 JAVA_OPTIONS 设置为 -Djava.net.preferIPv4Stack=true;例如:
此外,也可以使用 Solaris 9 或更高版本,这些版本不会出现此问题。 |
|||
6249685 |
无法中断 clu_trans_srv。 在 Red Hat Enterprise Linux 3.0 的 64 位版本中有一个错误,使 clu_trans_srv 进程在执行异步 I/O 时以不可中断模式结束。这意味着 kill -9 不起作用,必须重新引导操作系统。 解决方法 使用 Red Hat Enterprise Linux 3.0 的 32 位版本。 |
|||
6262824 |
hadbm 不支持包含大写字母的密码。 当密码存储在 hadb 中时,其中的大写字母会转换成小写字母。 解决方法 请勿使用包含大写字母的密码。 |
|||
6265419 |
从 HADB 4.4.2.5 版降级到 HADB 4.4.1.7 版会导致 ma 失败并产生不同的错误代码。 降级到先前的 HADB 版本时,管理代理会失败并产生不同的错误代码。 解决方法 可以降级 HADB 数据库,但如果已经对系统信息库对象进行更改,则无法降级管理代理。在降级后,必须仍然使用来自最新 HADB 版本的管理代理。 |
|||
6271063 |
安装/删除和 symlink 保留。 对于 HADB c 软件包 (Solaris: SUNWhadbc, Linux: sun-hadb-c) <m.n.u-p> 版的安装/删除,symlink /opt/SUNWhadb/<m> 在创建后不会有任何改动。因此,可能会存在孤立的 symlink。 解决方法 除非正在使用 symlink,否则请在安装前或卸载后将其删除。 |
|||
6273681 |
全局区域和局部区域中的管理代理可能会相互干扰。 在 Solaris 10 上,在全局区域中使用 ma-initd 脚本停止管理代理,也会在局部区域中停止管理代理。 解决方法 请勿在全局区域和局部区域中都安装管理代理。 |
|||
6275103 |
当某个会话对象超时并在 MA 处删除时,hadbm/ma 应该给出较好的错误消息。 有时,服务器上的资源争用问题可能会导致管理客户机断开连接。在重新连接时,可能会返回误导性的错误消息“hadbm:错误 22184:必须提供密码才能连接到管理代理”。 解决方法 检查服务器上是否存在资源问题,采取适当的措施(例如添加更多资源),然后重试操作。 |
|||
6275319 |
只有超级用户可以管理 HADB。 与 Java Enterprise System 一起安装(以超级用户的身份)仅允许超级用户管理 HADB。 解决方法 要管理 HADB,请始终以超级用户的身份登录。 |
|||
6293912 |
管理代理不应使用特殊用途的接口。 IP 地址类似于 0.0.0.0 的特殊用途的接口不应注册为可供管理代理中的 HADB 节点使用的接口。如果用户使用主机名称而不是 IP 地址发出 hadbm create 命令,将 HADB 节点设置到这些接口上,则注册这些接口可能会导致出现此问题。此后,节点将无法通信,从而导致 create 命令挂起。 解决方法 在具有多个接口的主机上使用 hadbm create 时,始终明确使用 DDN 表示法来指定 IP 地址。 |
|||
6291562 |
在 Windows 上重汇编失败。 在具有某些配置和负载的 Windows 平台上,操作系统中可能会出现大量的重汇编失败。已经发现 20 多个节点的配置在并行运行多个表扫描 (select *) 时有此问题。症状可能是事务频繁地异常中止,修复或恢复会持续很长时间才能完成,系统的各个部分会频繁超时。 解决方法 要修复此问题,可将 Windows 注册表变量 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 设置为高于默认值 100 的值。建议将此值增大到 0x1000 (4096)。有关更多信息,请参见 Microsoft 支持页中的文章 811003。 |
|||
6303581、6346059、6307497 |
运行 hadbm start <db_name> 时,部分输入的密码未以屏蔽方式显示。 当计算机处于负载状态时可能会出现此情况,此时屏蔽机制会失败,并且部分正在输入的密码会公开出来。这会导致较小的安全风险,密码应该始终以屏蔽方式显示。 解决方法 将密码保存在其各自的密码文件中(从 Application Server 8.1 开始通常推荐的方法),并使用 --adminpassword 或 --dbpasswordfile 选项引用这些文件。 |
本节介绍已知的安装问题和相应的解决方法。
错误号 |
摘要 |
||
---|---|---|---|
5009728 |
在某些 Linux 系统上,单击“完成”按钮后安装关闭挂起。 已在多种 Linux 系统上发现此问题。此问题在 Java Desktop System 2 上最常见,但在 Linux Red Hat 分发上也发现了此问题。 在安装程序的最后一个屏幕上单击“完成”按钮后,安装程序无法启动包含产品“关于”页面或产品注册页面的浏览器窗口,同时安装程序将无限期地挂起并且不返回命令提示符。 解决方法 通过在启动安装程序的终端窗口中按 Ctrl+C 组合键来退出安装程序。执行此操作后,有时会启动包含产品“关于”页面或注册页面的浏览器窗口。如果不显示此窗口,请启动浏览器并输入以下 URL 以查看“关于”页面:
如果您还选择了用于注册产品的安装选项,请点击产品“关于”页面上提供的指向注册页面的链接。 |
||
6199697 |
在 Windows 上,在安装过程中需要创建 imq 目录。 在 Windows 上安装 Application Server Enterprise Edition 之后不久,Message Queue 代理启动失败,并显示一条消息,说明目录 drive:\as\domains\domain1\imq 不存在。 请注意,如果在启动 domain1 后启动该代理,则 Application Server 将创建该目录,因此不会出现上述问题。 解决方法
|
||
6297837 |
Application Server 安装程序显示的产品名称 "Sun Java(TM) System Application Server Enterprise Edition 8.1 2005Q4" 中的产品发行日期不正确。 解决方法 正确的产品名称/日期应该是 "Sun Java(TM) System Application Server Enterprise Edition 8.1 2005Q2"。 |
||
6396045 |
Application Server 不支持网络文件系统 (Network File System, NFS)。 解决方法 无。 |
要在 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 上运行 J2EE 1.4 Tutorial,请执行以下任务:
按照“关于本教程”一章的“关于示例”一节中所述编辑文件示例 /common/build.properties 时,还要将端口 4848 改为 4849。
使用 Deploytool 时,在部署示例之前添加服务器 localhost:4849。
使用管理控制台创建资源时,使用“目标”选项卡将服务器指定为目标。如果使用命令行或 asant 目标,则该服务器为默认目标,无需其他操作。
本节介绍已知的生命周期管理问题和相应的解决方法。
错误号 |
摘要 |
||
---|---|---|---|
6193449 |
将 ejb-timer-service 属性 minimum-delivery-interval 设置为 9000 之后,如果尝试将 ejb-timer-service 属性 redelivery-interval-in-mills 设置为 7000,则会导致 set 命令失败并显示以下错误:
问题在于描述重新传送时间间隔属性与最小传送时间间隔属性之间关系的逻辑不正确,使您无法使用 GUI 或 CLI 来设置使最小传送时间间隔大于重新传送时间间隔的任何值。 必须始终将 minimum-delivery-interval-in-millis 设置为等于或大于 ejb-timer-service 属性 redelivery-interval-in-millis。Application Server 在确认 redelivery-interval-in-millis 的值是否大于 minimum-delivery-interval-in-millis 的值时使用了错误的验证检查,这是产生上述问题的原因。 解决方法 使用这些属性的默认值,如下所示:
使用其他的值将导致产生错误。 |
本节介绍已知的日志记录问题和相应的解决方法。
错误号 |
摘要 |
|
---|---|---|
6180095 |
为 access,failure 设置调试语句会导致 Application Server 在启动时挂起。 为 JVM 设置 java.security.debug 选项会导致服务器实例的启动停止并死锁;例如,在 domain.xml 中进行以下设置将导致出现此问题:
目前尚无解决方法。请避免设置此标志。 |
本节介绍已知的 Java Message Queue 问题和相应的解决方法。
错误号 |
摘要 |
---|---|
6173308、6189645、6198481、6199510、6208728 |
在某些与时间相关的情况下,JMS 重新连接无法成功完成。 多种问题均可导致在与时间相关的情况下重新连接失败。 解决方法 可以通过以下方法解决这些问题:
|
6198465 |
从 8.0 到 8.1 Update 2,appclient 中的异步消息侦听器行为已改变。 由于最近的更改,当异步消息侦听器是 app-client 容器中唯一的活动线程时,其余 appclient 虚拟机将作为守护进程存在。对于以前在 ACC 中执行异步接收的应用程序,此行为是一种退化。此问题将影响设置 JMS 消息侦听器并退出主线程的应用程序客户机。 解决方法 不退出主线程。等待消息侦听器通知主线程,然后再终止主线程。 |
本节介绍已知的监视问题和相应的解决方法。
错误号 |
摘要 |
||||||
---|---|---|---|---|---|---|---|
6174518 |
某些 HTTP 服务监视统计信息不提供有用信息,应该被忽略。 查看 HTTP 服务的某些元素的监视统计信息时,显示的某些值与当前值并不对应或始终为 0。特别是,以下 HTTP 服务统计信息并不提供适用于 Application Server 的信息,应该被忽略:
解决方法 在以后的版本中,将删除这些监视器并将其替换为更适当的信息。 |
||||||
6191092 |
不会删除已取消部署的 EJB 模块的监视 MBean,即使该监视名称下的所有统计信息均已移动。 例如:
EJB 模块和应用程序都存在这个问题。以编程方式(通过 MBean API)和通过 asadmin list/get 执行操作后,空的监视 MBean 仍然存在。 诊断
您可以查看统计信息:
一旦您取消部署:
如果执行 list 命令,您仍然可以看到应用程序:
但它不包含任何监视统计信息:
|
||||||
|
要获得以某个字符串开头的有效名称,请使用通配符 (' *')。例如,要列出以 server 开头的所有可监视实体的名称,请使用 list "server.*" 命令。 解决方法 这是没有危害的。可以安全地重新部署模块而不会出现任何问题。未删除根监视 Mbean,但它为空。 |
本节介绍与 PointBase 有关的已知问题和相应的解决方法。
错误号 |
摘要 |
---|---|
6184797 |
对应用程序的连接池设置隔离级别导致 PointBase 中出现异常。 对于指向 PointBase 数据库安装的 JDBC 连接池,将 transaction-isolation-level 池属性设置为默认值 (Connection.TRANSACTION_READ_COMMITTED) 以外的任何值都会导致异常。但是,对于指向其他数据库的池,将此参数设置为非默认值不会抛出异常。 解决方法 对于指向 PointBase 数据库安装的 JDBC 连接池,不要尝试设置 transaction-isolation-level。 |
6204925 |
如果同时使用网络服务器驱动程序和嵌入式驱动程序,PointBase 将抛出异常。 如果同时使用网络服务器驱动程序和嵌入式驱动程序,捆绑的 PointBase 有时会抛出异常。 解决方法 只使用嵌入式驱动程序或网络服务器驱动程序两者之一。 |
6264969、6275448 |
升级时会出现覆写默认 PointBase 数据库的问题。 升级到 Application Server Enterprise Edition 8.1 2005Q2 Update 2 时,升级发行版修补程序会覆写 Pointbase 默认数据库。 解决方法 重新创建或重新输入升级之前存在的任何方案或数据。如果用具有生成表选项的 CMP Bean 来部署应用程序,则必须取消部署或重新部署应用程序,以便重新生成表。 |
本节介绍与 Application Server 8.1 产品附带的样例代码相关的已知问题和相应的解决方法。
错误号 |
摘要 |
|||||
---|---|---|---|---|---|---|
6195092 |
setup-one-machine-cluster 在 Windows 上会挂起,但在 Solaris 上可以正常工作;mqfailover 需要使用 Ctrl+C 组合键取消,然后必须重新运行。 如果从 install_dir\samples\ee-samples\failover\apps\mqfailover\docs\index.html 运行以下命令:
如果已经为任何其他 Enterprise Edition 样例执行了 asant setup-one-machine-cluster-without-ha 或 asant setup-one-machine-cluster-with-ha,则请执行 asant configure-mq,否则请执行 asant setup-one-machine-cluster-and-configure-mq。在这种情况下,命令显示为成功:
但随后系统将无限期挂起。 解决方法 目前尚无解决方法。此问题同样会影响在 Windows 上使用此 ant 目标的所有 Enterprise Edition 样例。一个解决方法是按 Ctrl+C 组合键退出挂起的进程,然后重新运行它。 |
|||||
6198003 |
文档没有明确说明在执行 asadmin 部署指令之后,需要在运行 MQ 故障转移样例应用程序之前创建 JMS 资源。 抛出的错误如下:
文档没有明确说明如果使用 asadmin deploy 命令进行了手动部署则必须手动创建 JMS 资源,并且应使用提供的 ant 目标来部署样例应用程序。 解决方法 将 asant 部署目标用于 build.xml 脚本,该脚本用于创建运行应用程序所需的 JMS 资源。 |
|||||
6198239 |
在 Linux 上,在 Web 服务/安全性样例中创建证书的过程中会发生运行时错误。 在 Linux 上,部署 install_dir/samples/webservices/security 样例 (basicSSl) 时未创建证书,而抛出类似如下的错误:
问题在于 NSS 库在 Linux 安装上的位置与其在 Solaris 安装上的位置不同。在 Linux 上部署时,必须确保 LD_LIBRARY_PATH 指向正确的 NSS 库。在您的环境中或在 install_dir/bin/asant shell 包装程序脚本中设置 LD_LIBRARY_PATH。 解决方法 执行以下操作之一:
|
本节介绍与 Application Server 及 Web 应用程序安全性和证书相关的已知问题和相应的解决方法。
错误号 |
摘要 |
---|---|
6183318 |
无法在 Enterprise Edition 上使用 J2SE 5.0 运行 WebServiceSecurity 应用程序。 无法使用 J2SE 5.0 运行 WebServiceSecurity 应用程序,原因是:
J2SE 小组已针对此错误归档“CR 6190389: 为 RSA-PKCS1 和 RSA-OAEP 包装/解包机制添加支持”。 解决方法 使用带有任何其他 JCE 提供者(而不是默认包含的提供者)的 J2SE 1.4.2。请注意,此配置中将不提供对硬件加速器的支持。 |
6269102 |
SSL 终止不起作用;如果为 SSL 终止配置了负载平衡器(硬件),则 Application Server 会在重定向过程中将协议从 https 更改为 http。 解决方法 在硬件负载平衡器与 Application Server 之间添加软件负载平衡器。 |
本节介绍已知的升级实用程序问题和相应的解决方法。
错误号 |
摘要 |
||
---|---|---|---|
6165528 |
从 Application Server Enterprise Edition 8 升级到 Application Server Enterprise Edition 8.1 时,不会直接升级在自定义路径而非 install_dir/domains 目录中创建的域。 如果运行升级实用程序并将 install_dir 标识为源安装目录,升级进程只升级在 install_dir/domains 目录下创建的域。在其他位置创建的域不会被升级。 解决方法 启动升级进程前,将所有域目录从不同位置复制到 install_dir/domains 目录中。 |
||
6207337 |
在某些 Linux 系统上,单击“启动升级向导”按钮之后,执行“就地升级”的安装程序无法启动升级工具。 此问题已在多个 Linux 系统上出现,是 Java Desktop System 2 最常见的问题,而且在 Red Hat 分发中也发现了此问题。 在最终安装程序屏幕上单击“启动升级工具”按钮后,安装程序无法启动升级工具以完成升级过程,并且无限期挂起,而不会返回命令提示符。 解决方法 如果使用命令行安装模式来运行就地升级,将不会遇到此问题。
如果您还选择了用于注册产品的安装选项,请点击产品“关于”页面上提供的指向注册页面的链接。 |
||
6296105 |
在从 8.0 Platform Edition (PE) 升级到 8.1 Enterprise Edition (EE) UR2 的过程中以及升级之后,不信任自签名的证书。 解决方法 将以下条目从目标 domain.xml 删除(在升级后),然后重新启动服务器: <jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot} /config/keystore.jks</jvm-options>- <jvm-options>Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot} /config/cacerts.jks</jvm-options> |
本节介绍已知的 Web 容器问题和相应的解决办法。
错误号 |
摘要 |
|||
---|---|---|---|---|
5004315 |
在 Windows 上,使用 --precompilejsp=true 部署应用程序时,会锁定该应用程序中的 JAR,从而导致以后无法取消部署或重新部署。 如果您在 Windows 上部署应用程序时要求预编译 JSP,则以后尝试取消部署该应用程序或重新部署该应用程序(或任何具有相同模块 ID 的应用程序)的操作将不会按预期进行。出现此问题的原因是:JSP 预编译会打开应用程序中的 JAR 文件,但不能关闭这些文件,Windows 将禁止执行取消部署或重新部署操作以避免删除或覆盖它们。 请注意,取消部署在某种程度上是成功的,因为应用程序会从 Application Server 中被逻辑删除。另外请注意,asadmin 实用程序不会返回任何错误消息,但应用程序的目录以及锁定的 jar 文件会保留在服务器中。服务器的日志文件将包含用于说明未能删除文件和应用程序的目录的消息。 在取消部署后尝试重新部署应用程序的操作会失败,这是由于服务器尝试删除现有文件和目录,而这些尝试也失败了。如果您尝试部署的应用程序所使用的模块 ID 与最初部署的应用程序的模块 ID 相同,会出现这种情况,这是由于服务器在选择目录名来保存应用程序的文件时会使用模块 ID。 如果没有先取消部署应用程序而尝试重新部署该应用程序,也将会由于同样的原因而失败。 诊断 如果尝试重新部署应用程序或在取消部署后部署它,asadmin 实用程序将返回一个类似如下的错误。
解决方法 如果在部署应用程序时指定 --precompilejsps=false(默认设置),则不会出现此问题。请注意,第一次使用应用程序时会触发 JSP 编译,因此第一个请求的响应时间将会长于随后的请求的响应时间。 另外,请注意,如果您确实进行了预编译,则在取消部署或重新部署应用程序之前,应先停止并重新启动服务器。关闭服务器后将释放锁定的 JAR 文件,这样在重新启动服务器后,取消部署或重新部署便可以成功。 |
|||
6172006 |
无法使用基于 Servlet 2.4 且包含空 <load-on-startup> 元素的 web.xml 来部署 WAR。 web.xml 中的可选 load-on-startup servlet 元素表示相关的 servlet 将在启动对其进行声明的 Web 应用程序期间被加载和初始化。 此元素的可选内容是一个整数,用于表示该 servlet 相对于 Web 应用程序的其他 servlet 而被装入和初始化的顺序。只要该 servlet 在包含它的 Web 应用程序启动期间被加载和初始化,空的 <load-on-startup> 就表示顺序无关紧要。 web.xml 的 Servlet 2.4 模式不再支持空的 <load-on-startup>,这意味着在使用基于 Servlet 2.4 的 web.xml 时,必须指定一个整数。如果像在 <load-on-startup/> 中一样指定空的 <load-on-startup>,则 web.xml 将无法针对 web.xml 的 Servlet 2.4 模式进行验证,从而导致 Web 应用程序的部署失败。 向下兼容性问题。指定空的 <load-on-startup> 在基于 Servlet 2.3 的 web.xml 中仍起作用。 解决方法 在使用基于 Servlet 2.4 的 web.xml 时,指定 <load-on-startup>0</load-on-startup>,以表明 servlet 的装入顺序无关紧要。 |
|||
6184122 |
无法编译资源受限服务器上的 JSP 页面。 已访问 JSP 页面但是无法对其进行编译,并且服务器日志包含错误消息“无法执行命令”和以下堆栈跟踪:
解决方法 将 JSP 编译开关 "fork" 设置为 "false"。 可以通过以下两种方式之一来实现:
以上任何一种设置都将阻止 ant 生成用于 javac 编译的新进程。 |
|||
6188932 |
Application Server 不支持 auth-passthrough Web Server 6.1 附加软件。 Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Update 2 添加了对 Sun Java System Application Server Enterprise Edition 7.1 附带的 auth-passthrough 插件函数所提供功能的支持。但是,在 Application Server Enterprise Edition 8.1 2005Q2 Update 2 中,auth-passthrough 插件功能的配置有所不同。 Application Server Enterprise Edition 7.1 中的 auth-passthrough 插件功能已经在两层部署方案中带来很大帮助,其中:
在这种网络体系架构中,客户机连接到前端 Web 服务器,而该 Web 服务器配置有 service-passthrough 插件功能,会将 HTTP 请求转发到代理的 Application Server 实例以供处理。Application Server 只能从 Web 服务器代理接收请求,而决不会从任何客户机主机接收请求。因此,当部署在代理的 Application Server 实例上的任何应用程序查询客户机信息时,该应用程序将收到代理主机的信息(例如,当该应用程序查询客户机 IP 地址时,会收到代理主机的 IP),这是因为代理主机才是中继请求的真正发出主机。 在 Application Server Enterprise Edition 7.1 中,auth-passthrough 插件功能可在代理的 Application Server 实例上配置,以便使远程客户机信息能够直接由其上部署的所有应用程序使用,就像 Application Server 实例直接接收了请求,而不是通过运行 service-passthrough 插件的中间 Web 服务器接收请求。 在 Application Server Enterprise Edition 8.1 2005Q2 Update 2 中,可以通过将 domain.xml 中 <http-service> 元素的 authPassthroughEnabled 属性设置为 TRUE 来启用 auth-passthrough 功能,如下所示:
|
|||
|
Application Server Enterprise Edition 7.1 中 auth-passthrough 插件功能的安全注意事项也同样适用于 Application Server Enterprise Edition 8.1 2005Q2 Update 2 中的 authPassthroughEnabled 属性。由于 authPassthroughEnabled 使我们能够覆盖可用于验证目的的信息(如发出请求的 IP 地址或 SSL 客户机证书),因此可以确保只有受信任的客户机或服务器才能连接到将 authPassthroughEnabled 设置为 TRUE 的 Application Server Enterprise Edition 8.1 2005Q2 Update 2 实例。作为一项预防措施,建议仅将公司防火墙之后的服务器的 authPassthroughEnabled 设置为 TRUE,而不要将可通过 Internet 访问的服务器的 authPassthroughEnabled 设置为 TRUE。 请注意,当代理 Web 服务器已配置了 service-passthrough 插件并且将请求转发到 authPassthroughEnabled 设置为 TRUE 的 Application Server 8.1 Update 2 实例时,Web 服务器代理上可能启用了 SSL 客户机验证,而在代理的 Application Server 8.1 Update 2 实例上却禁用了该验证。在这种情况下,代理的 Application Server 8.1 Update 2 仍会将请求当作通过了 SSL 验证,并向部署在其上的发出请求的所有应用程序提供客户机 SSL 证书。 |