wsadmin ツールのパフォーマンスに関するヒント
wsadmin ツールから最良の性能を得るためには、以下のヒントに従ってください。
wsadmin ツールのパフォーマンスに関するヒントを以下に示します。
デプロイメント・マネージャーの実行時のサービス保守レベル が、ノード・エージェントのサービス保守レベルよりも高い場合は、デプロイメント・マネージャーの bin ディレクトリーから、 wsadmin.sh または wsadmin.bat を実行する必要があります。
- wsadmin ツールを使用してスクリプトを起動すると、
新しい Java 仮想マシン (JVM) API で新規のプロセスが作成されます。
バッチ・ファイルまたはシェル・スクリプトから複数の wsadmin -c コマンドを含むスクリプトを使用すると、
これらのコマンドは、1 つの wsadmin -f コマンドを使用する場合よりも実行速度が遅くなります。
-f オプションの場合、インストール用に作成されるプロセスと JVM API が 1 つだけであり、
インストール用の Java クラスを 1 度しかロードしないので、より速く実行できます。
以下は、バッチ・ファイルから複数のアプリケーション・インストール・コマンドを実行する例を示しています。
注: UNIX オペレーティング・システムで、wsadmin -c オプションを使用してドル記号文字 ($) を含むコマンドを起動すると、コマンド行は変数の置換を試みます。 この問題を回避するには、円記号 (¥) を使用してドル記号をエスケープします。例えば、wsadmin -c "¥$AdminApp install ..." のようにします。Jacl を使用:
wsadmin -c "$AdminApp install c:/myApps/App1.ear {-appname appl1}" wsadmin -c "$AdminApp install c:/myApps/App2.ear {-appname appl2}" wsadmin -c "$AdminApp install c:/myApps/App3.ear {-appname appl3}"
Jacl を使用:
またはwsadmin.sh -c "¥$AdminApp install /myApps/App1.ear {-appname appl1}" wsadmin.sh -c "¥$AdminApp install /myApps/App2.ear {-appname appl2}" wsadmin.sh -c "¥$AdminApp install /myApps/App3.ear {-appname appl3}"
wsadmin.sh -c "$AdminApp install /myApps/App1.ear {-appname appl1}" wsadmin.sh -c "$AdminApp install /myApps/App2.ear {-appname appl2}" wsadmin.sh -c "$AdminApp install /myApps/App3.ear {-appname appl3}"
Jacl を使用:
wsadmin -c "$AdminApp install /home/myDir/myApps/App1.ear {-appname appl1}" wsadmin -c "$AdminApp install /home/myDir/myApps/App2.ear {-appname appl2}" wsadmin -c "$AdminApp install /home/myDir/myApps/App3.ear {-appname appl3}"
Jython を使用:
wsadmin -lang jython -c "AdminApp.install('c:/myApps/App1.ear', '[-appname appl1]')" wsadmin -lang jython -c "AdminApp.install('c:/myApps/App2.ear', '[-appname appl2]')" wsadmin -lang jython -c "AdminApp.install('c:/myApps/App3.ear', '[-appname appl3]')"
Jython を使用:
またはwsadmin.sh -lang jython -c "¥AdminApp.install('/myApps/App1.ear', '[-appname appl1]')" wsadmin.sh -lang jython -c "¥AdminApp.install('/myApps/App2.ear', '[-appname appl2]')" wsadmin.sh -lang jython -c "¥AdminApp.install('/myApps/App3.ear', '[-appname appl3]')"
wsadmin.sh -lang jython -c "AdminApp.install('/myApps/App1.ear', '[-appname appl1]')" wsadmin.sh -lang jython -c "AdminApp.install('/myApps/App2.ear', '[-appname appl2]')" wsadmin.sh -lang jython -c "AdminApp.install('/myApps/App3.ear', '[-appname appl3]')"
Jython を使用:
wsadmin -lang jython -c "AdminApp.install('/home/myDir/myApps/App1.ear', '[-appname appl1]')" wsadmin -lang jython -c "AdminApp.install('/home/myDir/myApps/App2.ear', '[-appname appl2]')" wsadmin -lang jython -c "AdminApp.install('/home/myDir/myApps/App3.ear', '[-appname appl3]')"
または、例えば Jacl を使用して、以下のように、コマンドを含む appinst.jacl ファイルを作成することもできます。
$AdminApp install c:/myApps/App1.ear {-appname appl1} $AdminApp install c:/myApps/App2.ear {-appname appl2} $AdminApp install c:/myApps/App3.ear {-appname appl3}
$AdminApp install /myApps/App1.ear {-appname appl1} $AdminApp install /myApps/App2.ear {-appname appl2} $AdminApp install /myApps/App3.ear {-appname appl3}
$AdminApp install /home/myDir/myApps/App1.ear {-appname appl1} $AdminApp install /home/myDir/myApps/App2.ear {-appname appl2} $AdminApp install /home/myDir/myApps/App3.ear {-appname appl3}
次に、 コマンド wsadmin -f appinst.jacl を使用してこのファイルを呼び出します。
または、Jython を使用して、以下のように、コマンドを含む appinst.py ファイルを作成することもできます。
AdminApp.install('c:/myApps/App1.ear', '[-appname appl1]') AdminApp.install('c:/myApps/App2.ear', '[-appname appl2]') AdminApp.install('c:/myApps/App3.ear', '[-appname appl3]')
AdminApp.install('/myApps/App1.ear', '[-appname appl1]') AdminApp.install('/myApps/App2.ear', '[-appname appl2]') AdminApp.install('/myApps/App3.ear', '[-appname appl3]')
AdminApp.install('/home/myDir/myApps/App1.ear', '[-appname appl1]') AdminApp.install('/home/myDir/myApps/App2.ear', '[-appname appl2]') AdminApp.install('/home/myDir/myApps/App3.ear', '[-appname appl3]')
次に、 コマンド wsadmin -lang jython -f appinst.py を使用してこのファイルを呼び出します。
次に、コマンド wsadmin.sh -lang jython -f appinst.py を使用してこのファイルを呼び出します。
- 大規模なインストール・システムで AdminControl queryNames コマンドおよび completeObjectName コマンドを使用する場合は、
慎重に行ってください。
例えば、1 台のマシンに数個の Bean しか存在しない場合には、
$AdminControl queryNames * コマンドのパフォーマンスは良好です。
スクリプト・クライアントが複数マシン環境でデプロイメント・マネージャーに接続される場合は、 コマンドの使用を、スクリプトがシステム内のすべての MBean のリストを取得する必要がある場合に限定してください。 ノード上に MBean が必要な場合は、 "$AdminControl queryNames node=mynode,*" を呼び出す方が簡単です。 JMX システム管理インフラストラクチャーは、最初の照会 * を実行するために、 システムに要求を転送します。 2 番目の照会 node=mynode,* は、特定のマシンをターゲットにしています。
- WebSphere® Application Server は分散システムであるため、 リモート要求を最小化すると、スクリプトのパフォーマンスは向上します。 複数の項目 (例えばサーバーなど) について、何らかのアクションまたは照会が必要な場合、 まず項目のリストを取得して、ローカルで繰り返すほうがより効率的です。 この手順は、稼働中の MBean 上で AdminControl オブジェクトが実行するアクションと、 構成オブジェクト上で AdminConfig オブジェクトが実行するアクションに適用されます。