7.3. 已知问题

CLI

1031173 - 当 EAP 被安装到含有空格的目录里,jboss-cli.bat 无法运行。

如果 JBoss EAP 安装在包含空格或其他特殊字符(如路径里有括号)的目录里,jboss-cli 工具在 Microsoft Windows 服务器操作系统里无法成功启动。如果 JBoss EAP 安装在 C:\JBoss EAP\jboss-eap-6.2 下,下列错误信息将会显示:
Error: Could not find or load main class EAP\jboss-eap-6.2\bin\jboss-cli-logging.properties

绕开的办法是编辑 jboss-cli.bat 文件,将 jboss-cli.bat 的第 62 行里的第一个“"”字符从 JAVA_OPTS 的开头移至最后,类似于:
set JAVA_OPTS="%JAVA_OPTS% -Djboss.modules.system.pkgs=com.sun.java.swing -Dlogging.configuration=file:%JBOSS_HOME%\bin\jboss-cli-logging.properties"

当然,将 JBoss EAP 6 安装在不包含空格或括号的目录里也可以避免这种错误。

以后的版本里将修复这个问题。
1019232 - 在 data-source 节点使用 tab complete 时 jboss-cli.sh 抛出 NullPointerException

在某些情况下,当用户试图使用 tab completion 功能时,jboss-cli 工具将抛出异常并退出。其中一种情况是当使用 built-in data-source 操作 data-source --name=ExampleDS a 然后按 TAB 键。这是由于在命令解析器里缺乏对这些情况的处理程序,我们在以后的版本里会解决这个问题。
988283 - CLI GUI -『write attribute』对话框里的字符串值,应该用双引号括起来。

试图用 jboss-cli 工具设置包含属性的值将只会保存字符 $ 而不是属性,除非整个值用双引号括起来。 这是因为 CLI 命令行解析器错误地解析了任何 ${X} 表达式为 $,除非整个表达式是用双引号括起来的。

解决办法是用双引号将表达式括起来,例如:
[standalone@localhost:9999 subsystem=webservices] :write-attribute(name=wsdl-host, value="${jboss.bind.address:127.0.0.1}")

请注意,jboss-cli 在 GUI 模式下生成的命令不会自动包含引号。

群集

900378 - 带有 SET 复制触发器的 CDI bean 没有复制

由于 Weld 组件里的一个程序错误,setAttribute 方法没有被正确调用。这导致带有 SET 复制触发器的 CDI Bean 不能进行复制。绕开问题的办法是使用 SET_AND_NON_PRIMITIVE_GET 触发器。这个问题将在以后的版本里得到解决。
900483 - 在节点关闭时使用 DIST SYNC 会接收到过时的会话数据

在测试过程中,某些用例显示当关闭节点且使用 DIST SYNCDIST ASYNC 缓存模式时接收到了过时的会话数据。我们仍在调查这个问题。

文档

1026813 - 描述 servlet 的 init 方法抛出异常时的行为的实现细节

Servlet 规格没有定义当 servlets 在其 init() 方法或 ServletContextListener.contextInitialized 抛出异常时服务器的行为,而《JBoss EAP 开发人员指南》也没有提供关于这种情况下 JBoss EAP 6 的行为的解释。

JBoss EAP 6 在这些情况下的行为可总结如下:
  • 如果 servlet init() 方法抛出异常,应用程序将仍可以部署但 servlet 不可用。
  • 如果 ServletContextListener.contextInitialized 抛出异常,部署将会失败。

以后的《JBoss EAP 开发人员指南》将提供更多细节。
1021607 - RBAC: 解释两种 non-addressability

有些资源对于作用域为 server-group 和 host 的角色是不可寻址的,这是为了提供管理模型的简化视图来提高可用性。这和处于保护敏感数据的不可寻址的资源是不一样的。

对于作用域为 server-group 的的角色,这意味着如果管理模型的 `profile`, `socket binding group`, `deployment`, `deployment override`, `server group`, `server config` 和 `server` 部分对于为角色指定的服务器组不相关,它们就不可见。

对于作用域为主机的角色,这表示管理模型的 ‘/host=*’ 部分里的资源如果和指定的服务器组不相关联,它们会不可见。

然而,在某些情况下,这种简化的视图可以隐藏超出用户管理的作用域的信息,这可以为用户提供指导。其中一个例子是 http://bugzilla.redhat.com/show_bug.cgi?id=1015524

在以后的版本里,这些不可寻址的资源中的一些可能会改成可寻址但不可读的。这不会影响到服务器的安全性,因为出于安全原因,它们是不可寻址的。红帽推荐你不依赖于资源的不可寻址性(non-addressability)来隐藏信息,除非是在敏感性约束里定义的不可寻址性。

域管理

1015524 - RBAC: 无法部署已被用户从其他服务器组作用域部署的相同部署

当启用了基于角色的访问控制时,具有服务器组作用域的管理用户可能会部署新部署失败,错误信息如下:
"JBAS014807: Management resource '[(\"deployment\" => \"example.war\")]' not found"

这是因为具有相同名称的部署已经存在于域里了。这是正常的行为。然而,因为管理用户作用域是服务器组(server-group),他们无法看到这样的部署是否已经存在于另外一个服务器组里。这使得我们很难去避免这种错误。

为了绕过这个限制,红帽推荐要么无作用域的角色分配给负责添加部署到域里的用户,要么维护一个部署名称列表以供管理用户使用。
1034700 - 启用安全管理者时 whoami 操作无法执行

当 JBoss EAP 6 启用了 Java 安全管理者时,:whoami 操作无法正确执行。试图运行这种操作会导致 IllegalArgumentException 类型的异常抛出。
1035231 - RBAC: 访问控制无法和安全管理者一起使用

当 JBoss EAP 6 启用了 Java 安全管理者时,基于角色的访问控制系统会实际上被禁用,因为在这种情况下所有已验证的用户都被视作超级用户。唯一的办法是不启用 Java 管理者。
1035232 - EAP 域模式无法与安全管理者一起正常运行

如果受管域里的服务器使用了 Java 安全管理者而没有制定它的类名,服务器会无法成功启动。这通常是因为在使用默认的安全管理者时在 domain.conf 或命令行参数里指定了 -Djava.security.manager

在这种情况下,服务器会启动失败并显示下列信息:
                    Error occurred during initialization of VM java.lang.InternalError: Could not create SecurityManager: true

这是因为主机控制器将未设置值的系统属性传入到受管服务器并将属性设置为 true。这意味着服务器将试图使用类名为 true 的 Java 安全管理者。为避免这种情况的发生,请在配置文件里显性地定义默认安全管理者的类名如下:
                    -Djava.security.manager=java.lang.SecurityManager
1021607 - RBAC: 解释两种 non-addressability

有些资源对于作用域为 server-group 和 host 的角色是不可寻址的,这是为了提供管理模型的简化视图来提高可用性。这和处于保护敏感数据的不可寻址的资源是不一样的。

对于作用域为服务器组的角色,这表示管理模型的 profile, socket binding group, deployment, deployment override, server group, server configserver 部分里的资源如果和指定的服务器组不相关,它们会不可见。

对于作用域为主机的角色,这表示管理模型的 /host=* 部分里的资源如果和指定的服务器组不相关联,它们会不可见。

然而,在某些情况下,这种简化的视图可以隐藏超出用户管理的作用域的信息,这可以为用户提供指导。其中一个例子是 1015524

在以后的版本里,这些不可寻址的资源中的一些可能会改成可寻址但不可读的。这不会影响到服务器的安全性,因为出于安全原因,它们是不可寻址的。红帽推荐你不依赖于资源的不可寻址性(non-addressability)来隐藏信息,除非是在敏感性约束里定义的不可寻址性。
1024109 - DelegatingServerInventory 里出现 NPE

在主机控制器启动后立即发送管理请求给它可能会失败并抛出 NullPointerException。这是因为主机控制器能够处理请求和服务器管理系统完全启动之间有一段时间间隔。这个间隔通常少于一秒,但期间的任何请求都会接收失败。

这应该只发生在自动化环境里,如有脚本启动控制器并立即在其中一个服务器上调用管理操作。

目前,对于这种脚本或其他任何在启动主机控制器后立即执行管理操作的自动化步骤,红帽推荐下面的变通办法:
  1. 包含轻微的延迟(一或两秒)以允许所有主机控制器系统有足够的时间完全启动。
  2. 包含错误处理逻辑。
  3. 当服务器启动时,使用轮询逻辑来处理请求结果。

以后的版本里将修复这个问题。

EJB

1019372 - 群集节点选择过程无法区分节点是否能够处理 EJB 请求

当群集没有将相同的 EJB 部署在每个节点上时,客户 EJB 调用有时候会导向到没有部署 EJB 的群集节点。这是因为 ejb-client 在发送请求前没有确认目的地节点能够处理调用。ejb-client 现在可以执行这种确认,而调用会被分发到正确的节点了。
1017673 - TimerService.getTimers() 里出现 ConcurrentModificationException

如果 bean 试图在另外一个线程调用 getTimers() 方法的同时创建一个新的定时器,就会抛出异常。这是因为 getTimers() 方法没有调用定时器上的 synchronized()。我们在以后的版本里将解决这个问题。

Hibernate

900321 - 当获取使用 NaturalIdLoadAccess 进行 naturalIdQuery 的结果时,缓存正确的 natural-id 值时出现的 HHH-7287 问题。

在从非事务场景更新了 natural-id 值后,从二级缓存(L2)加载实体时 Hibernate 接口 NaturalIdLoadAccess 行为不一致。

Hibernate 目前不支持对数据库的事务性和非事务性混合访问时具有自然标识符的实体的 L2 缓存。

安装程序

1032892 - 在 Windows 里对于以盘符开头的路径无法使用 tab 键填充。

在 Microsoft Windows 服务器上的 JBoss EAP 6 控制台安装程序里,以盘符开头的目录路径无法使用 tab 键来完成。

当输入以盘符开头的路径时,如 C:\,然后按 Tab 键,系统不会显示任何东西。本来系统应该显示该目录的内容。

以后的版本里将修复这个问题。
977805 - 在 Solaris 里无法从开始菜单启动 JBoss 管理控制台

对于使用安装程序安装的 JBoss EAP 6 实例,无法使用 Solaris 上的管理控制台的启动菜单快捷键。

不会在 web 浏览器里打开管理控制台,而是显示下列错误信息:
Error showing url: HTTP Error: Method Not Allowed

这是因为 Solaris 上的 xdg-open 命令无法正常运行。

变通办法是通过 Web 浏览器直接访问管理控制台。如果是使用的默认端口,管理控制台的 URL 应该是: 对于独立服务器:http://localhost:8080/console 对于域模式: http://localhost:9990/console

JCA

1033008 - 通用的 JMS RA 和 EE 规格不一致 - 当会话是在事务上下文里创建时它*没有*忽略参数。

当会话是在事务的上下文里创建且参数被传入通用的 JMS 资源适配器里时,Null Pointer Exception (NPE)将会出现。这是因为当尝试处理参数时,Java EE 声明它们应被处理。其根本原因我们还在调查,变通办法是象下面的例子设置会话。使用这个变通方法,NPE 将不会出现了。
connection.createSession(true, Session.SESSION_TRANSACTED);
1023193 - 在定期崩溃恢复过程中 JMS generic RA 显示 'lock owned during cleanup' 警告

我们已经确定了和定期恢复相关的一个小问题,以下面文本开头的警告信息将被记录日志。
WARN  [org.jboss.resource.adapter.jms.JmsManagedConnection] (Periodic Recovery) Lock owned during cleanup: java.lang.Throwable: Lock owned during cleanup

这个问题的底层原因是通用 JMS 适配器错误处理了第二个定期恢复调用。依照 Object Transaction Service 规格,当事务管理者是运行在 JTS 上时,定期恢复调用会用相同的 XID 回滚两次。通用 JMS 适配器错误地处理具有系统 XID 的回滚的第二次调用,从而登记了上述警告信息。请注意不管是什么警告信息,恢复过程还是会正确完成。
991389 - Connection factory isn't activated in 在服务器用 JTS 事务模式集重载后,generic-jms-ra.rar 资源适配器里的连接工厂未被激活。

当 JBoss EAP 服务器用 generic-jms-ra.rar 部署的资源适配器进行配置时,服务器重载时连接工厂会被取消注册。原因是如果事务子系统被配置成运行在 JTS 上,通用资源适配器没有正确处理重载。我们正在调查其根本原因。

变通办法是在 RAR 归档里添加一个指定了连接属性的 JCA 描述符 XML 文件。

JSF

1029387 - WFLY-2493 EL 无法访问 non-public 类的 public 方法/字段

当通过 EL 访问 non-public 类的 public 方法或字段时会显示下列错误信息:
"java.lang.IllegalAccessException: Class javax.el.BeanELResolver can not access a member of class X with modifiers "private"

要绕过这个问题,请在调用方法前设置 SetAccessible(true),这将忽略 Java 的访问检查。
1017242 - 在根上下文应用程序里 FacesMessages 无法正常运行

JBoss EAP 6.2 附带的 JSF 组件有一个已知问题。已有报告表示当在根上下文里运行应用程序时,FaceMessages 不可靠。我们将在以后的版本里解决这个问题。

其他

901231 - 在 IBM JDK 上使用 finalize() 需要格外小心

当运行在 IBM JDK 6 和 7 上时,JBoss EAP 6 可能遇到间歇性的故障。这是因为 IBM 的垃圾回收器比其他 JVM 更为积极。有时候这会导致在没有预料的情况下内存没有回收,而这不会发生在其他 JVM 上。

在这个问题得到解决之前,红帽推荐你不要使用 IBM JDK 6 或 7 来运行 JBoss EAP 6。

脚本和命令

956281 - 在 Windows 里的 32 位 JVM 上启动 EAP 6.1 可能导致启动 JVM 失败

在 Windows 8 32 位的虚拟机里,默认的最大 perm gen 空间设置导致了 JVM 无法创建,从而阻止了服务器的启动。要解决这个问题,请从 JVM 的启动参数里删除 -XX:MaxPermSize=256m。然后 JVM 就可以被创建,而服务器就可以启动了。

安全性

979369 - 和程序里登录一起使用时 HttpSession 创建的行为不一致

我们发现 HttpSession 在和程序里登录一起使用时其创建的行为会不一致。
  • 不使用 SSO: 当调用 login() 方法时不会创建会话 - 也就是,随后的请求是未经验证的;
  • 使用非群集的 SSO:当调用 login() 方法时会创建会话,但第一次调用不会设置验证状态 - 也就是,随后的请求是未经验证的;而用户在第二次调用 login() 方法后会被验证,因为会话已经存在了。
  • 使用群集的 SSO: 当调用 login() 方法时会创建会话且随后的请求是已验证的。

我们正在调查导致不同行为的原因。目前还没有变通办法。

服务器

1036872 - 无法配置禁用在 JRE 的 java.security 文件里指定的策略文件的安全策略文件设置

我们已经确认使用特殊的前缀 = 来禁用默认的策略文件会出现问题。底层的原因是当主机控制器启动服务器时,它提供 null 作为 java.security.policy 设置的值,导致使用 java.security 里指定的策略文件且权限问题可能会阻止服务器引导。

有几个变通的办法:

1) 编辑 JVM 的 java.security 文件(通常位于 $JAVA_HOME/lib/security/java.security)并注释任何 "policy.url" 设置,例如:

#policy.url.1=file:${java.home}/lib/security/java.policy #policy.url.2=file:${user.home}/.java.policy

请注意这将禁用这些策略文件被 JVM 安装的任何用户使用。如果你对此有所担心,你最好设置一个单独的 JVM 安装以用于 EAP 并修改其配置。

2) 从 java.security.policy 值里删除领头的 "=";例如

-Djava.security.policy=$PWD/server.policy

使用这些步骤,则只有指定文件里的设置才会被使用。

事务管理者

1027126 - 服务器用 standalone-xts.xml 和运行在 mysql 5.5 上的 jdbc 对象库无法启动。

当配置事务管理者来运行 XTS 事务,且使用基于 MySQL 5.5 的 JDBC 对象库、驱动放在 deployments 目录下时,服务器无法启动。错误结果包含 New missing/unsatisfied dependencies 等信息。在使用其他数据库时不会发生这个错误。我们正在调查这个问题,在以后的版本里希望能解决它。
1017816 - 无法在 EAP 配置里将 UID 的生成从 uuid 修改为套接字

当进程 ID 生成方法被修改为 process-id-socket-binding 而不是 process-id-uuid 时,以下面的文本结果开始的错误将会显示:
                        ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 44) JBAS014613: Operation ("add") failed - address: ([("subsystem" => "transactions")]) - failure description: "JBAS014746: process-id-uuid may not be null"

造成这个问题的原因是配置参数的处理不正确。在以后的版本里我们将解决这个问题。目前没有变通办法,所有你必须使用默认的进程 ID 生成方法。
1009981 - 已提交的事务上的定期恢复

当服务器处于过度负载时,服务器的日志可能包含下面的信息,表示事务回滚已经发生。
WARN  [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016027: Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_NOTA: javax.transaction.xa.XAException
at org.hornetq.core.client.impl.ClientSessionImpl.rollback(ClientSessionImpl.java:1699) [hornetq-core-client-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]   
at org.hornetq.core.client.impl.DelegatingSession.rollback(DelegatingSession.java:494) [hornetq-core-client-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.rollback(HornetQXAResourceWrapper.java:126) [hornetq-jms-server-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.handleOrphan(XARecoveryModule.java:755) [jbossjts-jacorb-4.17.15.Final-redhat-4.jar:4.17.15.Final-redhat-4]
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoverySecondPass(XARecoveryModule.java:661) [jbossjts-jacorb-4.17.15.Final-redhat-4.jar:4.17.15.Final-redhat-4]
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.bottomUpRecovery(XARecoveryModule.java:431) [jbossjts-jacorb-4.17.15.Final-redhat-4.jar:4.17.15.Final-redhat-4]
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:212) [jbossjts-jacorb-4.17.15.Final-redhat-4.jar:4.17.15.Final-redhat-4]
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789) [jbossjts-jacorb-4.17.15.Final-redhat-4.jar:4.17.15.Final-redhat-4]
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371) [jbossjts-jacorb-4.17.15.Final-redhat-4.jar:4.17.15.Final-redhat-4]

在重负载下,事务消耗的处理时间和定期恢复进程的活动时机可能重叠。定期恢复进程检测到事务仍在处理并试图进行回滚,但实际上事务将继续完成。当定期恢复进行尝试但回滚失败时,它会在服务器日志里记录这次失败的回滚。我们在以后的版本里将解决底层的问题,现在有一个变通方法。

通过设置 com.arjuna.ats.jta.orphanSafetyInterval 为比默认的 10000 毫秒更高的值,增加恢复进程的两个阶段间的间隔。我们推荐使用 40000 毫秒。请注意这并不会解决这个问题,而只是降低发生的可能性并减少日志里的警告信息。

Web

918130 - 在 EAP 6 里,JBossWeb 连接器在应用程序部署完成前启动

我们发现了一个关于JBossWeb 连接器在启动时的时机问题。在应用程序完全部署之前,当连接器启动并接受请求时会有问题。此时,通过负载平衡器或直接连接的客户连接会返回 404 消息。这个问题影响了 Java EAP 6.0.1 及更高的版本。目前还没有变通办法,但我们正在进行调查。

Web 控制台

995439 - JTS 事务没有正确启用

当在 web 管理控制台的 Transactions 部分启用 JTS 时("Profile → Container → Transactions"),你有必要在 JacORB 子系统里设置属性 transactionson。预期的行为是当 JTS 被启用时事务也被启用。我们还在调查其中的原因,在解决这个问题之前,变通办法是确保 transactions 属性也被设置为 on。请注意事务子系统仅在 fullfull-ha 配置集里可用。
1014048 - RBAC: 在域模式里登出后立即登录无法正确清除 UI。

在某些情况下,当登出 Web 控制台而在其他用户登入前,控制台将部分地呈现。这会导致“混合的”内容,屏幕的一部分会显示旧的用户已登录的信息,而另一部分是新用户登录的信息。变通办法是关闭浏览器(而不仅仅是活动页)再用新用户登录。
1014219 - RBAC: 对于具有多重作用域角色的用户控制元素的可见性

在这个 JBoss EAP 6 版本里,某些分配了多重角色的用户会在控制台里看到它没有执行权限的操作。例如,具有角色 host-master-administratorhost-slave-monitor 的用户在主机从服务器场景里应该只能看到控制元素(如服务器配置页面上的 Add 按钮)。在主机主服务器场景里,这个按钮应该是不可见的(然而确实可见)。

如果在执行操作时强制了正确的访问控制,不该可见的操作应该无法执行。这并没有违背安全性。

目前还有没有绕过这个问题的办法,然而我们将在以后的版本里解决它。
1026823 - 提供了一个可靠的方法来清除 "Run as" 对话框设置的 "ROLE" 头部信息

在这个版本的 JBoss EAP 6 里,当超级用户(Superuser)代替其他用户(使用 Run As…)运行时,它们的角色在动作结束后没有复位。

绕过的办法是关闭浏览器窗口(而不仅仅是活动标签页)并重新访问 Web 控制台。在以后的版本里我们将解决这个问题
1017655 - Web services 配置校验错误

在这个 JBoss EAP 6 版本里,Web 控制台不会拒绝配置集 > Web > Web Services 下的无效值 WSDL HostWSDL PortWSDL Secure Port

某些无效值会导致错误信息,而其他无效值会被忽略而不会显示错误信息。配置里不存储任何无效值。

以后的版本里将解决这个问题。
1016546 - RBAC: [Usability] 当试图配置 Auditor 角色为管理员时出现不清楚的错误信息。

当用户没有执行操作的权限时,普通的错误信息显示为:""。这个错误信息会令人迷惑,因为用户试图执行操作而不是访问某个资源。

在这个 JBoss EAP 6 版本里,如果用户试图执行它没有权限的操作时,它们将接收到下列错误消息:
你没有访问这个资源的权限!

当用户试图执行操作而不是访问资源时,这会使用户迷惑。在将来的版本里我们将给出更具体的错误信息。
1029851 - 管理控制台 - 即使在取消了上传部署文件之后,其内容仍被添加到了数据目录里。

这个 JBoss EAP 6 里存在一个已知问题,通过『Manage Deployments』屏幕上传文件总可以完成,即使用户已经取消了上传。

取消这个操作会导致上传的文件被添加到 data 目录,同时阻止文件被添加为 domain.xml 里的部署。这意味着这个文件无法从 CLI 或 Web 管理界面进行删除。

我们在以后的版本里将解决这个问题。
1027586 - RBAC: 对于应用程序资源,Web 控制台过于粗颗粒度了。

在这个版本里的 JBoss EAP 6 里,当资源被定义为应用程序资源时,控制台可能无法反映这种定义。这是因为控制台通常将几个资源分组到一个视图里。如果所有相关的资源都是可写入的,那么视图里的控件就是可用的。而如果任何资源被配置为应用程序资源,相关的控件仍然是被禁用的。

目前的变通办法是,如果有可能,将所有和子系统相关联的资源类型配置为应用程序资源。

Web Services

900032 - JBossWS IPv6 问题

mod_cluster

980246 - mod_cluster-manager 可能分断单个虚拟机的别名,导致页面乱码。

在这个版本的 JBoss EAP 里,当部署多个应用程序,而每个应用程序都带有唯一的虚拟服务器且虚拟服务器具有多个别名时,mod_cluster_manager 可能会不正确地多次显示相同的虚拟主机(每个别名都显示一次)。

这不是我们期待的行为,也就是所有的虚拟主机和所有别名只显示一次。我们正在调查这个问题,在以后的版本里将解决它。
901227 - web 控制台里的 node-timeout、worker-timeout、flush-wait 和 ttl mod_cluster 属性

这是 JBoss EAP 6 里存在的一个已知问题,基于 Web 的管理控制台阻止用户查看或设置下列 mod_cluster 属性值为 -1
  • node-timeout
  • worker-timeout
  • flush-wait
  • ttl

如果已经设置了 -1 值,管理控制台会错误地显示属性的值为 0。当试图用管理控制台将属性值设为 -1,管理控制台显示警告:Invalid numeric value

绕开的方法是使用管理 CLI 来将受影响的属性设置为 -1

我们正在调查这个问题的原因。
1030965 - 注册上下文的数量对 mod_cluster 的性能有负面影响

我们在将 mod_cluster 配置为负载平衡器的 Apache HTTP 服务器上确定了一个性能方面的问题。workers->nodes 表上的 httpd 共享内存操作对负载平衡器有着负面的影响。由此,当注册上下文的数量增加时,httpd 负载平衡器的性能会递减。

要绕过这个问题,请降低已注册上下文的数目。

目前的解决方案是修改 httpd 以利用本地内存而不是共享内存。在以后的版本里我们将修复这个问题。
900047 - Linux/Unix 里 SystemMemoryUsageLoadMetric 不正确

在 Linux 或 UNIX 系统上 SystemMemoryUsageLoadMetric 没有显示有用的信息。对于这些系统,HeapMemoryUsageLoadMetric 提供了更多的有用信息。解决方案时修改 SystemMemoryUsageLoadMetric 的算法从 used 数字减去 buffers/cache 值。实现这一点的最好方法是进行调查研究。

Apache 服务器(httpd)和连接器

900620 - 如果使用 UAC(Windows Server 2008 R2),APR natives 不会被加载。

在 Microsoft Windows 服务器上,如启用了用户帐号控制(UAC),Apache portable runtime (APR) 库将无法加载。在安装了这些库后,管理员将需要在 Properties -> Security 标签页里右击 JBoss 目录并为需要的用户设置 “Full control” 为 ”Allow“。这将纠正 UAC 的访问权限。

域管理,Web Services

987898 - 用 'Unknown attribute wsdl-url' 而不是 'Attribute wsdl-url is not writable' 写入 WS 端点的 wsdl-url 属性。

已部署哦 SOAP Web 服务端点(name, context, class, type 和 wsdl-url)的 5 个属性在管理工具里是不可访问的。这是因为它们没有通过 Web Services 子系统开放给管理模块。我们在以后的版本里将解决这个问题。

EJB,命名

923836 - IBM JDK 无法在 SSL 使用 remote:// 协议

这是 JBoss EAP 6 里存在的一个已知问题,IBM JDK 上的远程命名查找会间歇性地失败,并抛出下列异常:
org.jboss.remoting3.NotOpenException: Endpoint is not open.

当客户使用 IBM JDK 时会出现这个问题。服务器使用 IBM JDK 而客户使用其他 JDK 时,这个问题就不会出现。

我们正在调查和解决这个问题

对 IPv6 的支持

900609 - 当服务器绑定到 IPv6 时,Windows 上有打开的 IPv4 套接字。

如果 JBoss EAP 6 在 Microsoft Windows 服务器上启动,禁用 IPv4 而启用 IPv6,IPv4 套接字将仍被打开。我们正在调查这个问题。
900564 - 日志条目里错误的 IPv6 地址格式

IPv6 地址应该用方括号 ([ 和 ]) 格式化,如 http://[2620:52:0:105f::ffff:2]:9990,但 JBoss EAP 6 里的日志文件里缺失了括号。我们将在以后的版本里解决这个问题

JDR

917683 - JDR 工具生成在 Windows 上运行的错误的归档条目名称。

在 Microsoft Windows 服务器环境里使用时,JDR 工具里发现了一个程序错误。这个工具将原来的 $JBOSS_HOME 目录的最后一个字符附加到在归档里创建的 JBOSS_HOME 目录上。

例如,对于原来的 JBOSS_HOME 目录 jboss-eap-6.2,JDR 工具将产生一个名为 JBOSS_HOME2 的归档目录。

我们正在调查这个程序错误的原因,暂时还没有解决办法。

RESTEasy

958896 - RESTEasy: 响应里无效的 Content-Type - 当在请求头部里指定无效的接受头部时出现错误的行为

JBoss EAP 6 的 RESTEasy 子系统里存在一个问题,当在接收的 HTTP 请求里出现无效的接受头部信息时,错误的 HTTP 200 将被发送。

当提供了无效的接受头部信息时,正确的响应应该是 HTTP 500。我们正在调查这个问题。