現在地

第3回 wsadminコマンドで楽々設定&情報採取 WebSphere Application Server その1


第3回は、コマンドラインでのWebSphereのアプリケーションサーバーの設定、情報採取する方法について触れていきたいと思います。

WASのアプリケーションサーバーの設定と情報採取についてですが、例として、JVMの設定と情報採取をコマンドで実施してみたいと思います。

以下のコマンドで、構成要素を出力し、そこからJVMの構成情報を取得します。

print AdminConfig.types()

以下のように非常にたくさんの構成要素が出力されます。

wsadmin>print AdminConfig.types()
AccessPointGroup
Action
ActivationSpec
 
~ 中略 ~
 
JavaPersistenceAPIService
JavaProcessDef
JavaVirtualMachine
JavaVirtualMachinePreset
JobClass
 
~ 中略 ~
 
com.ibm.etools.webservice.wssecurity.Generator
com.ibm.etools.webservice.wssecurity.Generatorbinding
com.ibm.etools.webservice.wssecurity.WSSecurity
wsadmin>
 

JVMの情報は、「JavaVirtualMachine」で定義されています。前回までに構築したアプリケーションサーバー「appserver01」の設定情報を確認してみます。
以下のコマンドを実行し情報を取得することができます。

nodename="testNode01"
servername="appserver01"
server=AdminConfig.getid('/Node:'+nodename+'/Server:'+servername+'/')
 
javavirtualmachine=AdminConfig.list("JavaVirtualMachine", server)
print AdminConfig.show(javavirtualmachine)
 



wsadmin>nodename="testNode01"
wsadmin>servername="appserver01"
wsadmin>server=AdminConfig.getid('/Node:'+nodename+'/Server:'+servername+'/')
wsadmin>javavirtualmachine=AdminConfig.list("JavaVirtualMachine", server)
wsadmin>print AdminConfig.show(javavirtualmachine)
[bootClasspath []]
[classpath []]
[debugArgs -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777]
[debugMode false]
[disableJIT false]
[genericJvmArguments []]
[hprofArguments []]
[initialHeapSize 0]
[internalClassAccessMode ALLOW]
[maximumHeapSize 0]
[runHProf false]
[systemProperties [com.ibm.security.jgss.debug(cells/testCell01/nodes/testNode01/servers/appserver01|server.xml#Property_xxxxxxxx) com.ibm.security.krb5.Krb5Debug(cells/testCell01/nodes/testNode01/servers/appserver01|server.xml#Property_xxxxxxxx)]]
[verboseModeClass false]
[verboseModeGarbageCollection false]
[verboseModeJNI false]
wsadmin>
 

この時点では、「appserver01」への設定は特にされていないため、以下のように値を置き換えて、設定してみます。

  • 「メモリの初期値」 → initialheapsize
  • 「メモリの最大値」 → maximumheapsize
  • 「冗長ガーベッジ・コレクション」 → verbosemodegarbagecollection

設定としては、メモリの初期値と最大値を1024MB、冗長ガーベッジ・コレクションの設定をONにします。

nodeName="testNode01"
servername="appserver01"
server=AdminConfig.getid('/Node:'+nodename+'/Server:'+servername+'/')
 
javavirtualmachine=AdminConfig.list("JavaVirtualMachine", server)
verbosemodegarbagecollection="true"
initialheapsize=str("1024")
maximumheapsize=str("1024")
AdminConfig.modify(javavirtualmachine, "[[initialHeapSize "+initialheapsize+"] [maximumHeapSize  "+maximumheapsize+"] [verboseModeGarbageCollection "+verbosemodegarbagecollection+"]]")
AdminConfig.save()
print AdminConfig.show(javavirtualmachine)
 



wsadmin>nodename="testNode01"
wsadmin>servername="appserver01"
wsadmin>server=AdminConfig.getid('/Node:'+nodename+'/Server:'+servername+'/')
wsadmin>javavirtualmachine=AdminConfig.list("JavaVirtualMachine", server)
wsadmin>verbosemodegarbagecollection="true"
wsadmin>initialheapsize=str("1024")
wsadmin>maximumheapsize=str("1024")
wsadmin>AdminConfig.modify(javavirtualmachine,   "[[initialHeapSize   "+initialheapsize+"] [maximumHeapSize     "+maximumheapsize+"]    [verboseModeGarbageCollection "+verbosemodegarbagecollection+"]]")
''
wsadmin>AdminConfig.save()
''
wsadmin>
wsadmin>print AdminConfig.show(javavirtualmachine)
[bootClasspath []]
[classpath []]
[debugArgs -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777]
[debugMode false]
[disableJIT false]
[genericJvmArguments []]
[hprofArguments []]
[initialHeapSize 1024]
[internalClassAccessMode ALLOW]
[maximumHeapSize 1024]
[runHProf false]
[systemProperties [com.ibm.security.jgss.debug(cells/testCell01/nodes/testNode01/servers/appserver01|server.xml#Property_xxxxxxxx) com.ibm.security.krb5.Krb5Debug(cells/testCell01/nodes/testNode01/servers/appserver01|server.xml#Property_xxxxxxxx)]]
[verboseModeClass false]
[verboseModeGarbageCollection true]
[verboseModeJNI false]
wsadmin>

これでappserver01のメモリサイズの初期値、最大値が1024、冗長ガーベッジ・コレクションが有効な設定に変更されました。アプリケーションサーバーのプロセスが起動している場合は、再起動後に設定値が反映されます。

第3回ではコマンドラインでのアプリケーションサーバーの設定、情報採取についてご説明しました。第4回では、今回の構築コマンドを少し改良し、同時に複数台のアプリケーションサーバーの設定、情報採取する方法についてご説明したいと思います。