[z/OS]

热部署和动态重新装入

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

准备工作

以下注意事项适用于本主题中的 xmi 文件引用:
支持的配置:为了IBM®扩展和绑定文件,.xmi或者.xml文件扩展名有所不同,具体取决于您是否使用预Java EE 5 应用程序或模块或Java™ EE 5 或更高版本的应用程序或模块。 一个IBM扩展或绑定文件被命名ibm-*-ext.xmi或者ibm-*-bnd.xmi其中 * 是扩展或绑定文件的类型,例如appapplicationejb-jar , 或者web。 以下条件适用:
  • 对于使用Java EE版本 5 之前的版本,文件扩展名必须是.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 文件扩展名。

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

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

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

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

关于本任务

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

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

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

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

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

程序

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

    应用程序文件位于您在安装应用程序时指定的目录中,或者,如果您未指定自定义目标目录,则位于默认目标目录中,应用程序服务器根目录/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在一组机器上使用WebSphere Application Server Network Deployment并且您正在更改特定节点上的应用程序,请禁用自动同步。
    1. 点击系统管理>节点代理>节点代理名称>文件同步服务在控制台导航树中。
    2. 文件同步服务,清除复选框自动同步并点击好的

    当你跑步时WebSphere Application Server在一组机器上使用WebSphere Application Server Network Deployment并且您在特定节点的扩展应用程序目录中的磁盘上更改了文件,则下次发生节点同步时,您可能会丢失这些更改。 在里面WebSphere Application Server Network Deployment环境中,部署管理器存储的配置是主副本,并且在该主副本和特定机器上的副本之间检测到的任何更改都会触发将主副本下载到节点。

  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 目录中的应用程序所作的手动更改。 要导出那些更改,您必须手动复制和移动应用程序文件。