控制动态更新

可以通过配置来控制三种类型的动态更新:更改服务器配置;添加和移除应用程序;更新已安装的应用程序。 对于所有已部署的应用程序,您都可以配置是否启用应用程序监视,以及配置检查应用程序更新的频率。 对于 dropins 目录,您还可以配置目录的名称和位置,并选择是否部署该目录中的应用程序。

有关此任务

缺省情况下,会监视已部署的应用程序是否有更新,而且更新会动态地应用到正在运行的应用程序。 这既适用于通过配置条目部署的应用程序,也适用于从 dropins 目录部署的应用程序。 您可以通过在 server.xml 配置文件中设置 configapplicationMonitor 元素来更改这些缺省行为。 可以使用文本编辑器来执行此操作,也可以使用开发者工具并在服务器配置设计视图中选择配置管理服务应用程序监视器

另请参阅 Enterprise JavaBeans Lite 3.1Liberty KernelJava Servlets 3.0OSGi BlueprintconfigapplicationMonitor 元素的描述。

应用程序监视的缺省设置如下所示:
<applicationMonitor updateTrigger="polled" pollingRate="500ms" 
                    dropins="dropins" dropinsEnabled="true"/>
用于配置监视的缺省设置如下所示:
<config updateTrigger="polled" monitorInterval="500ms"/>
注:
  • updateTrigger 属性具有三个可能的值:
    polled
    运行时环境将使用 monitorInterval 属性指定的计时时间间隔来扫描 server.xml 文件以查找更改。
    mbean
    仅当通过对 MBean 的调用提示运行时环境执行此操作时,运行时环境才会查找更新。 开发者工具使用此方式来更新 server.xml 文件,除非您将其覆盖。 提供的 FileNotificationMBean MBean,调用它来触发应用程序更新。
    disabled
    不会动态应用更新。
  • 指定 pollingRate 属性或 monitorInterval 属性时,在数字后面包含时间单位:
    • ms(毫秒)
    • s(秒)
    • m(分钟)
    • h(小时)
  • dropins 属性指定用作 dropins 目录的目录的名称。
  • dropinsEnabled 属性是一个布尔属性,用于确定是否部署 dropins 目录中的应用程序。

过程

  • 配置服务器配置的动态更改。
    server.xml 文件或任何随附文件的更改,是由运行时环境检测并应用到活动配置。 您可以通过在 server.xml 文件中设置 config 元素来禁用此行为:
    <config updateTrigger="disabled"/>

    还可通过在 server.xml 文件中设置 config 元素以借助所提供 MBean 来控制对服务器配置的动态更新:

    <config updateTrigger="mbean"/>

    然后,可使用 FileNotificationMbean 通知服务器您要以动态方式重新处理的配置文件。

  • 配置应用程序的动态添加和移除。
    Liberty中部署应用程序中所述,可以通过两种机制在服务器运行时环境中动态添加和移除应用程序:
    • server.xml 文件中添加或移除应用程序条目。

      如果如上一步所述禁用服务器配置动态更改,那么添加或移除应用程序条目不会影响正在运行的服务器。 仅在下一次重新启动服务器时才应用更改。 如果您使用开发者工具来更新应用程序条目,那么会立即应用更改。

    • 通过将应用程序文件移入和移出 dropins 目录。
      可以通过在 server.xml 文件中设置 applicationMonitor 元素来控制此行为。 例如,要从 dropins 位置禁用应用程序的动态安装,请创建如下条目:
      <applicationMonitor dropinsEnabled="false"/>
  • 配置已安装应用程序的动态更新。
    缺省情况下,如果已部署的应用程序中添加、移除或修改任何文件,或者将整个应用程序替换为更新的版本,那么会自动停止先前版本,并启动新版本。 此过程适用于任何已部署的应用程序,无论该应用程序是在 dropins 目录中还是在 server.xml 文件中定义的位置。 您可以通过在 server.xml 文件中设置 applicationMonitor 元素来控制此行为。 例如,要禁用所有应用程序的动态更新,请创建如下所示的条目:
    <applicationMonitor updateTrigger="disabled"/>
  • 配置 dropins 目录的名称和位置。
    缺省情况下, dropins 目录为 ${server.config.dir}/dropins。 您可以通过在 server.xml 文件中设置 applicationMonitor 元素来更改此值。 对于位置,可以使用任何已知变量、bootstrap.properties 文件中的属性、绝对路径,或者相对于服务器目录的路径。 例如,下列两项设置指向同一位置:
    <applicationMonitor dropins="${server.config.dir}/applications" />
    <applicationMonitor dropins="applications" />
    限制: 对于 Web Service 应用程序,如果服务客户机和服务提供者不在同一应用程序中,并且服务提供者应用程序中的 WSDL 文件已更改,那么需要手动重新启动 Web Service 客户机应用程序以避免 WSDL 定义高速缓存问题。