WAS6.0(体験版)用 単なる起動スクリプト

環境

IBM WebSphere Application Server6.0 こと WAS6.0の体験版を使ってみました。
(ちなみにWindowsサービスとしてはインストールしていません)
これまではTomcatを扱うことが多かったのですが、WASはかなり重いですね・・・。
まぁ両者はカテゴリが違うので、この2者を比較すること自体が適切ではありませんが。。

それは置いておくとして、実際に使用した結果、私の環境(Pentimu4-3Ghz/Memory-1GB)でのサーバの起動時間は
・Tomcat5.0.28:数秒
・WAS6.0Trial+fix6.0.0.3:1分以上
でした。
何とか起動が早くならないかなぁ・・・といろいろ試してみましたがいまひとつ結果に結びつかず。
その最中に起動スクリプトを追ってみたものの、呼び出しの階層が深く、どこに手をつけていいかがよくわからず・・・とりあえず、一発で起動できるスクリプトを作ってみよう、ということで作ったのがコレです。

SET WAS_HOME=C:\WebSphere
SET APPSERVER_NAME=AppServer
SET CELL_NAME=HOSTNAMENode01Cell
SET NODE_NAME=HOSTNAMENode01
SET SERVER_NAME=server1

REM # ヒープメモリ設定
REM # -Xms 初期ヒープサイズ(全体)
REM # -Xmx 最大ヒープサイズ(全体)
SET HEAPMEM_XMS=50m
SET HEAPMEM_XMX=256m

REM ##### ドライブレター取得
FOR /F "usebackq tokens=*" %%I IN (`ECHO %WAS_HOME%`) DO SET TARGET_DRIVE=%%~I
FOR /F "usebackq tokens=*" %%I IN (`ECHO %TARGET_DRIVE%`) DO SET TARGET_DRIVE=%TARGET_DRIVE:~0,2%

REM ##### 作業ディレクトリへ移動
%TARGET_DRIVE%
CD "%WAS_HOME%\%APPSERVER_NAME%\profiles\default"

"%WAS_HOME%\AppServer\java\bin\javaw.exe" ^
"-Duser.install.root=%WAS_HOME%/%APPSERVER_NAME%/profiles/default" ^
"-Dserver.root=%WAS_HOME%/%APPSERVER_NAME%/profiles/default" ^
"-Dwas.install.root=%WAS_HOME%/%APPSERVER_NAME%" ^
"-Dcom.ibm.itp.location=%WAS_HOME%/%APPSERVER_NAME%/bin" ^
"-Dws.ext.dirs=%WAS_HOME%/%APPSERVER_NAME%/java/lib;%WAS_HOME%/%APPSERVER_NAME%/profiles/default/classes;%WAS_HOME%/%APPSERVER_NAME%/classes;%WAS_HOME%/%APPSERVER_NAME%/lib;%WAS_HOME%/%APPSERVER_NAME%/installedChannels;%WAS_HOME%/%APPSERVER_NAME%/lib/ext;%WAS_HOME%/%APPSERVER_NAME%/web/help;%WAS_HOME%/%APPSERVER_NAME%/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime" ^
"-Xbootclasspath/p:%WAS_HOME%/%APPSERVER_NAME%/java/jre/lib/ext/ibmorb.jar;%WAS_HOME%/%APPSERVER_NAME%/java/jre/lib/ext/ibmext.jar -Xms%HEAPMEM_XMS% -Xmx%HEAPMEM_XMX%" ^
"-Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager" ^
"-Djava.util.logging.configureByServer=true" ^
"-Dibm.websphere.preload.classes=true" ^
"-Djava.library.path=%WAS_HOME%/%APPSERVER_NAME%/java/bin;%WAS_HOME%/%APPSERVER_NAME%/bin;%WAS_HOME%/%APPSERVER_NAME%/java/bin;%WAS_HOME%/%APPSERVER_NAME%/java/jre/bin" ^
"-Dcom.ibm.CORBA.ConfigURL=file:%WAS_HOME%/%APPSERVER_NAME%/profiles/default/properties/sas.client.props" ^
"-Dcom.ibm.SOAP.ConfigURL=file:%WAS_HOME%/%APPSERVER_NAME%/profiles/default/properties/soap.client.props" ^
-Dwas.debug.mode=true -Djava.compiler=NONE -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777 ^
-Xquickstart ^
-Xverify:none ^
-classpath "%WAS_HOME%\AppServer\properties;%WAS_HOME%\AppServer\lib\bootstrap.jar;%WAS_HOME%\AppServer\lib\j2ee.jar;%WAS_HOME%\AppServer\lib\lmproxy.jar;%WAS_HOME%\AppServer\lib\urlprotocols.jar" ^
com.ibm.ws.bootstrap.WSLauncher ^
com.ibm.ws.runtime.WsServer ^
"%WAS_HOME%\%APPSERVER_NAME%\profiles\default\config" "%CELL_NAME%" "%NODE_NAME%" "%SERVER_NAME%"

ECHO 起動処理 終了

  • このスクリプトを使用するに当たって
    • 変数「WAS_HOME」「APPSERVER_NAME」「CELL_NAME」「HOSTNAMENode01」「SERVER_NAME」は、インストール環境に合わせてそれぞれ設定してください。
    • 環境変数の指定が必要な場合は、適時「-D」オプションを追加してください。
    • 一応の高速化ということで「-Xquickstart」「-Xverify:none」のオプションを指定(効果は不明)
    • 「-Dwas.debug.mode=true」の行の記述は、リモートデバッグを行う場合に必要。「address」には、リモート接続に使用するTCPポート番号を指定する。
  • このスクリプトについて
    • Eclipse3.1+WTP の環境で、WAS起動時のパラメータを引っこ抜いて参考にしました。
    • 全てのパラメータ指定が必要なわけではないですが、ひとつの形ということで参考までに。
    • パラメータ指定部分の各行の行末(改行前)に、忘れずに「^」を記述する。これはDOSバッチにおける継続記号。VBでいうところの「_(改行)」、UnixShellでいうところの「\(改行)」と同じ。

起動時間はあまり変わらないかもしれませんが、管理コンソールの動作やデプロイの処理は軽くなったような気がします。