WAS 小ワザ集

第9回:startServer -script オプションの利用

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: WAS 小ワザ集

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:WAS 小ワザ集

このシリーズの続きに乞うご期待。

今回の小ワザとして、”startServer”コマンドの”-script”オプションを紹介します。開発環境・テスト環境の利用において、WebSphere Application Server (以下、WAS)設定値の修正、停止時間の短縮、Windows環境におけるスレッド・ダンプの容易な取得など、技術担当者の作業効率向上に役立つオプションです。

1. WASの起動方法

WASの起動方法としては、cron tab (UNIX系)あるいは、サービス(Windows)に登録し、OS起動時にWASを起動するという方法が多くのお客様で利用されています。
別の起動方法としては、Windows版の場合には、スタートメニューから「サーバーの始動」をクリックして起動する方法があります。(図1)

図1.WASサーバーの始動メニュー
図1.WASサーバーの始動メニュー

更に、”startServer”コマンド(“startServer.bat”あるいは”startServer.sh”)で起動する方法もあります。本番環境では1つ目の方法が使われるケースが多く、開発環境やテスト環境では2つ目あるいは3つ目の方法で起動している場合が多いでしょう。

2. startServerコマンド

“startServer”コマンドには、以下のようないくつかのオプションが提供されています。

C:\WebSphere80\AppServer\profiles\AppSrv01\bin>startServer.bat server1 -help
使用法: startServer <サーバー> [オプション]
        オプション: -nowait
                 -quiet
                 -logfile <ファイル名>
                 -replacelog
                 -trace
                 -script [<script filename>] [-background]
                 -timeout <秒数>
                 -statusport <ポート番号>
                 -profileName <プロファイル>
                 -recovery
                 -help

今回紹介する”-script”オプションでは、上記の使用法にあるように、”-script” の後ろにファイル名を指定することができ、指定したファイル名(.batあるいは .shと名付けると便利)で、起動用シェルスクリプト(バッチファイル)が生成されます(以下の例では、startup_Server1.batという名前を指定)。
ただし、”-script”オプションを指定してstartServerコマンドを実行した場合、実際にはサーバーは起動されず、起動用ファイルの作成のみが行われます。

C:\WebSphere80\AppServer\profiles\AppSrv01\bin>startServer.bat server1 
-script startup_Server1.bat
ADMU0116I: ツール情報は次のファイルに記録されています:
           C:\WebSphere80\AppServer\profiles\AppSrv01\logs\server1\startServer.log
ADMU0128I: AppSrv01 プロファイルを使用してツールを開始しています
ADMU3100I: サーバーの構成を読み取ります: server1
ADMU3300I: サーバーの起動スクリプトが作成されました: startup_Server1.bat

C:\WebSphere80\AppServer\profiles\AppSrv01\bin>

ファイル名を指定しない場合には、”start_server1.sh”あるいは”start_server1.bat”という名前で作成されます。

C:\WebSphere80\AppServer\profiles\AppSrv01\bin>startServer.bat server1 -script
ADMU0116I: ツール情報は次のファイルに記録されています:
C:\WebSphere80\AppServer\profiles\AppSrv01\logs\server1\startServer.log
ADMU0128I: AppSrv01 プロファイルを使用してツールを開始しています
ADMU3100I: サーバーの構成を読み取ります: server1
ADMU3300I: サーバーの起動スクリプトが作成されました: start_server1.bat

作成されたファイルには、WAS起動時に利用する各種設定が記述されています。
さて、ここまでで、オプションの指定の仕方を理解していただきましたが、そもそも、このオプションを利用するメリットは一体何でしょうか。以下にメリットを記します

3. startServer -scriptオプションの利点

“-script” オプションのメリットとして、大きく2つが挙げられます。以下にそれらについて説明をいたします。
メリットの1つめとしては、テキスト・エディターで容易に修正可能な点が挙げられます。

  • 作成されたファイルはテキストファイルなので、記述されている各種オプションパラメーターの修正が容易です。
  • 起動パラメーター設定やJVM関連パラメーター設定(JVMヒープサイズやGCオプションなど)を試行錯誤しながら適切な値を模索する場合(設定値の修正を何度も繰り返し試す場合)には、管理コンソールでのGUI操作に比べると効率的です。

ただし、”-script”オプションを指定して作成された起動スクリプトに対する修正は、各種WAS構成ファイルには反映されません。従いまして、(スクリプト内の値の修正、サーバー再起動を繰り返し、試行錯誤の後に決定した)値を各種WAS構成ファイルに反映させるには、WAS管理コンソールから修正を行う必要がございます。また、”-script”オプションを指定して起動スクリプトを生成した後に、管理コンソールから行った変更は起動スクリプトに反映はされませんので、スクリプトを生成し直す必要がございます。

メリットの2つめは、WASプロセスをフォアグラウンドで起動できる点です。

  • コマンド実行シェル(コマンドプロンプト)に標準出力・標準エラーが表示されるため、Windows環境においては、ログのモニタリングが容易です。
  • WASの停止時間を短縮できます (Ctrl + C で強制終了)。
     
  • スレッド・ダンプ(javacore)を容易に生成できる(Crtl + Break で生成)
    killコマンドが使えないWindows環境においてはとても便利です。
     

4. まとめ

今回の小ワザとして、startServerコマンドの”-script”オプションを紹介しました。開発環境やテスト環境において、「WASの起動オプションやJVM設定などを試行錯誤しながら設定値の修正を行い、その都度、WASの再起動を実施する」といった作業を実施される場合には、このオプションを試してみてはいかがでしょうか。

5. 参考

startup_Server1.bat ファイル

@REM startup_Server1.bat
@REM Generated: Sat Nov 19 09:33:11 GMT+09:00 2011

@setlocal
@echo off

@REM Bootstrap values ...
cd C:\WebSphere80\AppServer\profiles\AppSrv01\bin
call "C:\WebSphere80\AppServer\profiles\AppSrv01\bin\setupCmdLine.bat"
@REM For debugging the server process:
@REM set DEBUG=-Djava.compiler=NONE -Xdebug –Xnoagent 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7777

@REM Environment Settings
SET PATH=%WAS_PATH%


@REM Launch Command

"C:\WebSphere80\AppServer/java/bin/java"  %DEBUG% "-Declipse.security" 
"-Dosgi.install.area=C:\WebSphere80\AppServer" 
"-Dosgi.configuration.area=C:\WebSphere80\AppServer\profiles
\AppSrv01/servers/server1/configuration" 
"-Dosgi.framework.extensions=com.ibm.cds,com.ibm.ws.eclipse.adaptors" 
"-Xshareclasses:name=webspherev80,nonFatal" "-Dsun.reflect.inflationThreshold=250" 
"-Xbootclasspath/p:C:\WebSphere80\AppServer/java/jre/lib/ext/ibmorb.jar;
C:\WebSphere80\AppServer/java/jre/lib/ext/ibmext.jar" "-classpath" 
"C:\WebSphere80\AppServer\profiles\AppSrv01/properties;
C:\WebSphere80\AppServer/properties;
C:\WebSphere80\AppServer/lib/startup.jar;C:\WebSphere80\AppServer/lib/bootstrap.jar;
C:\WebSphere80\AppServer/lib/jsf-nls.jar;
C:\WebSphere80\AppServer/lib/lmproxy.jar;C:\WebSphere80\AppServer/lib/urlprotocols.jar;
C:\WebSphere80\AppServer/deploytool/itp/batchboot.jar;
C:\WebSphere80\AppServer/deploytool/itp/batch2.jar;
C:\WebSphere80\AppServer/java/lib/tools.jar" 
"-Dibm.websphere.internalClassAccessMode=allow" 
"-verbose:gc" "-Xms512m" "-Xmx512m" "-Xscmaxaot4M" "-Xscmx60M" 
"-Dws.ext.dirs=C:\WebSphere80\AppServer/java/lib;
C:\WebSphere80\AppServer\profiles\AppSrv01/classes;C:\WebSphere80\AppServer/classes;
C:\WebSphere80\AppServer/lib;C:\WebSphere80\AppServer/installedChannels;
C:\WebSphere80\AppServer/lib/ext;C:\WebSphere80\AppServer/web/help;
C:\WebSphere80\AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime" 
"-Dderby.system.home=C:\WebSphere80\AppServer/derby" 
"-Dcom.ibm.itp.location=C:\WebSphere80\AppServer/bin" 
"-Djava.util.logging.configureByServer=true" 
"-Duser.install.root=C:\WebSphere80\AppServer\profiles\AppSrv01" 
"-Djava.ext.dirs=C:\WebSphere80\AppServer/tivoli/tam;
C:\WebSphere80\AppServer/java/jre/lib/ext" 
"-Djavax.management.builder.initial=com.ibm.ws.management.PlatformMBeanServerBuilder" 
"-Dpython.cachedir=C:\WebSphere80\AppServer\profiles\AppSrv01/temp/cachedir" 
"-Dwas.install.root=C:\WebSphere80\AppServer"
"-Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager" 
"-Dserver.root=C:\WebSphere80\AppServer\profiles\AppSrv01" 
"-Dcom.ibm.security.jgss.debug=off" 
"-Dcom.ibm.security.krb5.Krb5Debug=off" "-Dcom.ibm.xml.xlxp.jaxb.opti.level=3" 
"-Djava.library.path=C:\WebSphere80\AppServer/lib/native/win/x86_32/;
C:\WebSphere80\AppServer\java\jre\bin\default;C:\WebSphere80\AppServer\java\jre\bin;.;
C:\WebSphere80\AppServer\lib\native\win\x86_32;C:\WebSphere80\AppServer\bin;
C:\WebSphere80\AppServer\java\bin;C:\WebSphere80\AppServer\java\jre\bin;
C:\Program Files\VMware\VMware vSphere CLI\Perl\site\bin;
C:\Program Files\VMware\VMware vSphere CLI\Perl\bin;C:\WebSphere70\AppServer\java\bin;
C:\Program Files\Intel\VTune\CGGlbCache;C:\Program Files\Intel\VTune\Shared\Bin;
C:\Program Files\Common Files\Intel\Shared Files\IDVC;
C:\Program Files\Intel\VTune\Analyzer\Bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\Program Files\IBM\Personal Communications\;
C:\Program Files\IBM\Trace Facility\;C:\Program Files\ThinkPad\ConnectUtilities;
C:\Program Files\Common Files\Lenovo;C:\Program Files\Intel\WiFi\bin\;C:\SQLLIB\BIN;
C:\SQLLIB\FUNCTION;C:\SQLLIB\SAMPLES\REPL;C:\Program Files\QuickTime\QTSystem\;
C:\Program Files\IBM\ISELCrypto\;C:\spec\ant\apache-ant-1.7.1\bin;
C:\Program Files\VMware\VMware OVF Tool\;C:\usr\bin;c:\vslick\win;
C:\Program Files\IBM\CMVCDC50;C:\Program Files\IBM\ISELCrypto\;;C:\Notes;" 
"-Djava.endorsed.dirs=C:\WebSphere80\AppServer/endorsed_apis;
C:\WebSphere80\AppServer/java/jre/lib/endorsed;C:\WebSphere80\AppServer\endorsed_apis;
C:\WebSphere80\AppServer\java\jre\lib\endorsed" 
"-Djava.security.auth.login.config=
C:\WebSphere80\AppServer\profiles\AppSrv01/properties/wsjaas.conf" 
"-Djava.security.policy=
C:\WebSphere80\AppServer\profiles\AppSrv01/properties/server.policy" 
"com.ibm.wsspi.bootstrap.WSPreLauncher" "-nosplash" "-application" 
"com.ibm.ws.bootstrap.WSLauncher" "com.ibm.ws.runtime.WsServer" 
"C:\WebSphere80\AppServer\profiles\AppSrv01\config" 
"AA2256800Node05Cell" "AA2256800Node01" "server1"

@endlocal

ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=WebSphere
ArticleID=779269
ArticleTitle=WAS 小ワザ集: 第9回:startServer -script オプションの利用
publish-date=12092011