「Java ES にゾーンを使用する理由」で論じた使用のシナリオ、および「Java ES コンポーネントのゾーン制限」で論じた Java ES コンポーネントの要件と制限に基づいて、Java ES インストーラは、Java ES 製品コンポーネントのインストールおよびアップグレードと共有コンポーネントの同期に適したゾーンサポートを提供します。問題となりうるインストールおよびアップグレードシナリオを回避するために、インストーラにはポリシーも実装されています。
セクション 3 で論じた制限に基づいて、Java ES インストーラは次の 2 つの Java ES 伝播ポリシーを実装しています。
製品コンポーネントが大域ゾーンにインストールされたなら、それらは非大域ゾーンへと伝播しないようにデフォルトで設定されます (Message Queue は例外)。そのため、それらのコンポーネントは非大域ゾーンのレジストリに表示されず、インストールされたコンポーネントにアクセスすることもできません。
製品コンポーネントのインストールなどの一環として共有コンポーネントが大域ゾーンにインストールされると、共有コンポーネントは非大域ゾーンに伝播するよう設定されます。それにより、それらのコンポーネントは非大域ゾーンのレジストリに表示され、インストールされた共有コンポーネントにアクセスできるようになります。このポリシーは、「Java ES 共有コンポーネントとゾーン」で説明されているように、ゾーン内では共有コンポーネントのバージョンを同期させなければならないという要件を実施するのに役立ちます。
Java ES インストーラでは、製品コンポーネントとともに、各製品コンポーネントをサポートするために必要な共有コンポーネントもインストールできます。選択した製品コンポーネントをインストールする前に、インストーラは現行バージョンと以前のバージョンの共有コンポーネントがあるかどうかを確認します。インストーラが選択したコンポーネントに必要な共有コンポーネントが古いバージョンであるか存在しないことを検出すると、インストーラは現在インストールされているすべての共有コンポーネントをアップグレードし、選択したコンポーネントに必要で存在していない共有コンポーネントをすべてインストールします。この動作は「共有コンポーネントの同期」の要件を満たすものであり、非ゾーンオペレーティングシステム、大域ゾーン、およびすべての非大域ゾーンに適用されます。
しかし、この動作には次の 2 つの例外があります。
疎ルートゾーンでは、一部の共有コンポーネントをインストールまたはアップグレードできないため (「共有コンポーネントと疎ルートゾーン」を参照)、それらの共有コンポーネントを大域ゾーンでインストールまたはアップグレードするまでインストールは停止します。インストーラは次のようなメッセージを表示します。「選択したコンポーネントに必要となる次の共有コンポーネントは、疎ルートゾーンではインストールまたはアップグレードできません。それらの共有コンポーネントを大域ゾーンでインストールまたはアップグレードしてから、続行してください。「すべての共有コンポーネント」オプションを使用してください。」詳細は、「すべての共有コンポーネント」を参照してください。
大域ゾーンでは、非大域ゾーンが存在する場合、現在インストールされているすべての共有コンポーネントをアップグレードして、選択したコンポーネントに必要で存在していない共有コンポーネントをインストールすることは行われず、インストーラは特定の製品コンポーネントにとって必要かどうかにかかわりなく、すべての Java ES 共有コンポーネントを同期します。こうすることで、すべての共有コンポーネントは非大域ゾーンに伝播されるので、非大域ゾーンでバージョンの異なる共有コンポーネントが混在することはありません。
Java ES Release 5 には、製品コンポーネントをアップグレードする新しい機能が実装されており、Application Server、Message Queue、HADB、および Java DB に限って有効です。Java ES インストーラは以前にインストールされたこれらの製品コンポーネントのリリースバージョンを検出し、それらがアップグレード可能であることを「コンポーネントの選択」ページに示します。これら 4 つの製品コンポーネントから選択すると、インストーラは新規インストールに使用するのと同種の論理を使用して、それらのコンポーネントをアップグレードします。
詳しく説明すると、選択した製品コンポーネントをアップグレードする前に、インストーラは現行バージョンと以前のバージョンの共有コンポーネントがあるかどうかを確認します。インストーラが選択したコンポーネントに必要な共有コンポーネントが古いバージョンであるか存在しないことを検出すると、インストーラは現在インストールされているすべての共有コンポーネントをアップグレードし、選択したコンポーネントに必要で存在していない共有コンポーネントをすべてインストールします。この動作は「すべての共有コンポーネント」で説明する要件を満たすものであり、非ゾーンオペレーティングシステム、大域ゾーン、およびすべての非大域ゾーンに適用されます。
しかし、この動作には次の 3 つの例外があります。
疎ルートゾーンでは、一部の共有コンポーネントをインストールまたはアップグレードできないため、それらの共有コンポーネントを大域ゾーンでインストールまたはアップグレードするまでアップグレード操作は停止します (詳細は、「共有コンポーネントと疎ルートゾーン」を参照)。インストーラは次のようなメッセージを表示します。「選択したコンポーネントに必要となる次の共有コンポーネントは、疎ルートゾーンではインストールまたはアップグレードできません。それらの共有コンポーネントを大域ゾーンでインストールまたはアップグレードしてから、続行してください。「すべての共有コンポーネント」オプションを使用してください。」(詳細は、「すべての共有コンポーネント」を参照)。
Application Server と Message Queue はともに Solaris オペレーティングシステムにバンドルされています。これらのいずれのバージョンも、疎ルートゾーンでは直接アップグレードできません。これらのバンドルされている 2 つのコンポーネントの詳細については、「製品コンポーネントの特殊ケース」を参照してください。
大域ゾーンでは、非大域ゾーンが存在する場合、現在インストールされているすべての共有コンポーネントのアップグレードと、インストールを選択したコンポーネントに必要で存在していない共有コンポーネントのインストールは行われず、その時点でインストールを選択したコンポーネントに必要かどうかにかかわらず、インストーラがすべての Java ES 共有コンポーネントを同期します。こうすることで、すべての共有コンポーネントは非大域ゾーンに伝播されるので、非大域ゾーンでバージョンの異なる共有コンポーネントが混在することはありません。
非大域ゾーンの製品コンポーネントのインストールやアップグレードを妨げる、数多くの特殊なケースや例外があります。このようなケースについては、「特殊なケースまたは例外」で説明しています。
すべての共有コンポーネントを同期させなければならない状況に対応した、すべての共有コンポーネントの同期オプションが提供されています。「すべての共有コンポーネント」オプションを選択すると、インストーラは特定の製品コンポーネントにとって必要かどうかにかかわりなく、現在インストールされているすべての共有コンポーネントをアップグレードし、存在していない共有コンポーネントがあればインストールします。このオプションは大域ゾーンと完全ルートゾーンには適用されますが、疎ルートゾーンには適用されません。
「すべての共有コンポーネント」オプションは、次のようなゾーンに基づいた 2 つのシナリオで必要になります。
製品コンポーネントの手動によるアップグレード「すべての共有コンポーネント」オプションは、Java ES インストーラではアップグレードできない製品コンポーネントをアップグレードするときに必要となる、共有コンポーネントのインストールとアップグレードを行うために必要です。
疎ルートゾーンでのインストールまたはアップグレード一部の共有コンポーネントは、デフォルトの疎ルートゾーンにインストールできません (詳細は、「製品コンポーネントのインストール」および「製品コンポーネントのアップグレード」を参照)。そのため、疎ルートゾーンでインストーラを実行する場合、関係する共有コンポーネントによっては、まず大域ゾーンで共有コンポーネントを同期することが必要になることがあります。このケースで必要な共有コンポーネントのインストールとアップグレードを実行するには、大域ゾーンで「すべての共有コンポーネント」オプションを使用します。
前述の動作を要約すると、次の表のようになります。この表には、共有コンポーネントに対する Java ES インストーラの処理が、ゾーンコンテキストまたコンポーネント選択ページでの選択にどのように左右されるかを示します。
表 A–1 共有コンポーネントに関連するインストーラ動作
ゾーンコンテキスト |
製品コンポーネントを選択した場合 |
すべての共有コンポーネントを選択した場合 |
---|---|---|
非ゾーンオペレーティングシステム |
現在インストールされているすべての共有コンポーネントをアップグレードする 選択した製品コンポーネントに必要で、存在していない共用コンポーネントをすべてインストールする |
現在インストールされているすべての共有コンポーネントをアップグレードする 特定の製品コンポーネントにとって必要かどうかにかかわりなく、存在しないすべての共有コンポーネントをインストールする |
大域ゾーン: 非大域ゾーンなし |
現在インストールされているすべての共有コンポーネントをアップグレードする 選択した製品コンポーネントに必要で、存在していない共用コンポーネントをすべてインストールする |
現在インストールされているすべての共有コンポーネントをアップグレードする 特定の製品コンポーネントにとって必要かどうかにかかわりなく、存在しないすべての共有コンポーネントをインストールする |
大域ゾーン: 非大域ゾーンあり |
現在インストールされているすべての共有コンポーネントをアップグレードする 特定の製品コンポーネントにとって必要かどうかにかかわりなく、存在しないすべての共有コンポーネントをインストールする |
現在インストールされているすべての共有コンポーネントをアップグレードする 特定の製品コンポーネントにとって必要かどうかにかかわりなく、存在しないすべての共有コンポーネントをインストールする |
完全ルートゾーン |
現在インストールされているすべての共有コンポーネントをアップグレードする 選択した製品コンポーネントに必要で、存在していない共用コンポーネントをすべてインストールする |
現在インストールされているすべての共有コンポーネントをアップグレードする 特定の製品コンポーネントにとって必要かどうかにかかわりなく、存在しないすべての共有コンポーネントをインストールする |
疎ルートゾーン |
読み取り専用ディレクトリ内の一部の共有コンポーネントをアップグレードまたはインストールできない。このような共有コンポーネントを検出すると、インストーラは中断し、大域ゾーンの共有コンポーネントを管理するようユーザーに指示します。 |
読み取り専用ディレクトリ内の一部の共有コンポーネントをアップグレードまたはインストールできない。そのため、インストーラは中断し、大域ゾーンの共有コンポーネントを管理するようユーザーに指示します。 |