Java ES 安装程序根据为什么对 Java ES 使用区域?中论述的使用方案和Java ES 组件的区域限制中论述的 Java ES 组件要求和限制,为 Java ES 产品组件的安装(和升级)以及共享组件的同步提供有条件的区域支持。安装程序中已经实现策略,以免在安装和升级方案中出现问题。
Java ES 安装程序基于第 3 节中论述的限制实现了两个 Java ES 传播策略:
如果将产品组件安装到全局区域中,则默认情况下设置为不会传播到非全局区域(Message Queue 例外)。因此,非全局区域既不能在其注册表中看到这些组件,也无权访问这些已安装的组件。
如果将共享组件安装到全局区域中(例如,作为产品组件安装的一部分),则设置为会传播到非全局区域中。因此,非全局区域会在其注册表中看到这些组件,而且有权访问已安装的共享组件。此策略有助于强制执行Java ES 共享组件和区域中所述的在任何区域内都对共享组件版本进行同步的要求。
Java ES 安装程序可以安装产品组件以及为每个产品组件提供支持所需的共享组件。在安装所选产品组件之前,安装程序会检查是否存在当前及先前版本的共享组件。如果安装程序检测到所选组件所需的共享组件属于先前版本或是缺少,则安装程序将会升级目前安装的所有共享组件,并安装所选组件所需的任何缺少的共享组件。该行为满足了同步共享组件的要求,它作用于非区域操作系统、全局区域以及所有非全局区域。
不过,此行为有两种例外情况:
在稀疏根区域中,有些共享组件无法进行安装或升级(参见共享组件和稀疏根区域),安装将会停止,直到已在全局区域中安装或升级了此类共享组件。安装程序会提供以下消息:“所选组件所需的以下共享组件无法在稀疏根区域中安装或升级。请在继续操作之前在全局区域中安装或升级这些共享组件。使用“所有共享组件”选项。”有关更多信息,参见同步所有共享组件。
在全局区域中,如果存在非全局区域,则无论任何特定产品组件是否需要,安装程序都会同步所有 Java ES 共享组件,而不是升级当前安装的所有共享组件及安装所选组件所需的任何缺少的共享组件。这会使所有共享组件都传播到非全局区域,从而确保非全局区域中不出现不同共享组件版本混合存在的情况。
Java ES 发行版本 5 中实现了一项新功能,以在几种特殊情况下升级以下产品组件:Application Server、Message Queue、HADB 和 Java DB。当 Java ES 安装程序检测到以上产品组件先前安装的发行版本时,会在“组件选择”页面中将它们标记为可升级。如果选择了这四个产品组件中的任何一个,安装程序将使用类似于全新安装所采用的逻辑对其进行升级。
需特别指出的是:在升级所选产品组件之前,安装程序会检查是否存在当前及先前版本的共享组件。如果安装程序检测到所选组件所需的共享组件属于先前版本或是缺少,则安装程序将会升级目前安装的所有共享组件,并安装所选组件所需的任何缺少的共享组件。该行为满足了同步所有共享组件中所述的要求,它作用于非区域操作系统、全局区域以及所有非全局区域。
不过,该行为有三种例外情况:
在稀疏根区域中,有些共享组件无法进行安装或升级,升级操作将会停止,直到已在全局区域中安装或升级了此类共享组件。(有关更多信息,参见共享组件和稀疏根区域)安装程序会提供以下消息:“所选组件所需的以下共享组件无法在稀疏根区域中安装或升级。请在继续操作之前在全局区域中安装或升级这些共享组件。使用“所有共享组件”选项。”(有关更多信息,参见同步所有共享组件。)
Application Server 和 Message Queue 均与 Solaris 操作系统捆绑在一起。其中任何一个版本都不能直接在稀疏根区域中升级。有关这两个捆绑组件的详细信息,参见产品组件特殊案例。
在全局区域中,如果存在非全局区域,则无论选择进行安装的任何组件是否需要,安装程序都会同步所有 Java ES 共享组件,而不是升级当前安装的所有共享组件及选择进行安装的组件所需的任何缺少的共享组件。这会使所有共享组件都传播到非全局区域,从而确保非全局区域中不出现不同共享组件版本混合存在的情况。
有许多特殊情况或例外可能会对非全局区域中产品组件的安装或升级产生干扰。特殊案例或例外情况中对这些情况做了介绍。
提供了一个共享组件同步选项,以满足必须同步所有共享组件情况的需要。如果选择“所有共享组件”选项,则无论任何特定产品组件是否需要,安装程序都会升级当前安装的所有共享组件并安装任何缺少的共享组件。此选项作用于全局区域和完全根区域,但不作用于稀疏根区域。
在以下两种基于区域的方案下,需要使用“所有共享组件”选项:
手动升级产品组件。对无法使用 Java ES 安装程序进行升级的产品组件进行升级时,需要使用“所有共享组件”选项来执行所需的共享组件安装和升级。
在稀疏根区域中安装或升级。某些共享组件无法在默认稀疏根区域中安装。(有关详细信息,参见安装产品组件和升级产品组件。)因此,视所涉及的共享组件而定,在稀疏根区域中运行安装程序时,可能必须先同步全局区域中的共享组件。在这种情况下,需要在全局区域中使用“所有共享组件”选项来执行共享组件安装和升级。
下表汇总了以上介绍的行为,其中说明了 Java ES 安装程序如何根据区域上下文以及在组件选择页面中选择的内容来处理共享组件。
表 A–1 涉及共享组件的安装程序行为
区域环境 |
所选的产品组件 |
所选的所有共享组件 |
---|---|---|
非区域操作系统 |
升级目前安装的所有共享组件 安装所选产品组件所需的任何缺少的共享组件 |
升级目前安装的所有共享组件 安装任何缺少的共享组件,无论任何特定的产品组件是否需要这些共享组件 |
全局区域:不包含任何非全局区域 |
升级目前安装的所有共享组件 安装所选产品组件所需的任何缺少的共享组件 |
升级目前安装的所有共享组件 安装任何缺少的共享组件,无论任何特定的产品组件是否需要这些共享组件 |
全局区域:存在非全局区域 |
升级目前安装的所有共享组件 安装任何缺少的共享组件,无论任何特定的产品组件是否需要这些共享组件 |
升级目前安装的所有共享组件并安装任何缺少的共享组件,无论任何特定的产品组件是否需要这些组件 |
完全根区域 |
升级目前安装的所有共享组件 安装所选产品组件所需的任何缺少的共享组件 |
升级目前安装的所有共享组件 安装任何缺少的共享组件,无论任何特定的产品组件是否需要这些共享组件 |
稀疏根区域 |
位于只读目录中的一些共享组件无法升级或安装。如果安装程序遇到此类共享组件,它会阻塞并指示用户在全局区域中管理这些共享组件。 |
位于只读目录中的一些共享组件无法升级或安装。因此,安装程序会阻塞并指示用户在全局区域中管理共享组件。 |