「Java ES にゾーンを使用する理由」では、Java ES 製品コンポーネントによるゾーンの使用について論じました。製品コンポーネントは Java ES インストーラで明示的に選択することができ、それぞれ異なるゾーンにインストールして設定することで、希望する配備アーキテクチャーと機能を実現することができます。しかし、製品コンポーネントが依存する共有コンポーネントを使用することにより、Java ES を複数ゾーン環境に配備する方法にいくらかの制限が生じます。Java ES 共有コンポーネントとゾーンに関して、次の 2 つの問題があります。
Java ES 共有コンポーネントと Java ES 製品コンポーネントとの間には複雑な対話が 30 ほどもあり、それらをテストおよびサポートすることは難しいため、単一のオペレーティングシステムインスタンス内のすべての共有コンポーネントは必ず同じ Java ES バージョンに同期されなければなりません。言い換えると、非ゾーン環境にインストールされている、または Solaris 10 環境内の特定のゾーンにインストールされている、すべての Java ES 共有コンポーネントは同じバージョンでなければなりません。この要件によって、複数ゾーン環境で Java ES を使用できる方法に一定の制限が加えられます。
したがって、この同期要件は次のことをも意味します。
バージョンの異なる Java ES 共有コンポーネントは、別々のゾーンにしか配置できません。たとえば、Java ES Release 4 共有コンポーネントと Java ES Release 5 共有コンポーネントをそれぞれ別のゾーンにインストールすることはできますが、それらを組み合わせて 1 つのゾーンにインストールすることはできません。
あるゾーンのいずれかの共有コンポーネントをアップグレードするか、上位バージョンの新しい共有コンポーネントを導入する場合は、そのゾーンのすべての共有コンポーネントも同時にアップグレードする必要があります。共有コンポーネントは下位互換性が保たれている必要があるので、Release 4 製品コンポーネントが Release 5 共有コンポーネントと連動する上での問題はありません。たとえば、Release 5 製品コンポーネントが、1 つ以上の Release 4 製品コンポーネントが配置されているあるゾーンにインストールされているとします。Release 5 製品コンポーネントはいくつかの Release 5 共有コンポーネントを必要とするので、この場合の同期要件は、このゾーンに配置されているすべての Release 4 共有コンポーネントは Release 5 製品コンポーネントのインストールと同時に Release 5 にアップグレードする必要があるということになります。インストール中の Release 5 製品コンポーネントがゾーンにすでにインストールされているものとは異なる共有コンポーネントを必要とする場合であっても、この要件が適用されます。
共有コンポーネントが大域ゾーンにインストールされそこから伝播されるようになったなら (伝播ポリシーについては「Java ES 伝播ポリシー」を参照)、すべてのゾーンで共有コンポーネントの同期が保たれるよう細心の注意を払う必要があります。このことを怠ると、非大域ゾーンにある旧バージョンの共有コンポーネントと大域ゾーンから伝播された Release 5 共有コンポーネントとが混在しかねません。通常、「細心の注意を払う」とは、共有コンポーネントのライフサイクル管理が大域ゾーン内でのみ行われるようにすることを意味します。詳細については、表 A–2、および 「共有コンポーネントの特殊ケース」を参照してください。
共有コンポーネントの同期要件によって、Java ES インストーラが複数ゾーン環境で実行すべき内容に制限が課せられ (詳細は「Java ES インストーラでのゾーンサポート」を参照)、複数ゾーン環境で Java ES 製品コンポーネントをインストールおよびアップグレードする手順に影響が及びます。
複数ゾーン環境での Java ES の使用に影響するもう一つの問題は、疎ルートゾーンの読み取り専用ファイルシステムのために、多数の共有コンポーネントを疎ルートゾーンにインストールできないということです。そのため、ベースディレクトリが /usr (デフォルトで大域ゾーンによって共有されるディレクトリ) である共有コンポーネントを大域ゾーンにインストールして、疎ルートゾーンで使用できるようにする必要があります。
多数の Java ES 共有コンポーネントを疎ルートゾーンにインストールできないということは、それらの共有コンポーネントへの依存関係がある製品コンポーネントを疎ルートゾーンに正常にインストールする場合、まず共有コンポーネントを大域ゾーンにインストールして非大域ゾーンに伝播させなければならないということを意味します。