7. バージョニング機能

アプリケーションのバージョニング機能を使用すると、同じ名前の複数のバージョンのアプリケーションを配備することができます。 これによって、アプリケーションのアップグレードとロールバックが簡単になります。

バージョニング機能は、複数のバージョンのアプリケーションが同時に有効にならないことを保証します。 そのため、アプリケーションのバージョンが異なるのであれば、同じコンテキストルートやJNDI名を持たせることができます。

また、アプリケーションの配備解除、停止、状態取得時に、アプリケーション名を指定する箇所でバージョンIDの部分にアスタリスク(*)をワイルドカードとして使用することができます。

7.1. バージョンIDの付与

アプリケーションにバージョンIDを付与するには、配備時のアプリケーション名の指定で、アプリケーション名の後にコロン(:)で区切ってバージョンIDを指定します。

otxadmin> deploy --name アプリケーション名:バージョンID アーカイブ名

具体例を挙げると、アーカイブ名が「hello.war」であるWebアプリケーションを、アプリケーション名を「hello」、バージョンIDを「1.0」として配備するには、次のようにします。

otxadmin> deploy --name hello:1.0 hello.war

バージョンIDは英数字で始まる必要があります。 また、バージョンIDには英数字およびアンダースコア(_)、ハイフン(-)、ピリオド(.)を含めることができます。 有効なバージョンIDの例は、以下のとおりです。

アプリケーションに対して設定や運用操作を行う際は、バージョンIDも含めた名前をアプリケーション名として指定する必要があります。 例えば、アプリケーション名が「hello」、バージョンIDが「1.0」であるアプリケーションを開始するには、次のようにします。

otxadmin> enable hello:1.0

7.2. 有効なバージョンの切り替え

有効化したいバージョンのアプリケーションを開始することで、有効なバージョンを切り替えることができます。

具体例として、以下のアプリケーションが配備されているとします。括弧の中はアプリケーションの状態を表しています。

この状態で、「hello:3.0-BETA」を有効にするには、次のようにします。

otxadmin> enable hello:3.0-BETA

コマンド実行後の状態は以下のようになります。

新たに配備するバージョンを有効化したい場合は、アプリケーションを開始状態で配備します。

具体例として、以下のアプリケーションが配備されているとします。括弧の中はアプリケーションの状態を表しています。

この状態で、「hello:3.0-BETA」という名前で新たに配備したアプリケーションを有効にするには、次のようにします。

otxadmin> deploy --name hello:3.0-BETA --enabled=true hello.war

コマンド実行後の状態は以下のようになります。

なお、deployコマンドの--enabledオプションのデフォルト値はtrueです。

7.3. バージョンIDのワイルドカード指定

アプリケーションの配備解除、停止、状態取得においては、バージョンIDにワイルドカードとしてアスタリスク(*)を指定することができます。 有効なワイルドカードを含むバージョンIDの例は、以下のとおりです。

アプリケーションの配備解除でバージョンIDにワイルドカードを指定すると、マッチする全てのバージョンが配備解除されます。
具体例として、以下のアプリケーションが配備されているとします。 括弧の中はアプリケーションの状態を表しています。

この状態で、以下のコマンドを実行します。

otxadmin> undeploy hello:1.*

上記のコマンドにより、「hello:1.0」と「hello:1.1」が配備解除されます。
以下のコマンドを実行すると、全てのバージョンが配備解除されます。

otxadmin> undeploy hello:*

アプリケーションの停止でバージョンIDにワイルドカードを指定すると、マッチするバージョンが停止されます。
具体例として、以下のアプリケーションが配備されているとします。括弧の中はアプリケーションの状態を表しています。

この状態で、以下のコマンドを実行すると、いずれのバージョンが有効状態であっても停止することができます。

otxadmin> disable hello:*

アプリケーションの状態取得でバージョンIDにワイルドカードを指定すると、マッチする全てのバージョンの状態が取得できます。
具体例として、以下のアプリケーションが配備されているとします。括弧の中はアプリケーションの状態を表しています。

この状態で、以下のコマンドを実行します。

otxadmin> show-component-status hello:1.*

上記のコマンドにより、以下のメッセージが表示されます。

otxadmin> show-component-status hello:1.*
hello:1.0 の状態は 無効(disabled) です。
hello:1.1 の状態は 有効(enabled) です。

7.4. 注意事項

バージョンIDを付与して配備を行うと、deployコマンドの--bindtypeオプション(名前サーバの登録方式)の既定値がtransient(一時的に扱う)になります(バージョンIDを付与しない場合の既定値はpersistent(永続的に扱う)です)。 これは、バージョンIDを付与することで異なるバージョン間で同じJNDI名を使用することが可能になり、その場合、名前サーバへの登録・登録解除をアプリケーションの配備・配備解除時ではなく、アプリケーションの起動・停止時に行う必要があるためです。 バージョンIDを付与した上で「名前サーバの登録方式」を「永続的に扱う」に設定する場合は、--bindtypeオプションでpersistentを明示的に指定してください。 また、統合運用管理ツールおよび運用管理コンソールで配備を行う場合は、バージョンIDを付与した場合でも「名前サーバの登録方式」の既定値に変更はありません。 必要があれば、配備の際に「名前サーバの登録方式」で「一時的に扱う」を選択してください。