最初に……
同様の機能は jboss にも glassfish にもありますよってことで
「Parallel deployment」は、TomcatにおけるWebアプリケーションのバージョン管理機能です
http://www.atmarkit.co.jp/fjava/rensai4/tomcat7_03/01.html#02
とあるのですが、実際どのくらい使えるのか触ってみないとわからないですよねって事で触ってみた。
最初の登録
war ファイルにバージョン番号を特定の書式で書いておくとアプリケーションのバージョン管理ができます。
appName##version.war
pom には下記のように書いておくと楽ですね。
<build> <finalName>servlet-test##${project.version}</finalName><!-- こんな感じでバージョンを記述 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build>
で、tomcat にアップロードをすると
こんな感じでバージョンが反映されているのがわかります。
他のブラウザからアクセス
セッションが共有されないように他のブラウザからアクセスしてみると見事共存して動いていることがわかります
古い方のレスポンスが終わる前に古い方を削除してみる
古い方のコネクションが残ってるまま古い方を削除したらどうなるのでしょう?
$ rm -rf servlet-test\#\#1.0.0.war servlet-test\#\#1.0.0/
削除完了した後も古い方も動き続けています。
結論
アプリケーションのデプロイや削除は manage の画面からやっても
普通にコマンドラインで cp や rm でやっても同じ結果でした。
同じアプリが同時に二個動くのでメモリや CPU のコストもそうですが、static な値や DB へのコネクションなどが倍になったりする可能性もあるでそこは注意しないとですが、便利ですね!!!