« TeedaでマルチマスタDBの更新を行う | Main | SAStruts&Velocity »

2009.02.18

Seasarの環境の切替

以下の3つのフェーズ(環境)が存在することは、それなりによくあるのではないかと思います。

・各メンバーの開発環境⇒HOTdeployで
・テスト環境(テスト用サーバにデプロイ)⇒COOLdeployで
・本番環境(一般公開用サーバにデプロイ)⇒COOLdeployで

 テスト環境と本番環境はできるだけ揃えておくことが望ましいかと思いますが、必ずしもそれを準備できるわけでもなく(というか、完全に同一の環境を2つ準備できるようなケースはほとんどないのでは)。

 例えばコネクションプールの設定をテスト環境と本番環境とで切り替えたいような場合、env.txtファイル内の環境名を切り替えると同時に、定義ファイルの条件インクルードを組み合わせることで、実現できそうな感じ?

 デフォルトでは、環境名がct/ut以外の場合は全てCOOLdeployになりますので、

■開発環境:ct ⇒ jdbc_ct.diconを読み込ませるようにする
■テスト環境:test ⇒ jdbc_test.diconを読み込ませるようにする
■本番環境:product ⇒ jdbc.diconを読み込ませるようにする(jdbc_product.diconをあえて作らない)

といった感じでしょうか。あるいは、開発環境とテスト環境で使用するDBが同一(jdbc_ct.diconの内容とjdbc_test.diconの内容が完全に一致する場合)なのであれば、ct/testの時はjdbc.diconを読み込ませるようにして、本番環境用に別途jdbc_product.diconを定義するというのもありかもしれません(逆に、jdbc_ct.diconとjdbc_test.diconから共通の別diconファイルをincludeするというのもありかも)。

 ただ、いずれの場合もwarファイルのビルド時あるいはデプロイ時にenv.txtを差し替えるという処理を別途追加する必要はありますが。個人的には、test用とproduct用の2種類のwarファイルを作成するのはできれば避けたいところなので、本番環境にwarファイルをデプロイする際に、シェルスクリプトなどでenv.txtも書き換えてしまうという方法を採用しそうです。

#他にもっといい方法があるのかもしれませんが。

|

« TeedaでマルチマスタDBの更新を行う | Main | SAStruts&Velocity »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Seasarの環境の切替:

« TeedaでマルチマスタDBの更新を行う | Main | SAStruts&Velocity »