6.1.1 发行注记
JBoss 企业级应用程序平台 6.1
JBoss 企业级应用程序平台 6.1.1 里的新功能、已知问题和支持信息。
摘要
这些发行注记包含了和 JBoss EAP 6.1.1 相关的重要信息。已知的问题、其他资源和目前存在的问题都会在此提及。
本发行注记里的修改是相对于以前的
6.0.1 版本的。
1. 概述 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
红帽 JBoss EAP 6 是红帽对机构发展和部署企业级应用程序方式的重大修改的响应。因为机构寻求更低的操作成本并减少为新应用程序作市场宣传的时间,JBoss EAP 6 已经为将来的远景、创新的模块化的云就绪架构、强大的管理和自动化、世界级的开发人员生产力进行了重构。
红帽 JBoss EAP 6 通过了 Java EE 6 认证,它功能强大、管理灵活、改进了性能和扩充性,且有许多新功能来提高开发人员的开发能力。有着红帽对于认证和支持的市场领先的声誉,它可以确保你未来的管理和开发需要。
2. 常见问题解答 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
- 问: 这个版本里修改了什么?
- 问: 在哪里可以找到余下的文档?
- 问: 在哪可以找到升级说明?
- 问: 这个产品支持哪些操作系统、Java 虚拟机和数据库服务器?
- 问: 产品环境支持 H2 数据库吗?
- 问: JBoss EAP 6.1.1 支持哪些工业标准?
- 问: 移植到这个版本时会遇到什么问题?
- 问: 本版本包含哪些组件且都是哪些版本?
- 问: 这个版本包含了哪些技术预览?
- 问: 在哪我可以找到支持合约的更多细节?
- 问: 我在这个文档里发现了错误,我应该怎样报告它?
问:
这个版本里修改了什么?
答:
JBoss EAP 6.1.1 包括了许多改进和修复。相关细节请参考 第 7 节 “本版本里的修改ScrLk”。
问:
在哪里可以找到余下的文档?
答:
你可以在这里找到完整的l JBoss EAP 6.1 文档:https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/。
问:
在哪可以找到升级说明?
答:
你可以在《安装指南》里找到升级说明。请参考文档套件:https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/。
问:
这个产品支持哪些操作系统、Java 虚拟机和数据库服务器?
答:
关于 JBoss EAP 6.1.1 已经测试和验证的操作系统、Java 虚拟机、数据库服务器和 JDBC 驱动组合的完整列表,请参考 https://access.redhat.com/site/articles/111663。
问:
产品环境支持 H2 数据库吗?
答:
否。附带的 H2 数据库只是用于评估、测试和演示用途。它不是产品环境所支持的配置。更多信息请参考 https://access.redhat.com/site/solutions/148633。
问:
JBoss EAP 6.1.1 支持哪些工业标准?
答:
关于它支持的规格和标准,请参考 https://access.redhat.com/site/articles/113373。
问:
移植到这个版本时会遇到什么问题?
答:
请阅读 第 7 节 “本版本里的修改ScrLk” 里关于本版本和以前版本的区别,这些区别可能导致在移植应用程序到本版本时出现问题。
问:
本版本包含哪些组件且都是哪些版本?
答:
关于包含的组件的完整列表,请参考 https://access.redhat.com/site/articles/112673。
问:
这个版本包含了哪些技术预览?
答:
JBoss EAP 6.1.1 包含了大量的技术预览功能。我们不对技术预览提供支持,它可能功能还不完整,其目的也不是用于产品环境。这些功能提供了对即将实现的产品创新的早期体验,让客户在开发过程中测试功能并提供反馈。
关于本版本里技术预览的完整列表,请参考 第 4 节 “仅作为技术预览提供的功能”。
问:
在哪我可以找到支持合约的更多细节?
答:
支持政策的细节位于下列 URL:
- 支持过程
- 产品支持覆盖范围
- 产品支持服务级别协议
- 开发人员支持覆盖范围
- 开发人员支持服务级别协议
- 产品更新和支持政策
- JBoss 最终用户许可证协议
问:
我在这个文档里发现了错误,我应该怎样报告它?
答:
要为本文档提供反馈,请在 https://bugzilla.redhat.com 上报告错误并指定产品
JBoss Enterprise Application Platform、版本 6.1.1 和组件 documentation-6.1.1_Release_Notes。
3. 新的功能 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
红帽 JBoss 企业级应用程序平台 6.1.1 里添加了下列新功能。
4. 仅作为技术预览提供的功能 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
我们已经知道下面的配置和功能有问题,它们只是作为技术预览出现。产品环境里不提供支持。
- 通过 JGroups 进行 HornetQ 发现
- HornetQ 现在提供了通过 UDP 和 JGroups 动态发现服务器连接设置。
- 使用 JBoss Web 服务的 WS-Trust/STS
- JBoss Web 服务现在从底层的 CXF 实现开放了 WS-Trust/STS 能力。
- JBoss CLI 的 Silent 模式
- 用于嵌入 CLI 的进程的 CommandContext API 里添加了一个 'Silent 模式'。
- 用 JBoss CLI 添加模块
- CLI 提供了一个新的命令来添加和删除模块。
- Syslog Handler 的配置
- EAP 现在为 syslog 协议提供了一个处理程序和配置。
- 新的 Hibernate 批加载算法
- Hibernate 已经在现有的算法里添加了两个批加载算法:Dynamic 和 Padded。
- Hibernate - 改进了用于 Non-Mutable 数据的对象引用的二级缓存
- Hibernate - 改进和扩展了对字节码的支持
- WS-AT/XA 桥
- WS-AT/XA 事务桥功能只是作为技术预览提供,产品环境里并不提供支持。
- 使用 Hibernate Validator 的 RestEasy 检验
- RestEasy 现在作为检验提供者以支持 JBoss EAP 6 附带的 Hibernate Validator。
- 已恢复的 ServiceMBean helper 类
- 我们已经引入了
org.jboss.as.system-jmx模块来恢复之前 JBoss EAP 6 版本里协助用户创建 MBean 的 helper 类。 - Multi-JSF
- 这个功能让用户可以用自己的 JSF 实现替换 JBoss EAP 里提供的 JSF 实现。
- 事务的 JDBC 库
- JBoss Transactions can now be configured to use a JDBC database as its store. This is enabled in the Transactions Subsystem by setting the following two attributes using the CLI tool.
- 设置
use-jdbc-store为true。/subsystem=transactions:write-attribute(name=use-jdbc-store, value=true)
/subsystem=transactions:write-attribute(name=use-jdbc-store, value=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 设置
jdbc-store-datasource为要使用的数据源的 JNDI 名称。/subsystem=transactions:write-attribute(name=jdbc-store-datasource, value=java:jboss/datasources/TransDS)
/subsystem=transactions:write-attribute(name=jdbc-store-datasource, value=java:jboss/datasources/TransDS)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
下面是完整的属性集合。Expand 表 1. 事务 JDBC 库的属性 Property 描述 use-jdbc-store设置为 "true" 以启用事务的 JDBC 存储。jdbc-store-datasource用于存储的 JDBC 数据源的 JNDI 名称。jdbc-action-store-drop-table在启动时删除或重新创建 action store 表。可选,默认为“false”。jdbc-action-store-table-prefixaction store 表名的前缀。可选。jdbc-communication-store-drop-table在启动时删除或重新创建 communication store 表。可选,默认为“false”。jdbc-communication-store-table-prefixcommunication store 表名的前缀。可选。jdbc-state-store-drop-table在启动时删除或重新创建 state store 表。可选,默认为“false”。jdbc-state-store-table-prefixstate store 表名的前缀。可选。
5. 不支持的功能 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
一些用于 JBoss EAP 5 的配置不再被支持。请复核这些配置。
- Infinispan API
- JBoss EAP 6 不支持直接使用 Infinispan API。Infinispan 用作 JBoss EAP 内部不同的群集技术的实现细节。API 的
module.xml错误地指出直接使用是可能的。在以后的版本里我们将纠正这个错误。直接使用 Infinispan API 要求订阅 JBoss Data Grid。 - JDK 6 的 IPv6 限制
- 下面的 IPv6 限制是 JDK6 造成的,它们并非 JBoss EAP 6 的缺陷。
- 在 Microsoft Windows Server 上,JDK 6 只有部分的 IPv6 实现。这个实现并不足以运行 JBoss EAP 6。Microsoft Windows Server 上完整的 IPv5 要求 JDK 7。
- 在红帽企业版 Linux 上,Oracle JDK 6 有一个程序错误,它导致在包含
zone-id的客户(建立连接的网点)上指定任何地址都会失败。要使用zone-id,要么升级至 JDK 7,要么使用IcedTea/OpenJDK 6。关于这个程序错误的更多信息,请参考 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6800096 and https://issues.jboss.org/browse/JBPAPP-8833。
- JTA 事务外部的 JPA 2.0 上下文传播
- 扩展持久性上下文(Extended Persistence Contexts,XPC)没有考虑事务的存在,XPC 总是会被传播。这个行为不符合 JPA 2.0 规格。我们已经修改了 XPC 的处理,当没有活动的事务时,XPC 的传播将被忽略,被调用的 bean 将有自己的持久性上下文而不是 XPC。如果你的应用程序期望扩展持久性上下文在 JTA 事务外部被传播,你需要考虑是否需要修改你的应用程序。关于升级应用程序的说明,请参考《JBoss EAP 6 移植指南》。JBoss EAP 5 提供了一个系统属性(
JBPAPP-923.alwaysPropagate)来启用这种行为。但 JBoss EAP 6 里没有这个系统属性。关于这个决定的更多信息,请参考 https://issues.jboss.org/browse/AS7-1663。 - PicketLink IDM
- JBoss EAP 6 不支持 PicketLink IDM (Identity Management,标识符管理)。
- PicketLink STS
- JBoss EAP 6 不支持PicketLink STS(Security Token Service,安全令牌服务)。
- Tanuki Service Wrapper
- JBoss EAP 6 不支持 Tanuki Service Wrapper。更多信息请参考 https://issues.jboss.org/browse/JBPAPP-8651。
- Microsoft SQL Server 2008 上的 XA 恢复
- XA 恢复不能用于 Microsoft SQL Server 2008 R1。这个功能可用于 Microsoft SQL Server 2008 R2 SP2。关于更多的信息,请访问下列 URL:
- MySQL 上的 XA 恢复
- MySQL JDBC 驱动没有正确实现 XA 恢复。关于更多的信息,请参考 https://issues.jboss.org/browse/JBPAPP-2576。
- JBoss OSGi
- JBoss OSGi 是一个 OSGi 规格的实现,它已经从技术预览降级为不受支持的产品。更多信息请参考 https://access.redhat.com/site/solutions/362814。
6. 组件 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
JBoss EAP 6 组件矩阵位于:https://access.redhat.com/knowledge/articles/112673。
7. 本版本里的修改ScrLk 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
7.1. 程序错误修复 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Apache 服务器(httpd)和连接器
- 987851 - 多个 OCSP 的问题
构建
- 983322 - org.apache.commons.configuration 缺失 org.apache.commons.beanutils 上的依赖关系
- 在以前的 JBoss EAP 6 版本里,org.apache.commons.configuration 模块没有声明和 org.apache.commons.beanutils 模块的依赖关系。当使用某些代码路径时,由于缺失了 BeanUtils 类,这导致 Configuration 类抛出 ClassNotFoundException。本版本在 org.apache.commons.configuration 里添加了这个依赖关系,所以代码不会再抛出 ClassNotFoundException 了。
- 979284 - EAP-6.1 Maven 资料库包含了错误的 jcip-annotations-1.0-redhat-3.pom
- 在之前的 JBoss EAP 6 版本里,一些用户遇到了 IVY 依赖关系管理者的解析问题。我们跟踪这个问题到了 /JBOSS_HOME/net/jcip/jcip-annotations/1.0-redhat-3/jcip-annotations-1.0-redhat-3.pom 文件里的一个不正确的 artifact 引用我们已经纠正了这个错误,受影响的依赖关系可以如期进行解析了。
CLI
- 961425 - EAP 6.1 CLI 脚本会截掉最后的换行符。
- Aesh (Another Extendable Shell) 组件里的一个错误导致 Aesh 没有正确解析数据块。如果数据的最后一个字节是一个换行符(且之前的数据包含换行符),它将截掉且不会被解析。这个问题会导致用户的自定义 CLI 脚本运行失败。Aesh 错误已被修复,用户脚本现在可以像之前的 JBoss EAP 6 版本一样正常运行了。
控制台
- 910718 - 控制台应该正确处理丢失的连接
- 红帽 JBoss EAP 6 里使用的 Web 管理界面是一个 Google Web Toolkit (GWT) 应用程序,因此它使用 GWT 延迟绑定根据需要加载程序组件。在某些情况下,延迟加载会失败并挂起整个应用程序而不会显示任何和其原因相关的信息。在这个版本里,对于延迟绑定,我们引入了正确的错误处理。现在,如果加载应用程序组件出现问题,其抛出的异常将被优雅地处理而 web 控制台则仍可被访问。
- 908664 - Failover Shutdown 属性对于桥已(Bridge)停用
- 在以前的 JBoss EAP 6 版本里,设置 HornetQ 子系统的 FAILOVER_ON_SERVER_SHUTDOWN 属性可以通过控制台完成,即使这个属性已标记为废弃,试图设置它会被忽略。本版本已经从控制台删除了这个选项。
域管理
- 960497 - 'whoami' 操作意外地要求域范围的配置锁
- 在以前的 JBoss EAP 6 版本里,
whoami操作的元数据没有标记为只读。这意味着执行这个操作将要求域范围的写锁。这可能影响其他任务的执行,在某些情况下会导致Out of Memory错误。本版本通过设置whoami元数据上的 read-only 标记纠正了这个行为。这使得其他操作可以正常进行了。 - 968815 - 无法从 CLI 删除 jgroups 子系统,提示 "JBAS014807: Management resource ... not found"
- 在以前的 JBoss EAP 6 版本里,JGroupsSubsystemRemove 里包含的路径未使用定义服务器配置集的元素进行格式化。在独立服务器环境里,这不会有什么问题。但在域模式下,当使用下列命令来删除 JGroups 子系统时会出现错误:[domain@localhost:9999 /] /profile=test/subsystem=jgroups:remove()这个命令会产生下列错误: "JBAS014807: Management resource [(\"subsystem\" ⇒ \"jgroups\")] not found"本版本包含了 PathAddress 里缺失的 profile 元素,用户现在可以使用 CLI 命令来删除 JGroups 子系统了。
EE
- 978603 - jboss-invocation 代理里的可能出现的冲突导致了 initializer 里的 NPE
- 在以前的 JBoss EAP 6 版本里,jboss-invocation 使用一个 ThreadLocal 传递信息给代理的静态初始器。由此,如果其他线程试图在定义了代理后立即使用代理,其时间窗口会很短,这个线程将调用静态初始器,且初始器期待的 ThreadLocal 数据就不会是最新的,从而导致了 NullPointerException。本版本已经解决了这个问题,NPE 不会再出现了。
EJB
- 956227 - java.lang.ArrayIndexOutOfBoundsException
- 在以前的 JBoss EAP 6 里,调用远程服务器上的 EJB 而节点标识符超过 9 个字符时会出现问题。这会抛出
ArrayIndexOutOfBoundsException。我们在 EJB 客户库里修复了这个问题,它在解析节点标识符时可以正确地构建 XID 了。由此,对远程服务器上的 EJB 进行调用不会由于节点标识符过长而导致异常抛出了。 - 910193 - EJB Timer 服务为所有不带有定时器的 EJB 创建了空的目录
- 在以前的 JBoss EAP 6 版本里,我们发现系统为每个有资格带有 Timer 服务的 Bean 都创建了 EJB Timer 服务,而不是仅限于实际上在使用定时器的 Bean。由此,这个服务在启动时将创建不必要的目录来存储定时器数据。这个问题已得到了解决,Timer 服务现在只为具有 timeout 或 schedule 方法的 bean 启动。其他 EJB 使用非功能性的 Timer 服务,仍可以在 JNDI(按照 Java EE 规格)里进行查找,但不会调度定时器(因为 EJB 没有 timeout 方法)。
- 909804 - EJB 未接收到客户本地传输的上下文数据
- 在以前的 JBoss EAP 6 版本里,当调用部署在和调用者相同的服务器实例上的 Bean 的远程 EJB 接口时,"LocalEJBReceiver" 被用来处理这个调用。如果 EJB 客户拦截器用在这些实例里以传递某些调用数据,这些数据不会被传递到目标 EJB 或适用于这个 EJB 的任何拦截器(服务器端)。本版本包含了一个补丁,它解决了这个问题,所有数据都会正确地进行传递。
- 950864 - 如果删除 SFSB,Sporadiacal 会抛出 NullPointerException。
- 983324 - 在启动时 在EJBClientContext 里看到 ConcurrentModificationException
- 981174 - 使用 JTS 事务时抛出 javax.transaction.xa.XAException
- 959236 - 对标记为 @Clustered 的 SLSB 的第一次远程调用会挂起
- 这是 JBoss EAP 6 里的一个问题,当进行 EJB 调用而和群集服务器交互时,客户可能会挂起。服务器在构造
EJBClientContext时可能出现这个问题,因为它会在一个线程里发送群集拓扑给客户,而另一个线程则继续构造EJBClientContext。这样可能导致死锁和客户挂起,而在客户被终止后,服务器的关闭也会挂起。我们在EJBClientContext库里通过确保内部实现代码的路径不造成这样的死锁,从而解决了这个问题。
Hibernate
- 981720 - 升级至 Hibernate 4.2.0.SP1
HornetQ
- 959789 - HQ 核心桥没有失效切换
- 在之前的 JBoss EAP 6 版本里,当主HornetQ 服务器不可用时,HornetQ 核心桥服务器无法正确地失效切换至备份的 HornetQ 服务器。因为 HornetQ 核心桥服务器会试图连接其他服务器节点而不是正确的备份服务器,从而出现了这个问题。本版本里已修复了这个问题,当主HornetQ 服务器不可用时,现在 HornetQ 核心桥服务器总是试图重新连接备份服务器。
- 963215 - JMS 桥没有进行失效切换
- 986362 - 由于 ironjacamar 调用了 HornetQResourceAdapter 里不被支持的方法,Inflow XA 事务恢复失败。
- JBoss EAP 6 里存在一个问题,在 HornetQ 事务的恢复过程中,虽然事务可以正确完成,但事务管理者仍会输出错误信息到日志里。因为 JCA 适配器(IronJacamar) 将向 MDB 资源适配器请求 Inflow XID,从而导致了这个问题。HornetQ 会在事务管理者里注册它自己,由此 HornetQ 会抛出一个关于扰乱 IronJacamar 恢复机制的异常。由此事务管理者上会产生可忽略的警告信息,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过不要返回空的队列给 IronJacamar 而不是抛出Unsupported异常可以解决这个问题。现在,事务将可以完成事务管理者的恢复过程而不会产生可忽略的警告信息。 - 991049 - 当发生 TX 恢复时使用了不正确的日志级别
安装程序
- 977736 - 未安装 Appclient 时,其启动脚本和配置文件也不应该被安装。
- When using the installer for JBoss EAP 6, if the
AppClient+ check box on the Pack Installation screen was cleared, AppClient files would still be installed.This issue with the installer has been fixed in this release of JBoss EAP 6 so that AppClient files will only be installed if the
AppClient+ check box is selected. - 977717 - 对于某些语言,使用 Alt 的快捷键无法工作。
- 以前的 JBoss EAP 6 里有一个问题,对于某些语言,使用 Alt 的快捷键无法工作。这是因为一些按钮标签的起始字符(快捷键)和其他按钮的冲突。For example: The Spanish button for
Next is
Siguiente , and
Cancel is
Salir . Both Spanish buttons would be displayed with an underlined S, indicating a keyboard combination of
Alt+S . However that keyboard combination would only the trigger
Salir ( Cancel ) button, and there would be no keyboard combination that would trigger the
Siguiente ( Next) button.在这个版本的 JBoss EAP 6 里,安装程序的每个步骤里的按钮都有唯一的下划线字母,指示不同的快捷键。 - 977822 - 在 HP-UX 上没有安装 natives 的选项
- 当在带有 64 位 JVM 的 Hewlett-Packard HP-UX 上运行基于文本的安装程序时,native 组件未作为安装选项提供。其原因是安装程序的其中一个配置文件里缺失了对 HP-UX 64 位 native 组件的引用。这个问题已被解决,不管是使用 32 还是 64 位的 JVM,基于文本的安装程序现在都提供了 native 组件的安装选项。
JCA
- 976294 - 具有使用原始类型的属性的 ResourceAdaptor (rar) 会部署失败
- 在以前的 JBoss EAP 6 里,使用具有以原始数据类型为参数的属性的资源适配器会出现问题。这个问题会导致资源适配器部署失败,日志文件里包含和未设置的资源适配器的属性相关的信息。本版本里通过使用数据类型内省(introspection)来检查属性(包括原始数据类型)解决了这个问题。以原始数据类型为参数的资源适配器的部署不会再失败了。
- 913804 - ManagedConnectionFactory 的 LogWriter 未输出任何信息到标准输出里
- 在以前的 JBoss EAP 6 版本里,通过
ManagedConnectionFactory的setLogWriter方法传递的PrintWriter对象没有输出任何日志消息到标准输出里(stdout)。这是因为AbstractResourceAdapterDeploymentService类里的PrintWriter没有设置为 autoflush,本版本已修复了这个问题。现在ManagedConnectionFactory的setLogWriter方法设置的PrintWriter对象的输出信息已经出现在标准输出里了。 - 980920 - ResourceAdapter 实例没有注册 inflow 崩溃恢复
- 在以前的 JBoss EAP 6 版本里,资源适配器没有注册流入崩溃恢复(Inflow Crash Recovery)。因此,流入资源适配器上不会执行 XA 恢复,且在服务器崩溃后可能导致不一致的状态。在这个 JBoss EAP 6 版本里,流入资源适配器(Inflow Resource Adapter)在激活时会注册崩溃恢复。因此,在服务器崩溃时流入资源适配器会保持一致的状态。
日志
- 969530 - 当 JBoss LogManager 在日志子系统所期望的之前初始化时抛出了ClassCastException。
- 如果将 JBoss LogManager 添加到了引导 classpath 里,如自定义的 Java 代理(如 Introscope 或 JMX 代理)的 classpath,JBoss LogManager 将使用默认的配置而不是日志子系统的配置进行引导。因为日志子系统会假设它自己的配置将被使用,所以这会导致 JBoss EAP 6 启动失败,并显示下列错误:
ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 5) JBAS014612: Operation ("add") failed - address: ([ ("subsystem" => "logging"), ("console-handler" => "CONSOLE") ]): java.lang.ClassCastException: org.jboss.logmanager.PropertyConfigurator cannot be cast to org.jboss.as.logging.logmanager.ConfigurationPersistence ...ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 5) JBAS014612: Operation ("add") failed - address: ([ ("subsystem" => "logging"), ("console-handler" => "CONSOLE") ]): java.lang.ClassCastException: org.jboss.logmanager.PropertyConfigurator cannot be cast to org.jboss.as.logging.logmanager.ConfigurationPersistence ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个 JBoss EAP 6 版本里已经修复了这个问题,所以日志子系统不会再假设使用自己的配置。如果没有使用日志子系统自己的配置,系统将使用原来的配置(通常是默认的配置)。由此,现在你可以使用自定义的 Java 代理而不影响 JBoss LogManager 的初始配置。 - 971190 - log4j appender 强制 appender/handler 在重启时进行初始化
- 在前一个 JBoss EAP 6 版本里,当添加一个自定义的 Apache log4j appender 时,手动配置的 appender 的类名不正确地和引导时包含的类名进行了比较。这个问题导致自定义的处理程序在 JBoss EAP 6 实例的每次重启时都进行了重新配置。这个问题可能已经影响了使用设置为 append 的
FileAppender的配置,从而导致覆盖了日志文件。这个问题通过将 log4j appender 包裹在名为org.jboss.as.logging.logmanager.Log4jAppenderHandler的java.util.logging.Handler里,并用处理程序里的 appender 的类名来检查其类名得到了解决。由此,如果检查结果匹配,自定义的 log4j appender 处理程序在 JBoss EAP 6 实例的每次重启过程中都不会被重新配置。 - 975557 - Syslog Handler: 对于多字节字符的消息长度计算有误
- 在以前的 JBoss EAP 6 里存在一个问题,syslog handler 会错误地以字符数而不是字节数计算消息长度。如果 syslog 消息里包含多字节的字符,如带有元音的字符,无效的消息长度将被发送。因此,一些日志消息包含了无效或缺失的字符。在这个 JBoss EAP 6 版本里已经更新了 syslog handler,它现在可以正确计算消息长度了。syslog handler 不会再将无效或缺失的字符计算为错误的消息长度。
- 975559 - 如果调用了 prepare 语句,处理程序回滚将得到 null 实例引用。
- 在之前的 JBoss EAP 6 版本里,如果 appender 的名称保持不变,删除和重新添加 Apache log4j appender 的复合操作的回滚将会失败。这是因为对之前 log4j appender 的引用已经被删除了。解决方法是不要检验 log4j appender 的引用是否存在,因为之后它可能会被创建。由此,当删除和重新添加 Apache log4j appender 的复合操作回滚时不会再显示错误了。
- 981544 - PeriodicRotatingFileHandler 没有在 12AM 而在 12PM 轮询了文件
- 在以前的 JBoss EAP 6 版本里找到一个程序错误,它导致 LogManager 没有在重启后轮询日志文件。如果服务器在 PM 时段(下午)重启,就会出现这个错误。它是由于 LogManager 未正确处理半天时段而引起的。 LogManager 的更新版本已经修复了这个错误。
- 975085 - 无法删除自定义的日志处理程序
- 在之前的 JBoss EAP 6 版本里,自定义日志处理程序(如 Apache log4j)的删除过程中,试图在实例被删除后执行 post-configuration 方法。这会导致删除自定义日志处理程序失败。这个版本的 JBoss EAP 6 已经修改了日志子系统已防止这个问题的发生,现在可以可以删除了自定义的日志处理程序了。
- 973450 - 文件属性总是替代了文件,即使其值是相等的。
- 以前的 JBoss EAP 6 里有一个问题,在引导期间由文件日志处理程序记录的日志事件会被覆盖。如果未将文件日志处理程序设置为 append 模式,这个问题就会出现。这是因为在和引导期间使用的值相比较时,日志子系统没有正确地检查文件日志处理程序的
FILE属性。在这个 JBoss EAP 6 版本里已经更新了日志子系统来修复这个问题。对于没有设置为 append 状态的文件日志处理程序,它可以正确根据引导时使用的值来检查FILE属性,所以引导时记录的事件不会再被覆盖了。
PicketLink
- 956782 - 使用一个 CSS 文件的 IDP "hosted" 页面会导致 java.lang.IllegalStateException: getOutputStream() has already been called for this response
安全性
- 958252 - 在启用了群集 SSO 时, HttpServletRequest.logout() 会使会话失效。
- 在以前的 JBoss EAP 6 版本里使用 SSO 时,对 HttpServletRequest.logout() 的调用会导致会话失效。期望的行为应该是会话登出,但不会失效。这个版本已经添加了
org.apache.catalina.authenticator.AuthenticatorBase.UNREGISTER_SSO_ON_LOGOUT系统属性,它允许会话登出而不是失效。SSO 登出行为可以使用这个属性在新和旧方法间切换。当UNREGISTER_SSO_ON_LOGOUT被设置为false(默认设置)时,会话登出时不会失效。如果UNREGISTER_SSO_ON_LOGOUT被设置为true,原始的会话失效登出行为将被使用。
事务管理者(Transaction Manager)
- 968125 - FileSystemStore.openAndLock 里的性能问题
Web
- 900886 - EAP6 里缺失了 org.jboss.web.tomcat.security.GenericHeaderAuthenticator
- 最近的 JBoss EAP 6 版本没有包含基于头部信息的验证工具。本版本则引入了
org.jboss.as.web.security.GenericHeaderAuthenticator来解决这个问题。 - 922180 - ContextConfig.authenticatorConfig() 里的 Race 条件
- 以前的 JBoss EAP 6 版本包含一个可能偶尔造成加载使用 JBossWeb 验证的应用程序失败的潜在竞争条件。我们跟踪这个问题到了
org.apache.catalina.startup.ContextConfig以及 authenticator 属性的实例化。我们发现某个线程可能在实例化线程完成加载 authenticator 属性前就试图使用它们。本版本使用了静态的初始器以避免这种竞争,现在应用程序已可以如期加载了。
doc-Administration_and_Configuration_Guide
- 988827 - 16.5.3. 在缺失 RPM 时如何安装 mod_cluster
jbossas
- 963298 - 模块服务依赖关系没有考虑临时的依赖关系
- JBoss EAP 6 里存在的一个问题是,依赖关系图表Windows 服务器上的独立配置可能遇到性能降低的问题。这会导致一个模块试图在其所有依赖关系启动前启动,并导致应用程序部署失败且抛出下列异常:
Caused by: org.jboss.modules.ModuleLoadException: JBAS018760: Timeout waiting for module service: deployment.example.ear.example-ejb.jar:main ...
Caused by: org.jboss.modules.ModuleLoadException: JBAS018760: Timeout waiting for module service: deployment.example.ear.example-ejb.jar:main ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为了修复这个问题,我们添加了一个多阶段解决过程来确保所有依赖的模块规格服务在模块服务启动之前都已启动。由此,在部署的Class-Path里指定临时依赖关系,部署应该不会再失败了。
7.2. 增强 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
构建 Maven 资料库
- 987273 - 未指定自定义用法的 BOMs
- 作为使红帽JBoss EAP 的开发更为合理化的持续努力的一部分,这个版本包含了新的 Bill of Materials (BOM) 文件以用于可下载的 JBoss EAP 6 Maven 资料库。关于新的 BOM 文件以及下载资料库的详情,请参考《JBoss EAP 开发指南》。
7.3. 已知的问题 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
群集
- 959753 - DIST SYNC: 在节点重起后 jboss.infinispan.web.default-host/XY 服务不会启动,显示 "Initial state transfer timed out"。
- 900483 - 在节点关闭时使用 DIST SYNC 时接收到过时的会话数据。
- 在测试过程中,某些用例显示当关闭节点且使用
DIST SYNC或DIST ASYNC缓存模式时接收到了过时的会话数据。我们仍在调查这个问题。 - 900707 - 当字符串 "localhost" 用作默认值的一部分时,属性替换出现问题。
- 当字符串
localhost用作 JGroups 子系统配置里默认值的一部分时,属性替换出现问题。属性替换是为 JBoss EAP 6 子系统提供的一个功能。然而,并非所有的子系统都启用了它,一些子系统(如 JGroups)进行了它们自己的一些替换。然而,这个行为不是标准化的,和受支持的子系统属性不同。红帽建议你不要使用 JGroups 子系统的属性替换,直至这个问题得到解决。 - 900378 - 带有 SET 复制触发器的 CDI bean 没有进行复制
- 由于 Weld 组件里的一个程序错误,
setAttribute方法没有被正确调用。这导致带有SET复制触发器的 CDI Bean 不能进行复制。绕开问题的办法是使用SET_AND_NON_PRIMITIVE_GET触发器。这个问题将在以后的版本里得到解决。
发布
- 965315 - 用户脚本的 jboss-ec2-eap 超时没有正常工作
- JBoss EAP 的 AMI 映像上的用户脚本里的超时功能无法工作。如果用户脚本里的某个命令挂起了,这会阻止虚拟机正常地引导。超时功能的目的是允许虚拟机继续引导,而不管挂起的用户脚本命令,并允许在用户脚本上进行诊断。引起这个问题的原因是 Bash shell 不支持非交互式 shell 里的作业控制,而这个功能是超时功能所要求的。我们目前还没有解决办法,但希望在以后的版本里能进行解决。
EJB
- 900480 - CLONE - 当群集成员资格改变时,远程 EJB 调用里的响应极其地慢。
- 服务器关闭或崩溃时,成员资格的改变可能需要一分钟才能完成。我们正在调查这个问题。
- 923836 - remote:// 协议无法在 IBM JDK 里的 SLL 上运行
- 这是 JBoss EAP 6 里存在的一个已知问题,IBM JDK 上的远程命名查找会间歇性地失败,并抛出下列异常:
org.jboss.remoting3.NotOpenException: Endpoint is not open.
org.jboss.remoting3.NotOpenException: Endpoint is not open.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当客户使用 IBM JDK 时会出现这个问题。服务器使用 IBM JDK 而客户使用其他 JDK 时,这个问题就不会出现。我们正在调查和解决这个问题 - 962734 - EJB 调用期间的 IOException 导致挂起
- 如果服务器端的 EJB 协议接收器从客户端接收了无效的消息头部,类似于下面的信息将被登记,而客户端将挂起。
15:06:46,092 WARN [org.jboss.as.ejb3] (Remoting "dhcp-4-126" task-4) JBAS014254: Received unsupported message header 0xffffffff on channel Channel ID 0c51fad8 (inbound) of Remoting connection 4589adff to /127.0.0.1:33329
15:06:46,092 WARN [org.jboss.as.ejb3] (Remoting "dhcp-4-126" task-4) JBAS014254: Received unsupported message header 0xffffffff on channel Channel ID 0c51fad8 (inbound) of Remoting connection 4589adff to /127.0.0.1:33329Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当无效的消息头部被接收并记录时,EJB 协议接收器不会在频道里重新注册自己,所以它不会再响应以后的消息。而客户端将等待根本不会被发送的响应,因为原始消息并不会被服务器处理。这个问题有一个部分的解决办法。在创建 EJB 客户上下文时设置 invocation.timeout 属性将阻止客户无限期挂起,然而它不会让客户继续 EJB 调用。
Hibernate
- 900321 - 当获取使用 NaturalIdLoadAccess 进行 naturalIdQuery 的结果时,缓存正确的 natural-id 值时出现的 HHH-7287 问题。
- 在从非事务场景更新了
natural-id值后,从二级缓存(L2)加载实体时 Hibernate 接口NaturalIdLoadAccess行为不一致。Hibernate 目前不支持对数据库的事务性和非事务性混合访问时具有自然标识符的实体的 L2 缓存。
HornetQ
- 959616 - 激活时备份服务器的干净关闭过程中出现死锁
- 配置为 HornetQ 备份服务器的 JBoss EAP 6 服务器将在下列情况下关闭失败:
- Message-Driven Beans 部署在本地服务器上,而且
- 关闭命令时在服务器的激活过程中执行的。
在这个情况下,关闭服务器将导致死锁,从而阻止了关闭过程的完成。一旦死锁,服务器必须强制性地进行终止。在红帽企业版 Linux 6 里,这可用kill -9命令来完成。要避免这个情况,请只在激活之前或之后、也不要在日志加载过程中关闭服务器。 - 899966 - IPv6 link-local 地址上的 Netty 有问题
- 由于一个 JDK 错误,如果使用了链接本地地址,zone ID 将用来区分所选的接口。这个问题不会影响全局地址。Netty 组件以后的版本里将包含一个解决的方法。
- 912653 - Clone: 远程 JNDI 无法和 HornetQ-only JMS 桥一起使用
对 IPv6 的支持
JCA
- 952277 - 禁用 xa-data-source causes that data-source loses its attribute enabled set to false and after reload it becomes enabled
- 这是 JBoss EAP 6 里存在的一个已知问题,当 JBoss EAP 6 服务器实例重启时,禁用的 non-XA 数据源会被不正确地启用。当禁用的 non-XA 和 XA 数据源存在于相同的服务器上,且 XA 数据源在 JBoss EAP 6 服务器重启前被禁用时,就会出现这个问题,我们正在调查这个问题的原因。
mod_cluster
- 958991 - 当使用 ProxyPass / balancer://bal 和 CreateBalancers 1 时的 mod_cluster core 问题
- 在 /conf.d/mod_cluster.conf 里设置了
CreateBalancers 1,但没有设置stickysession=JSESSIONID|jsessionid的JBoss EAP 6 用户将遇到下列的 segmentation 故障:[notice] child pid 7787 exit signal Segmentation fault (11)
[notice] child pid 7787 exit signal Segmentation fault (11)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加stickysession元素到 CreateBalancers 配置将解决这个问题。例如:CreateBalancers 1 ProxyPass / balancer://qacluster stickysession=JSESSIONID|jsessionid
CreateBalancers 1 ProxyPass / balancer://qacluster stickysession=JSESSIONID|jsessionidCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 963720 - mod_cluster: 在 Solaris 上使用 IPv6 的代理 DNS 查找失败。
- Java 返回带有类似于
2001:db8:0:f101::1%2的 zone 值的 IPv6。随后,当返回节点地址时,modcluster子系统发送 Java 里的 IPv6 信息。在 Solaris 里,apr_sockaddr_info_get()不支持返回的格式且无法将 IP 解析为主机名。因此,dhttpd mod_cluster 无法如预期地使用 IPv6 节点地址。绕开这个问题的办法是使用 web 子系统连接器里的address="hostname"。 - 960243 - ProxyPass 集成里的回归问题
- 由于 JBoss EAP 6 里包含了早期版本的
mod_proxy_cluster.so,访问目录(如/app/clusterbench/requestinfo/)会返回 HTTP 503 错误。这是 JBoss EAP 6.1.1 里存在的一个已知问题,目前还没有解决办法。 - 901227 - web 控制台里的 node-timeout、worker-timeout、flush-wait 和 ttl mod_cluster 属性
- 这是 JBoss EAP 6 里存在的一个已知问题,基于 Web 的管理控制台阻止用户查看或设置下列
mod_cluster属性值为-1:node-timeoutworker-timeoutflush-waitttl
如果已经设置了-1值,管理控制台会错误地显示属性的值为0。当试图用管理控制台将属性值设为-1,管理控制台显示警告:Invalid numeric value。绕开的方法是使用管理 CLI 来将受影响的属性设置为-1。我们正在调查这个问题的原因。 - 900801 - 通过 CLI 添加 modcluster 失败。
- JBoss EAP 6 里存在一个问题,你无法通过管理 CLI 的单个命令来添加
mod_cluster子系统,也无法用单独执行的命令序列来添加。/subsystem=modcluster:add()命令要求将连接器作为相同命令集的一部分来添加,但是/subsystem=modcluster:add()命令自身并不允许配置连接器。试图通过管理 CLI 来添加mod_cluster子系统会失败并显示错误:JBAS014746: connector may not be null。要绕开这个问题,请在 batch 模式下执行add()以及连接器配置命令。例如:[standalone@localhost:9999 /] batch [standalone@localhost:9999 / #] /subsystem=modcluster:add [standalone@localhost:9999 / #] /subsystem=modcluster/mod-cluster-config=configuration:add(connector=ajp,advertise-socket=modcluster) [standalone@localhost:9999 / #] run-batch
[standalone@localhost:9999 /] batch [standalone@localhost:9999 / #] /subsystem=modcluster:add [standalone@localhost:9999 / #] /subsystem=modcluster/mod-cluster-config=configuration:add(connector=ajp,advertise-socket=modcluster) [standalone@localhost:9999 / #] run-batchCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以后的版本里将修复这个问题。 - 980246 - mod_cluster-manager 可能分断单个虚拟机的别名,导致页面乱码。
事务管理者(Transaction Manager)
- 988724 - 针对 PostgreSQL 的崩溃恢复在回滚时抛出异常
- 我们已确定 PostgreSQL JDBC 驱动在某些恢复场景里会返回错误的代码。在事务的 prepare 阶段,当运行 JTS 的事务管理者在崩溃后执行恢复时会出现这个问题。这导致了在服务器日志里写入
XAException消息。这个问题是对不存在的事务Xid进行再次调用时引起的。然而,按照 JTS 规格,这种行为是被定义为有效的。我们已经确认了这是 PostreSQL JDBC 驱动内部的错误行为,驱动问题及状态可以在这个页面进行监控:https://github.com/pgjdbc/pgjdbc/issues/78。
其他问题
- 900047 - Linux/Unix 里 SystemMemoryUsageLoadMetric 不正确
- 在 Linux 或 UNIX 系统上
SystemMemoryUsageLoadMetric没有显示有用的信息。对于这些系统,HeapMemoryUsageLoadMetric提供了更多的有用信息。解决方案时修改SystemMemoryUsageLoadMetric的算法从used数字减去buffers/cache值。实现这一点的最好方法是进行调查研究。 - 901231 - 在 IBM JDK 上使用 finalize() 需要格外小心
- 当运行在 IBM JDK 6 和 7 上时,JBoss EAP 6 可能遇到间歇性的故障。这是因为 IBM 的垃圾回收器比其他 JVM 更为积极。有时候这会导致在没有预料的情况下内存没有回收,而这不会发生在其他 JVM 上。在这个问题得到解决之前,红帽推荐你不要使用 IBM JDK 6 或 7 来运行 JBoss EAP 6。
- 901210 - 清理 deploy 目录 - AS7-6031
RESTEasy
- 958896 - RESTEasy: 响应里无效的 Content-Type - 当在请求头部里指定无效的接受头部时出现错误的行为
- JBoss EAP 6 的 RESTEasy 子系统里存在一个问题,当在接收的 HTTP 请求里出现无效的接受头部信息时,错误的
HTTP 200将被发送。当提供了无效的接受头部信息时,正确的响应应该是HTTP 500。我们正在调查这个问题。
脚本和命令
- 990227 - jboss-cli.sh 在无人参与的模式下运行(如脚本)时会挂起
- 如果
jboss-cli.sh脚本被另外一个脚本调用,而验证细节(用户名和/或密码)并未以参数提供,那么调用脚本将会挂起。这是一个已知的问题,预料将在以后的版本里得到解决。请确保从其他脚本进行调用时提供所有要求的参数。 - 916960 - 如果括号出现在 EAP 路径里,Standalone.bat 将无法工作。
- 这个 JBoss EAP 6 里存在一个关于 Windows Installer 和安装到包含括号的目录的已知问题。例如,目录为:
C: Program Files (x86)\jboss-eap-6.1\。在这些情况下standalone.bat可能会运行失败并输出信息:\jboss-eap-6.1 was unexpected at this time.这是因为 DOS 处理器拦截了 "echoed" JBoss 路径名里的结尾括号,将其当作前面的if语句的结尾部分。要解决这个问题:- 在编辑器里打开
JBOSS_HOME\bin\standalone.bat。 - 找到下列行:
echo JBOSS_HOME: %JBOSS_HOME%
echo JBOSS_HOME: %JBOSS_HOME%Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在
%JBOSS_HOME%变量两侧添加双引号:echo JBOSS_HOME: "%JBOSS_HOME%"
echo JBOSS_HOME: "%JBOSS_HOME%"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
这将确保正确地解析括号,从而成功地执行standalone.bat。 - 998913 - standalone.bat 仍会设置 -XX:+TieredCompilation JVM 选项
- 这是 JBoss EAP 6 里存在的一个已知问题,Windows 服务器上的独立配置可能遇到性能降低的问题。这是因为
standalone.bat里的-XX:+TieredCompilationJVM 选项的设置引起的。要绕开这个问题,你可以从standalone.bat删除下列设置-XX:+TieredCompilationJVM 选项的代码:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 我们预计在 JBoss EAP 6 的后续版本里会修复这个问题。 - 956281 - 在 32 位 JVM 上启动 EAP 6.1 可能导致启动 JVM 失败
- 在 Windows 8 32 位的虚拟机里,默认的最大 perm gen 空间设置导致了 JVM 无法创建,从而阻止了服务器的启动。要解决这个问题,请从 JVM 的启动参数里删除 -XX:MaxPermSize=256m。然后 JVM 就可以被创建,而服务器就可以启动了。
安全性
- 920160 - 对用自定义授权模块保护的 web 应用程序的未授权访问导致了 HTTP 200 (OK) 而不是 HTTP 403 (Forbidden)。
- 当在使用自定义授权模块的 web 应用程序上尝试未授权的 HTTP 请求时,未授权的请求会导致空的
HTTP 200 (OK)响应。对于未授权的 HTTP 请求,正确的响应该是HTTP 403 (Forbidden)。我们正在调查这个问题。
Web 服务
- 900634 - 当请求响应消息时,JBossWS-CXF 未发送 fault 消息给 FaultTo 端点。
- 如果 WS-Addressing 的
FaultTo元素被设置未一个 WS 客户,WS 服务器不会发送 fault 消息给FaultTo目的地。然而,如果设置了ReplyTo元素,WS 服务器就不会发送响应到ResponseTo目的地。原因仍在调查之中。
A. 修订历史 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
| 修订历史 | |||
|---|---|---|---|
| 修订 1.1-6 | Tue Feb 11 2014 | ||
| |||
| 修订 1.1-5.2 | Fri Nov 1 2013 | ||
| |||
| 修订 1.1-5 | Wed Sep 4 2013 | ||
| |||
法律通告 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Copyright © 2013 Red Hat, Inc..
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.