[Linux][AIX][Windows][z/OS][IBM i]

热部署和动态重新装入

您可以对应用程序及其模块进行各种更改,而无须停止并重新启动服务器。 进行这些类型的更改称为热部署和动态重新装入

准备工作

以下注意事项适用于本主题中的 xmi 文件引用:
受支持的配置: 对于 IBM® 扩展和绑定文件, .xmi.xml 文件扩展名有所不同,具体取决于您是使用Java™ EE 5 之前的应用程序或模块,还是使用 Java EE 5 或更高版本的应用程序或模块。 IBM 扩展或绑定文件名为 ibm-*-ext.xmiibm-*-bnd.xmi ,其中 * 是扩展或绑定文件的类型,例如 appapplicationejb-jarweb。 存在下列条件:
  • 对于使用版本 5 之前的 Java EE 版本的应用程序或模块,文件扩展名必须为 .xmi
  • 对于使用 Java EE 5 或更高版本的应用程序或模块,文件扩展名必须为 .xml。 如果应用程序或模块随附 .xmi 文件,那么产品会忽略 .xmi 文件。

但是, Java EE 5 或更高版本的模块可以存在于包含Java EE 5 之前的文件并使用 .xmi 文件扩展名的应用程序中。

ibm-webservices-ext.xmiibm-webservices-bnd.xmiibm-webservicesclient-bnd.xmiibm-webservicesclient-ext.xmiibm-portlet-ext.xmi 文件继续使用 .xmi 文件扩展名。

[HP-UX][Solaris]限制: 当产品在这些操作系统上运行时,不支持热部署和动态重新装入功能。 关联 Java Development Kit (JDK) 内的 Java 归档 (JAR) 文件是内存映射的。 如果 Java 虚拟机 (JVM) 使用这些 JAR 文件时热部署和动态重新装入功能更新了这些 JAR 文件,那么这些文件会不一致,这会导致应用程序服务器崩溃。 如果在这些操作系统上更改应用程序,请不要使用热部署和动态重新装入功能。 请重新启动应用程序以反映更改。

本主题假定应用程序文件部署在服务器上,并且您想要升级这些文件。

请参阅 更新企业应用程序文件的方法 ,并确定热部署是否是更新应用程序文件的适当方法。 其他方法可能更简单,而热部署只适合于经验丰富的用户。

如果打算导出应用程序、根据应用程序配置生成插件或在将来执行其他应用程序管理,请不要使用热部署。 管理控制台或 wsadmin 应用程序管理功能无法识别使用热部署对应用程序文件作出的更改。 这些功能仅可识别管理程序(例如控制台或 wsadmin)在安装或更新应用程序或者对应用程序执行其他管理功能期间处理的应用程序文件。 应用程序管理功能无法识别通过热部署更改的文件。

要点: 请勿使用热部署来更新生产 Deployment Manager 受管单元中的组件。 热部署完全适合开发和测试,但是会引起不可接受生产环境风险。 完全或部分重新同步可能擦除热部署的组件。 而且,运行 restoreconfig 命令可能会覆盖对扩展应用程序文件的更改。 此外,不会在 WebSphere® Application Server的版本之间迁移热部署的组件。 要将新组件或模块添加到企业应用程序,重新组装应用程序 EAR 文件,使它具有新的组件或模块,然后重新部署 EAR 文件。

有关此任务

热部署是在不停止应用程序服务器进程并重新启动的情况下,添加新组件(如 WAR 文件、EJB Jar 文件、企业 Java bean、Servlet 和 JSP 文件)到运行服务器的过程。

动态重新装入是不重新启动服务器以使更改生效来更改现有组件的能力。 动态重新装入涉及:

  • 更改应用程序组件的实现,如更改 Servlet 的实现
  • 更改应用程序的设置,如更改 Web 模块的部署描述符

更新企业应用程序文件中描述的对已部署应用程序所作的更改相反,使用热部署或动态重新装入所作的更改不使用管理控制台或 wsadmin 脚本编制命令。 您必须直接操纵部署应用程序的服务器上的应用程序文件。

如果您要更新的应用程序部署到应用程序类装入器策略设置为 Single 的服务器上,那么您可能不能动态重新装入应用程序。 最少的情况下,您必须在更新应用程序后重新启动服务器。

过程

  1. 找到扩展的应用程序文件。

    应用程序文件位于安装应用程序时指定的目录中,或者如果未指定定制目标目录,那么位于缺省目标目录 app_server_root/installedApps/cell_name中。 您的 EAR 文件 ${APP_INSTALL_ROOT}/cell_name/application_name.ear 指向目标目录。 节点的 variables.xml 文件定义 ${APP_INSTALL_ROOT}。

    查找已展开的应用程序文件很重要,因为在安装应用程序的过程中, WebSphere Application Server 会将 EAR 文件的某些部分卸载到将运行应用程序的计算机的文件系统上。 这些扩展的文件是运行应用程序时,服务器所查看的文件。 如果您未找到扩展的应用程序文件,那么查看您应用程序的 deployment.xml 文件中的 binariesURL 属性。 此属性指定运行时用于查找应用程序文件的位置。

    对于有关热部署和动态重新装入的此信息的剩余部分,application_root 表示扩展应用程序文件的根目录。

  2. 找到应用程序元数据文件。 元数据文件包括部署描述符 (web.xmlapplication.xmlejb-jar.xml等) ,绑定文件 (ibm-web-bnd.xmiibm-app-bnd.xmi等) 和扩展文件 (ibm-web-ext.xmiibm-app-ext.xmi,等等)。

    应用程序的元数据 XML 文件可从两个位置之一装入。 元数据文件可从应用程序二进制文件的同一位置(如 application_root/META-INF)装入,或者可从 WebSphere 配置树(${CONFIG_ROOT}/cells/cell_name/applications /application_EAR_name/deployments/application_name/)装入。 应用程序安装期间所指定 useMetadataFromBinary 标志的值控制使用哪个位置。 如果指定了,元数据文件从应用程序二进制文件的同一位置装入。 如果未指定,元数据文件从配置树中的应用程序部署文件夹装入。

    重要信息: 您可以使用 useMetadataFromBinaries=true,使用热部署来更改应用程序的解压缩副本,并通过遵循本主题中的过程使更改在运行时生效。 但是,控制台或 wsadmin 应用程序管理功能无法识别使用热部署对应用程序文件作出的更改。 这些功能仅可识别原始应用程序文件,而无法识别通过热部署更改的文件。 如果打算导出应用程序、根据应用程序配置生成插件或在将来执行其他应用程序管理,请不要使用热部署。 热部署使您能够快速更改应用程序文件;它不支持应用程序的完整管理生命周期。

    对于此信息的剩余部分,metadata_root 表示所指定应用程序或模块的元数据文件的位置。

  3. 必需: 如果您正在使用 WebSphere Application Server Network Deployment 在一组机器上运行 WebSphere Application Server ,并且您正在特定节点上更改应用程序,请禁用 自动同步。
    1. 在控制台导航树中单击 系统管理 > 节点代理程序 > node_agent_name > 文件同步服务
    2. "文件同步服务 " 页面上,清除 自动同步 复选框,然后单击 确定

    在一组使用 WebSphere Application Server Network Deployment 的机器上运行 WebSphere Application Server 时,如果在磁盘上更改特定节点的扩展应用程序目录中的文件,那么在下次发生节点同步时,可能会丢失这些更改。 在 WebSphere Application Server Network Deployment 环境中, Deployment Manager 存储的配置是主副本,并且在该主副本与特定机器上的副本之间检测到的任何更改都会触发要下载到节点的主副本。

  4. 可选: 检查 应用程序的类装入器的设置页面上为 更新应用程序文件时重新装入类已更新文件的轮询时间间隔 指定的值。

    如果启用类的重新装入,并且轮询时间间隔大于零 (0),那么在更新应用程序后重新装入应用程序文件。 对于 Web 模块中的 JavaServer Pages (JSP) 文件来说,仅当 ibm-web-ext.xmi 文件中 jspAttributes 中的 IBM 扩展 jspReloadingEnabled 设置为 true 时,Web 容器才会重新装入 JSP 文件。 当在组装工具中编辑 Web 模块的扩展部署描述符时,您可将 jspReloadingEnabled 设置为 true

  5. 按需更改或添加下列组件或模块:
  6. 为使更改生效,您可能需要启动、停止或重新启动应用程序。

    启动或停止企业应用程序 提供有关使用管理控制台来启动,停止或重新启动应用程序的信息。

    使用 wsadmin 脚本编制启动应用程序使用 wsadmin 脚本编制停止应用程序 提供有关使用 wsadmin 脚本编制工具的信息。

  7. 如果在步骤 3 中禁用自动同步,那么再次启用自动同步:
    1. 返回到 文件同步服务 页面
    2. 选择 自动同步
    3. 单击确定

结果

将在服务器上更新应用程序文件。

因为您直接控制服务器上的应用程序文件,所以稍后可能无法使用管理控制台或 wsadmin 脚本命令来处理这些文件。 例如,如果您尝试使用“企业应用程序控制台”页上的导出来导出手动更改的应用程序,那么将不导出对 installedApps 目录中的应用程序所作的手动更改。 要导出那些更改,您必须手动复制和移动应用程序文件。