为什么对 Java ES 使用区域?集中论述了 Java ES 产品组件对区域的使用:即,可在 Java ES 安装程序中明确选择并可在不同区域中安装和配置以实现所需的部署体系结构和功能的那些组件。但是,产品组件所依赖的共享组件对于如何在多区域环境中部署 Java ES 方面施加了许多限制。关于 Java ES 共享组件和区域有两个问题:
测试和支持 Java ES 共享组件与 Java ES 产品组件之间的大量(30 个左右)复杂交互具有一定的困难,它要求单一操作系统实例中的所有共享组件均同步为同一个 Java ES 版本。换言之,安装在非区域环境或 Solaris 10 环境内任一区域中的所有 Java ES 共享组件必须属于同一个版本。这一要求对于如何在多区域环境中使用 Java ES 方面施加了一定的限制。
这一同步要求包含以下含义:
不同版本的 Java ES 共享组件只能驻留在不同的区域中。例如,您可在一个区域中安装 Java ES 发行版本 4 共享组件,而在另外一个区域中安装 Java ES 发行版本 5 共享组件,但不能将这二者合并到同一个区域中。
如果升级了区域中的任何共享组件或新引入了更高版本的任何共享组件,则还要必须同时升级该区域中的所有其他共享组件。(共享组件必须向后兼容,所以发行版本 4 产品组件与发行版本 5 共享组件可以协同工作。)例如,假定在驻留有一个或多个发行版本 4 产品组件的区域中安装一个发行版本 5 产品组件。由于发行版本 5 产品组件需要一定数量的发行版本 5 共享组件,所以同步要求意味着必须在安装发行版本 5 产品组件的同时将驻留在该区域中的所有发行版本 4 共享组件均升级到发行版本 5。即使要安装的发行版本 5 产品组件需要的共享组件与事先安装在该区域中的那些共享组件不同,也要这样做。
在全局区域中安装共享组件并从中向外传播时(参见Java ES 传播策略),需特别注意使所有区域中的共享组件保持同步。否则,可能会出现早期版本的共享组件与已从全局区域传播过来的发行版本 5 共享组件在非全局区域中并存的情况。(特别注意通常表示共享组件生命周期管理只在全局区域中进行。有关更多信息,参见表 A–2 和共享组件特殊案例。)
共享组件同步要求对 Java ES 安装程序在多区域环境中的行为施加了限制(有关更多信息,参见Java ES 安装程序中的区域支持),还会对在多区域环境中安装和升级 Java ES 产品组件的过程产生影响。
影响在多区域环境中使用 Java ES 的另一个问题是,由于稀疏根区域中存在只读文件系统,因而许多共享组件都无法安装在稀疏根区域中。因此,必须将基目录为 /usr(默认情况下由全局区域共享的目录)的那些共享组件安装在全局区域中,以便能够在稀疏根区域中使用。
许多 Java ES 共享组件不能安装在稀疏根区域中意味着:要将依赖于此类共享组件的产品组件成功安装到稀疏根区域中,必须首先将这些共享组件安装到全局区域中然后再传播到非全局区域。