WebSphereで別のアプリサーバを立てる

運用中のWebアプリ*1でOutOfMemoryが出た。
作りが悪いのは置いといて(^_^;)、開発環境で再現テストして解析しようにも、WAS自体が落ちてしまって別のアプリまで止まってしまう。

これを機に、別のアプリサーバを立てて検証環境を作ることにする。いきなりはコワイので、VMWareで仮想環境を作り、お試し版のWAS6.1を入れて試行してみた。

その一 単純に別サーバを作成

IBMのinfoCenterのマニュアル*2をひっくりかえして調べた結果、下記のようにすれば良いことが分かった。

wsadminの起動
cd インストールディレクトリ/AppServer/profiles/AppServ01
bin/wsadmin.sh -user WAS管理ユーザ名 -password パスワード
nodeセット
set node [$AdminConfig getid /Node:ノード名/]
サーバ作成
$AdminConfig create Server $node {{name 2個目のサーバ名}
 {outputStreamRedirect {{fileName ログファイルのパス*3}}}}
構成情報保管
$AdminConfig save

しかし、この方法では問題があることが判明。

  • アプリ起動ができない
    • 管理コンソールからは「別サーバにあるので起動できない」と言われ、
    • wsadminからだと、そもそもサーバのオブジェクトが取得できなかった*4

2個目のサーバ設定・アプリ配備は問題なくできるのだが、アプリの起動・停止ができない。サーバの起動でアプリも起動しているので、ちゃんとアクセスはできるのだが…。

  • 管理コンソールのモニタが使えない

管理コンソール自体が1個目のサーバに配備されているためか、2個目のサーバのモニタができない。これだとJVMのメモリ監視がかったるい。第一、1個目のサーバが落ちてしまうと管理コンソール自体が使えない。2個目のサーバにも管理コンソールを配備すれば良いのだろうが、配備・設定が面倒くさい。

こんなわけで、今回の目的(サーバが落ちても他のアプリに影響しない)にはそぐわないと判断。

次回へ続く

*1:struts-JSP-Hibernate

*2:http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp 恐ろしく使いにくい。特にキーワード検索。同じ見出しで内容の違うページがたくさん並ぶが、各ページがマニュアルのどこに該当するのかが出ていないので、前後が全く分からない。結局アタリを付けて順次読むしかない

*3:相対パス起点は インストールディレクトリ/AppServer/profiles/AppServ01

*4:これは使い方が分かってないのだと思う