运行时环境已知问题和限制

使用 Liberty 运行时环境时存在一些已知限制。

已知问题和限制的列表:

支持的最低 Java 级别

Liberty 在任何符合 Java™ SE 6、 Java SE 7、Java SE 8 运行时环境 (JRE) 或 Java SDK 中受支持,并且受限于针对下列特定实现显示的最低受支持级别。
Java SE 6 运行时环境
对于来自 IBM 的 Java SDK,最低受支持级别为 6.0 (J9 2.6) SR 1。对于来自 Oracle 的 JDK,最低受支持级别为 Java 6 Update 26。

适用于 IBM i 平台Java SE 6 在 IBM i V7R3 上不受支持。

Java SE 7 运行时环境
对于来自 IBM 的 Java SDK,最低受支持级别为 IBM 运行时环境 Java Technology Edition 7.0.4.1。对于 Windows 和 Linux 上来自 Oracle 的 JDK,最低受支持级别为 Java SDK/JRE/JDK 7.0.17。对于 Mac OS X 上来自 Oracle 的 JDK,最低受支持级别为 Java SDK/JRE/JDK 7.0 Update 15。
Java SE 8 运行时环境
对于来自 IBM 的 Java SDK,最低受支持级别为 IBM SDK Java Technology Edition V8。对于来自 Oracle 的 JDK,最低受支持级别为 Java 8 update 25。

适用于已分发平台在分布式平台上,支持 32 位或 64 位 Java。

适用于已分发平台对于 Windows 和 Linux 系统,您可以使用 Oracle JDK 或 IBM Java SDK。如果您是在 Windows 或 Linux 上开发应用程序,并且计划将这些应用程序部署到正在运行 WebSphere Application Server 传统版的服务器,请使用 IBM Java SDK。对于 HP 系统和 Mac OS,请使用 Oracle JDK。

适用于 IBM i 平台注: 要获取 IBM i 支持的最低 Java 级别,请安装 IBM Java SE 6.0 32 位 JVM(5761-JV1 选项 11 或 5770-JV1 选项 11)或 IBM Java SE 6.0 64 位(5761-JV1 选项 12 或 5770-JV1 选项 12)。对于 IBM i V7R1,还要安装 Java PTF 组 SF99572 级别 8 或更高级别。

对于 IBM i V7R3,最低 JDK 级别是 IBM Java SE 7.0 32 位 JVM(5770-JV1 选项 14)或 IBM Java SE 7.0 64 位 JVM(5770-JV1 选项 15)。

安装目录名称和路径不能包含非 ASCII 字符

最近的 JVM 并不完全支持在 -jar-javaagent 命令中使用非 ASCII 字符。请在安装目录名称和路径中只使用 ASCII 字符。

运行时更改 JDBC 数据源可能导致 JPA 失败

如果未通过属性来指定数据库字典类型,那么在创建第一个实体管理器和建立数据库连接时,OpenJPA 会检测并计算数据库字典类型。此数据库字典类型可用于后续创建的所有实体管理器。如果在应用程序处于运行状态时更改了 JDBC 数据源,那么实体管理器工厂就检测不到此更改,因此对新数据源执行的操作都将继续使用旧字典。如果将数据库更改为其他供应商,那么这可能会导致失败。

将数据库更改为其他供应商之后,请重新启动应用程序。

运行时修改 dataSource、jdbcDriver、connectionManager 和 JDBC 供应商属性可能会导致 JPA 失败

如果在服务器处于运行状态时更新 dataSourcejdbcDriverconnectionManager 或者任何 JDBC 供应商属性列表(例如,properties.db2.jccproperties.oracle)的配置,那么您可能会看到 J2CA8040E 失败。这些失败会说明不能将多个 dataSource 元素与单个 connectionManager 相关联。即使您的配置只将一个 connectionManagerdataSource 元素相关联,也会生成这些失败。

这些 JDBC 资源的配置只要发生更新,就应该重新启动服务器。

依赖于 getRealPath 所返回结果的应用程序必须部署为展开的应用程序(而不是 WAR 文件)

Java EE 规范说明如果是从 Web 归档 (WAR) 文件提供内容,那么 getRealPath() 方法会返回 null 值。将 WAR 文件部署到 Liberty 时,Liberty 不会自动将归档文件解压缩到目录结构中。因此,应用程序可能无法启动。如果应用程序依赖于 getRealPath() 所返回的结果,那么必须将应用程序部署为展开的 Web 应用程序(而不是 WAR 文件)。例如,您可以手动解压 WAR 文件并将展开的应用程序复制到 dropins 目录。

WebSphere Application Server 传统版 脚本不能与 Liberty 配合使用

不能使用 WebSphere Application Server 传统版bin 目录下的任何脚本来管理 Liberty。

文件集限制

下列限制适用于文件集:
  • 文件集不会递归地浏览基本目录的子目录。例如,不支持下列指令:
    <fileset id="testFileset" dir="\temp" includes="**\a.jar"/> 
    <fileset id="testFileset" dir="\temp" includes="a\a.jar"/>
    <fileset id="testFileset" dir="\temp" includes="*\a.jar"/>
    <fileset id="testFileset" dir="\temp" includes="a\b\a.jar"/>
适用于 Windows 平台

取消发布共享库时,只有停止服务器才能删除共享库

从服务器取消发布共享库时,不会立即将库 JAR 文件从服务器释放。因此,操作系统并不知道文件已不再使用,并且不让您删除该文件。下一次停止服务器时,将释放库 JAR 文件,并且您可以将其删除。

java:global 查找限制

应用程序中使用 java:global 查找定义的资源只能用来访问由部署在当前服务器中的应用程序声明的名称。

未在嵌入的 Liberty 服务器中启动应用程序

请确保使用指向 libertyInstallDir/bin/tools/ws-javaagent.jar 的 JVM 参数 -javaagent 启动了用于启动嵌入式 Liberty 服务器的 Java 进程。如果未使用 -javaagent JVM 参数,那么服务器运行时会启动,但应用程序无法启动,同时没有明显异常。

与 WebSphere MQ 资源适配器和通用 JCA 支持相关的限制

通过使用 wmqJmsClient-1.1wmqJmsClient-2.0 功能部件,或通过使用通用 JCA 支持,可以在 WebSphere Application Server Liberty 中使用 WebSphere® MQ 资源适配器。

可将 WebSphere MQ 资源适配器 V7.5 与 Liberty V8.5.5 及更高版本配合使用。如果您想要使用基于 JMS 2.0 资源适配器的 WebSphere MQ 资源适配器 V8.0,那么必须确保您正在使用与 JMS 2.0 资源适配器兼容的最新 Liberty 版本。

Notes:
  • 对于 Liberty V8.5.5.2,必须将 wmqJmsClient-1.1 功能部件与 IBM MQ 资源适配器 V7.5.0.5 或更高版本配合使用。
  • 对于 Liberty V8.5.5.6,必须将 wmqJmsClient-2.0 功能部件与 IBM MQ 资源适配器 V8.0.0.3 或更高版本配合使用。

要知道有关 WebSphere MQ 资源适配器与 Liberty 之间的版本兼容性的更多信息,请参阅 有关获取 WebSphere MQ 资源适配器的参考

如果正使用类属 JCA 支持,那么以下限制适用:
  • 要在 z/OS® 上运行 IBM® WebSphere MQ 资源适配器,必须使用 wmqJmsClient-1.1wmqJmsClient-2.0 功能部件。
  • 跟踪和日志记录未集成到使用通用 JCA 的 Liberty 跟踪系统中。跟踪将写至单独文件,并且必须通过设置系统属性来启用。启用跟踪的过程与为 Java 标准环境的 JMS 跟踪工具配置 WebSphere MQ 类的过程相同。请参阅 Java 标准环境跟踪一节。
  • Liberty 中不支持 IBM MQ Java 类。它们不得与 IBM MQ Liberty 消息传递功能或通用 JCA 支持一起使用。有关更多信息,请参阅在 J2EE/JEE 环境中使用 WebSphere MQ Java 接口

不能对 dropins 目录中的应用程序进行版本控制

对于 dropins 目录中的应用程序,应用程序监视器使用文件名和文件扩展名来确定应用程序类型并生成应用程序标识和应用程序名称。因此,不能使用文件名或文件扩展名对应用程序指定版本号。建议不要在生产环境中使用 dropins 目录。

集合体、动态路由和缩放功能部件无法与 cdi-1.2 功能部件配合使用

请勿将 collectiveController-1.0collectiveMember-1.0 clusterMember-1.0dynamicRouting-1.0scalingController-1.0scalingMember-1.0 功能部件与上下文和依赖性注入 1.2 (cdi-1.2) 功能部件配合使用。

共享会话应用程序必须将会话对象存储在共享库中

使用共享会话上下文应用程序扩展或在 ibm-application-ext.xml 中使用 <shared-session-context value="true"/> 时,存储在会话中的所有对象必须在与应用程序相关联的共享库中可用,以便能够使这些对象失效。

管理中心功能部件限制

对于 adminCenter-1.0 功能部件,存在下列限制:
  • 使用随 WebSphere Application Server 传统版 产品(例如,Network Deployment)提供的 IBM Java 虚拟机 (JVM) 可能导致 WebSphere Liberty 管理中心(“管理中心”)不显示在浏览器中。缺省情况下,随 WebSphere Application Server 传统版产品提供的 IBM JVM 指向仅随 WebSphere Application Server 传统版产品提供的安全类,而不指向管理中心(需要安全套接字层 (SSL))所需的安全类。使用支持 Liberty 产品和 SSL 的 JVM。
    您可以从 Installation Manager 产品或 developerWorks® 获取支持 Liberty 产品和 SSL 的 JVM:
    • 通过使用 Installation Manager,先选择 Liberty 产品,然后选择 WebSphere SDK for Liberty。使用 Installation Manager 安装 Liberty 产品和软件开发包 (SDK)。WebSphere SDK for Liberty 包含 Liberty 产品和 SSL 所需的支持,并提供 Java 客户机 JConsole。
    • 转至 developerWorks Web 站点上的 http://www.ibm.com/developerworks/java/jdk/index.html,并下载适用于您的操作系统的 IBM Java Development Kit (JDK)。developerWorks Web 站点没有适用于所有操作系统的 JVM。例如,您必须从 Eclipse 获取适用于 Windows 操作系统的 JDK。
  • 管理中心的“监视器”视图的“CPU 使用率”图表对未提供进程 CPU 统计信息的 JVM 显示 0% CPU 使用率。有关该图表的更多信息,请参阅监视管理中心中的指标
[16.0.0.4 及更高版本]对于 Java 批处理工具的 Beta 版本,以下限制适用:
  • 由于安全认证问题,无法从远程机器查看作业日志。
  • 如果查看实例日志,那么在多个主机中执行操作时预期会发生错误。
  • 未过滤列表仅显示根据最新更新的实例排序的结果。
  • all 执行过滤器时,不会按最新更新的实例对结果进行排序。
  • 不管是否对列表进行了过滤,仅会在列表中显示不超过 50 个结果。
  • 使用 Java 批处理 Beta 版需要将持久性数据库与 batchManagement-1.0 功能部件配合使用。

appClient-1.0 功能部件限制

对于 appClient-1.0 功能部件,存在下列限制:
  • 该功能部件不支持 Java EE 应用程序客户机,并且只能启动独立客户机程序。

appSecurity-2.0 功能部件限制

对于 appSecurity-2.0 功能部件,存在下列限制:
  • 对于 EJB 应用程序,run-as-mode SYSTEM_IDENTITY 在 ibm-ejb-jar-ext.xml 文件的扩展设置中不受支持。
  • 单独会话 Bean 不支持 getCallerIdentity API。
  • 角色名称可供 HttpServletRequest.isUserInRoleEJBContext.isCallerInRole API 或者部署描述符中的元素引用,而不先使用 @DeclareRoles 注释或者部署描述符中的 <security-role/> 元素来声明角色名称。但是,必须先声明角色,然后才能在 WebSphere Application Server 传统版中使用这些角色。

Bean Validation 功能部件限制

对于 beanvalidation-1.0 功能部件,存在下列限制:
  • 不支持在 OSGi 应用程序内部进行 Bean 验证。
对于 beanValidation-1.1 功能部件,存在下列限制:
  • 不支持在 OSGi 应用程序内部进行 Bean 验证。
  • validation.xml 中为 beanValidation-1.0 功能部件提供定制 ConstraintValidatorFactory 实现的应用程序不会针对 Bean Validation 1.1 API 进行编译。
  • 如果 validation.xml 文件不在关联模块中,那么只能有一个 validation.xml 文件并且 com.ibm.ws.beanvalidation.allowMultipleConfigsPerApp 属性在下列任一文件中必须设置为 false
    • jvm.options
      -Dcom.ibm.ws.beanvalidation.allowMultipleConfigsPerApp=false
    • bootstrap.properties
      com.ibm.ws.beanvalidation.allowMultipleConfigsPerApp=false

动态高速缓存功能部件限制

下列动态高速缓存功能部件不可用或者可用性有限:
  • 不支持高速缓存复制。
  • 在使用随机逐出和基于大小的逐出技术时,仅支持高性能磁盘高速缓存方式。
  • cachespec.xml 文件中不支持 Web Service 客户端和服务器端高速缓存以及 Portlet 高速缓存。
  • 不支持对 SingleThreadModel Servlet 进行 Servlet 高速缓存。
  • 只包含 Enterprise JavaBeans (EJB) 的 JAR 文件不支持使用属性文件来定义高速缓存配置。
  • 只能对 32 位 Java 虚拟机 (JVM) 限制堆高速缓存大小。

Enterprise JavaBeans (EJB) 功能部件限制

下列限制适用于 EJB 功能部件:
  • 使用 EJB Lite 功能部件时,V3.0 之前的 EJB 模块不受支持,这仅仅是因为 EJB Lite 中未包含 EJB home。此限制也意味着使用 .xmi 文件格式(而不是 .xml 文件格式)的绑定和扩展不受支持。
  • 会话 Bean 未绑定到 ejblocal 名称空间,这表示 JNDI 查找和 ejb-ref 绑定名称必须使用 java:globaljava:appjava:module 名称。忽略 ibm-ejb-jar-bnd.xml 中的 simple-binding-name 和接口 binding-name 元素。
  • 有状态 Bean 钝化目录不可配置。文件会钝化到服务器工作区。

jsf-2.2 功能部件限制

对于 jsf-2.2 功能部件,存在下列限制:
  • 如果将 jsf-2.2 功能部件与 faces-config.xml 文件配合使用,并指定版本 2.2 和名称空间,那么您将会获得错误。
  • 如果将 jsf-2.2cdi-1.2ejb-3.2jpa-2.1 一起启用,将会存在功能部件冲突。

jsp-2.2 功能部件限制

对于 jsp-2.2 功能部件,存在下列限制:
  • 不支持将转换的 JSP 文件仅存储在内存中的 useInMemory 配置选项。

logstashCollector-1.0 功能部件限制

以下限制适用于 logstashCollector-1.0 功能部件:
  • 数据丢失 - Liberty 中生成的某些事件可能不会如预期转发至 Logstash。以下场景中可能会发生数据丢失:
    1. 在 Logstash 服务器启动之前启动 Liberty 服务器。建议先启动 Logstash 服务器,然后再启动 Liberty 服务器。
    2. 高负载情况。当 Liberty 中事件的创建速度高于 Liberty 的事件流水线、Logstash 和任何其他下游使用者对事件的处理速度时,可能会发生事件丢失。当事件创建的速度暂时高于事件使用速度时,Liberty 使用缓冲区来避免数据丢失。
  • logstashCollector-1.0 功能部件经过测试,并与 Logstash V2.x 兼容。

logmetCollector-1.0 功能部件限制

以下限制适用于 logmetCollector-1.0 功能部件:
  • 数据丢失 - Liberty 中生成的某些事件可能不会如预期的那样转发至 logmet。以下场景中可能会发生数据丢失:

    高负载情况。当 Liberty 中事件的创建速度高于 Liberty 的事件流水线、logmet 和任何其他下游使用者对事件的处理速度时,可能会发生事件丢失。当事件创建的速度暂时高于事件使用速度时,Liberty 使用缓冲区来避免数据丢失。

  • 连接断开 - 与 Bluemix® 中 logmet 服务的连接经常断开。

monitor-1.0 功能部件限制

对于 monitor-1.0 功能部件,存在下列限制:
  • server.xml 文件中移除该功能部件之后,必须重新启动服务器以使 JAX-WS 应用程序正常运行。

requestTiming-1.0 功能部件限制

对于 requestTiming-1.0 功能部件,以下限制适用:
  • 使用 DayTrader 应用程序进行度量时,显示已激活的 requestTiming-1.0 功能部件对可能的最大应用程序吞吐量的负面影响百分比为 4%。虽然对您的应用程序的影响可能高于或低于此比例,但您还是应注意某些性能下降可能是显而易见的。

restConnector-1.0 功能部件限制

对于 restConnector-1.0 功能部件,存在下列限制:

  • 对于 restConnector-1.0 功能部件或包含 restConnector-1.0 的任何功能部件(例如,collectiveMember-1.0 collectiveController-1.0)的用户,如果他们想要运行包含定制 JAXRS 2.0 运行时的应用程序,那么他们必须将 jaxrs-2.0 功能部件添加至该服务器。

scim-1.0 功能部件限制

以下限制适用于 scim-1.0 功能部件:
  • 搜索 groups 时,不会检索 members 属性。
  • 搜索 users 时,不会检索 usersgroups 属性。
  • 不能对 usersgroups 属性设置规范类型 direct/indirect
  • 只能定义规范类型 work 的用户的一个 email 属性。
  • 只能定义规范类型 work 的用户的一个 ims 属性。
  • 不能设置或返回 SCIM 的扩展模式属性(例如,entitlementsrolesx509Certificates)。
  • userName 属性不能与过滤器中的一些其他属性配合使用。
  • 对于基本注册表和 SAF 注册表中的用户,只能设置 userNamedisplayNameidschemameta.locationgroups。userName 和 displayName 将具有相同值。
  • 基本注册表和 SAF 注册表的列示/查询的工作方式与 ldapRegistry 注册表不同。
  • prgtgeltleandor() 之类的运算符对基本注册表及 SAF 注册表不起作用。而且,对于基本注册表和 SAF 注册表,只能在过滤器中使用一个运算符。
  • 基本注册表和 SAF 注册表是只读的。
  • 创建 user 时,不能设置 groups 属性。

wmqJmsClient-1.1 功能部件限制

对于 wmqJmsClient-1.1 功能部件,存在下列限制:
  • 在 Windows 环境变量中,必须将 PATH 变量手动设置为指向 IBM MQ 安装 bin 目录。当应用程序使用“绑定”连接方式时,必须设置此 PATH 变量。
  • Liberty 中不支持 IBM MQ Java 类。它们不得与 IBM MQ Liberty 消息传递功能或通用 JCA 支持一起使用。有关更多信息,请参阅在 J2EE/JEE 环境中使用 WebSphere MQ Java 接口
  • wmqJmsClient-1.1 功能部件不支持 IBM MQ 资源适配器的 BINDINGS_THEN_CLIENT 传输类型。
  • wmqJmsClient-1.1 功能部件不包括高级消息传递安全性 (AMS) 功能部件。

wmqJmsClient-2.0 功能部件限制

对于 wmqJmsClient-2.0 功能部件,存在下列限制:
  • 在 Windows 环境变量中,必须将 PATH 变量手动设置为指向 IBM MQ 安装 bin 目录。当应用程序使用“绑定”连接方式时,必须设置此 PATH 变量。
  • Liberty 中不支持 IBM MQ Java 类。它们不得与 IBM MQ Liberty 消息传递功能或通用 JCA 支持一起使用。有关更多信息,请参阅在 J2EE/JEE 环境中使用 WebSphere MQ Java 接口
  • wmqJmsClient-2.0 功能部件不支持 IBM MQ 资源适配器的 BINDINGS_THEN_CLIENT 传输类型。

jpa-2.1 功能部件限制

对于 jpa-2.1 功能部件,存在下列限制:
  • 您不能使用备用 JPA 2.1 提供程序。如果您需要 2.1 支持,那么必须使用内置提供程序。
  • 您不能在应用程序中使用任何特定于 EclipseLink 的功能部件或注释。只能使用 javax.persistence API。

concurrent-1.0 功能部件限制

对于 concurrent-1.0 功能部件,以下限制适用:

对于类型为 securityContext 的线程上下文,不会传播未使用 JAAS 登录模块添加的主体集中的任何定制信息。例如,如果提交者的主体集包含 TAI 添加的定制主体,那么所传播主体集不会包含此定制主体。

sipServlet-1.1 功能部件限制

对于 sipServlet-1.1 功能部件,以下限制适用于会话启动协议 (SIP) 支持:
  • 不支持性能监控基础结构 (PMI) 的 SIP 计数器。
  • 不支持 SIP 摘要认证和 JSR 289 的 17 节(即,“安全性”节)。
  • 不支持建立集群和 SIP 对话持久性。

jacc-1.5 功能部件限制

对于 jacc-1.5 功能部件,以下配置被忽略:
  • 应用程序 ear 文件的 ibm-application-bnd.xml 文件或 ibm-application-bnd.xmi 文件中的授权信息(authorizations 属性的 users 和 groups 属性)。
  • server.xml 文件的授权信息(application-bnd 元素中的 security-role 属性的 user、group 和 special-subject 属性)。

用于指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=rwlp_restrict
文件名:rwlp_restrict.html