このページを参照して、管理コンソールの代わりにコマンド行を使用して、 Performance Monitoring Infrastructure を使用可能にする方法を学習します。
Perf MBean での以下の操作を wsadmin で使用できます。
/** Get performance data information for stats */ public void getConfig (ObjectName mbean); /** Returns the current statistic set */ public void getStatisticSet (); /** Enable PMI data using the pre-defined statistic sets. Valid values for the statistic set are "basic", "extended", "all", and "none" */ public void setStatisticSet (String statisticSet); /** Returns the current custom set specification as a string */ public void getCustomSetString (); /** Customizing PMI data that is enabled using fine-grained control. This method allows to enable or disable statistics selectively. The format of the custom set specification string is STATS_NAME=ID1,ID2,ID3 seperated by ':', where STATS_NAME and IDs are defined in WS*Stat interfaces in com.ibm.websphere.pmi.stat package. Use * to enable all the statistics in the given PMI module. For example, to enable all the statistics for JVM and active count, pool size for thread pool use: jvmRuntimeModule=*:threadPoolModule=3,4. The string jvmRuntimeModule is the value of the constant WSJVMStats.NAME and threadPoolModule is the value of WSThreadPoolStats.NAME. */ public void setCustomSetString (String customSpec, Boolean recursive); /** Get stats for an MBean*/ public void getStatsObject (ObjectName mbean, Boolean recursive); /** Set instrumentation level using String format. This should be used by scripting for an easy String processing. The level STR is a list of moduleName=Level connected by ":". NOTE: This method is deprecated in Version 6.0 */ public void setInstrumentationLevel(String levelStr, Boolean recursive); /** Get instrumentation level in String for all the top level modules. This should be used by scripting for an easy String processing. NOTE: This method is deprecated in Version 6.0 */ public String getInstrumentationLevelString(); /** Return the PMI data in String NOTE: This method is deprecated in Version 6.0 */ public String getStatsString(ObjectName on, Boolean recursive); /** Return the PMI data in String Used for PMI modules/submodules without direct MBean mappings. NOTE: This method is deprecated in Version 6.0 */ public String getStatsString(ObjectName on, String submoduleName, Boolean recursive); /** Return the submodule names if any for the MBean NOTE: This method is deprecated in Version 6.0 */ public String listStatMemberNames(ObjectName on);
wsadmin ツールで次のサンプル Jacl コマンドを使用して、 PMI データを取得します。
wsadmin>set perfName [$AdminControl completeObjectName type=Perf,*] wsadmin>set perfOName [$AdminControl makeObjectName $perfName]
getStatisticSet 操作の起動
このメソッドを使用して、現在有効な統計セットを取得します。
Wsadmin> $AdminControl invoke $perfName getStatisticSet
このメソッドは、 basic、extended、all、none の値のいずれかを戻します。
setStatisticSet 操作の起動
このメソッドを使用して、統計セットを使用したモニターを使用可能にします。
有効な統計セットの値には、basic、extended、 all、none があります。
Wsadmin> set params [java::new {java.lang.Object[]} 1] Wsadmin> $params set 0 [java::new java.lang.String extended] Wsadmin> set sigs [java::new {java.lang.String[]} 1] Wsadmin> $sigs set 0 java.lang.String Wsadmin> $AdminControl invoke_jmx $perfOName setStatisticSet $params $sigs
getConfig 操作の起動
このメソッドを使用して、 指定されたコンポーネントの統計に関する情報を取得します。
Wsadmin> set jvmName [$AdminControl completeObjectName type=JVM,*] Wsadmin> set params [java::new {java.lang.Object[]} 1] Wsadmin> $params set 0 [java::new javax.management.ObjectName $jvmName] Wsadmin> set sigs [java::new {java.lang.String[]} 1] Wsadmin> $sigs set 0 javax.management.ObjectName Wsadmin> $AdminControl invoke_jmx $perfOName getConfig $params $sigs
このメソッドは以下のものを戻します。
Stats type=jvmRuntimeModule, Description=The performance data from the Java virtual machine run time. {name=UpTime, ID=4, type=CountStatistic, description=The amount of time (in seconds) that the Java virtual machine has been running., unit=SECOND, level=low, statisticSet=basic, resettable=false, aggregatable=true} {name=UsedMemory, ID=3, type=CountStatistic, description=The amount of used memory (in KBytes) in the Java virtual machine run time., unit=KILOBYTE, level=low, statisticSet=basic, resettable=false, aggregatable=true} {name=FreeMemory, ID=2, type=CountStatistic, description=The free memory (in KBytes) in the Java virtual machine run time., unit=KILOBYTE, level=low, statisticSet=all, resettable=false, aggregatable=true} {name=HeapSize, ID=1, type=BoundedRangeStatistic, description=The total memory (in KBytes) in the Java virtual machine run time., unit=KILOBYTE, level=high, statisticSet=basic, resettable=false, aggregatable=true}
getCustomSetString 操作の起動
この操作は、 ストリング・フォーマットで現在のモニター仕様を提供します。
Wsadmin> $AdminControl invoke $perfName getCustomSetString
出力は、次のようになります。
jvmRuntimeModule=4,3,1:systemModule=2,1:threadPoolModule=4,3:thread PoolModule>HAManager.thread.pool=4,3:threadPoolModule>MessageListenerTh readPool=4,3:threadPoolModule>ORB.thread.pool=4,3:threadPoolModule>Serv let.Engine.Transports=4,3:threadPoolModule>TCS_DEFAULT=4,3:transactionM odule=4,19,16,18,3,7,6,1,14
この出力は、統計 ID の 1、3、および 4 が JVM コンポーネントで使用可能であることを示しています。統計 ID の説明は、 上記の getConfig 操作を使用するか、または API 資料を使用して参照することができます。出力には、サーバー全体の現在のモニター仕様が含まれています。 個々のモジュールは、: で分離されており、 モジュール内の分離文字として > が使用されています。
setCustomSetString 操作の起動
この操作は、選択的に統計を使用可能または使用不可にするために使用することができます。 以下のコマンドでは、統計 ID 1、2、3、および 4 が JVM モジュールに対して使用可能です。すべての統計 ID を使用可能にするには、 アスタリスク (*) を使用します。
Wsadmin> set params [java::new {java.lang.Object[]} 2] Wsadmin> $params set 0 [java::new java.lang.String jvmRuntimeModule=1,2,3,4] Wsadmin> $params set 1 [java::new java.lang.Boolean false] Wsadmin> set sigs [java::new {java.lang.String[]} 2] Wsadmin> $sigs set 0 java.lang.String Wsadmin> $sigs set 1 java.lang.Boolean Wsadmin> $AdminControl invoke_jmx $perfOName setCustomSetString $params $sigs
getStatsObject 操作の起動
この操作は、 指定された MBean の統計を取得するために使用されます。以下の例では、 JVM の統計を取得します。
Wsadmin> set jvmName [$AdminControl completeObjectName type=JVM,*] Wsadmin> set params [java::new {java.lang.Object[]} 2] Wsadmin> $params set 0 [java::new javax.management.ObjectName $jvmName] Wsadmin> $params set 1 [java::new java.lang.Boolean false] Wsadmin> set sigs [java::new {java.lang.String[]} 2] Wsadmin> $sigs set 0 javax.management.ObjectName Wsadmin> $sigs set 1 java.lang.Boolean Wsadmin> $AdminControl invoke_jmx $perfOName getStatsObject $params $sigs
Stats name=jvmRuntimeModule, type=jvmRuntimeModule# { name=HeapSize, ID=1, description=The total memory (in KBytes) in the Java virtual machine run time., unit=KILOBYTE, type=BoundedRangeStatistic, lowWaterMark=51200, highWaterMark=263038, current=263038, integral=2.494158617766E12, lowerBound =51200, upperBound=262144 name=FreeMemory, ID=2, description=The free memory (in KBytes) in the Java virtual machine run time., unit=KILOBYTE, type=CountStatistic, count=53509 name=UsedMemory, ID=3, description=The amount of used memory (in KBytes) in the Java virtual machine run time., unit=KILOBYTE, type=CountStatistic, count=209528 name=UpTime, ID=4, description=The amount of time (in seconds) that the Java virtual machine has been running., unit=SECOND, type=CountStatistic, count=83050 }
getInstrumentationLevelString 操作の起動
パラメーターがないため、invoke を使用します。
wsadmin>$AdminControl invoke $perfName getInstrumentationLevelString
beanModule=H:cacheModule=H:connectionPoolModule=H:j2cModule=H:jvmRu ntimeModule=H:orbPerfModule=H:servletSessionsModule=H:systemModule= H:threadPoolModule=H:transactionModule=H:webAppModule=H
wsadmin>set params [java::new {java.lang.Object[]} 2]
wsadmin>$params set 0 [java::new java.lang.String pmi=l] wsadmin>$params set 1 [java::new java.lang.Boolean true]
wsadmin>set sigs [java::new {java.lang.String[]} 2]
wsadmin>$sigs set 0 java.lang.String wsadmin>$sigs set 1 java.lang.Boolean
wsadmin>$AdminControl invoke_jmx $perfOName setInstrumentationLevel $params $sigs
getStatsString(ObjectName、Boolean) 操作の起動
MBean ObjectName が分かっている場合は、正しいパラメーターを渡してメソッドを起動できます。ここでは、JVM MBean を使用しています。
wsadmin>set jvmName [$AdminControl completeObjectName type=JVM,*]
wsadmin>set params [java::new {java.lang.Object[]} 2]
wsadmin>$params set 0 [$AdminControl makeObjectName $jvmName] wsadmin>$params set 1 [java::new java.lang.Boolean true]
wsadmin>set sigs [java::new {java.lang.String[]} 2] wsadmin>$sigs set 0 javax.management.ObjectName wsadmin>$sigs set 1 java.lang.Boolean
wsadmin>$AdminControl invoke_jmx $perfOName getStatsString $params $sigs
{Description jvmRuntimeModule.desc} {Descriptor {{Node wenjianpc} {Server server 1} {Module jvmRuntimeModule} {Name jvmRuntimeModule} {Type MODULE}}} {Level 7} { Data {{{Id 4} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRuntimeM odule} {Name jvmRuntimeModule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeModul e.upTime} {Id 4} {Description jvmRuntimeModule.upTime.desc} {Level 1} {Comment { The amount of time in seconds the JVM has been running}} {SubmoduleName null} {T ype 2} {Unit unit.second} {Resettable false}}} {Time 1033670422282} {Value {Coun t 638} }} {{Id 3} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRunt imeModule} {Name jvmRuntimeModule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeM odule.usedMemory} {Id 3} {Description jvmRuntimeModule.usedMemory.desc} {Level 1 } {Comment {Used memory in JVM runtime}} {SubmoduleName null} {Type 2} {Unit uni t.kbyte} {Resettable false}}} {Time 1033670422282} {Value {Count 66239} }} {{Id 2} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Nam e jvmRuntimeModule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeModule.freeMemor y} {Id 2} {Description jvmRuntimeModule.freeMemory.desc} {Level 1} {Comment {Fre e memory in JVM runtime}} {SubmoduleName null} {Type 2} {Unit unit.kbyte} {Reset table false}}} {Time 1033670422282} {Value {Count 34356} }} {{Id 1} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Name jvmRuntimeMod ule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeModule.totalMemory} {Id 1} {Des cription jvmRuntimeModule.totalMemory.desc} {Level 7} {Comment {Total memory in JVM runtime}} {SubmoduleName null} {Type 5} {Unit unit.kbyte} {Resettable false} }} {Time 1033670422282} {Value {Current 100596} {LowWaterMark 38140} {HighWaterM ark 100596} {MBean 38140.0} }}}}
getStatsString (ObjectName、 String、Boolean) 操作の起動
この操作は String パラメーターが追加され、 一致する MBeans を持たない PMI モジュールに対して使用されます。 ここでは、PMI モジュールを表す String 名を持つ親 MBean を使用しています。MBean で使用可能な String 名は、 listStatMemberNames を呼び出して検索できます。例えば beanModule は、すべての Enterprise JavaBeans について PMI データを集約する論理モジュールですが、beanModule に MBean はありません。このため、 サーバー MBean ObjectName および String (beanModule) を渡して、 beanModule の PMI データを取得することができます。
wsadmin>set mySrvName [$AdminControl completeObjectName type=Server,name=server1, node=wenjianpc,*]
wsadmin>set params [java::new {java.lang.Object[]} 3]
wsadmin>$params set 0 [$AdminControl makeObjectName $mySrvName]
wsadmin>$params set 1 [java::new java.lang.String beanModule] wsadmin>$params set 2 [java::new java.lang.Boolean true]
wsadmin>set sigs [java::new {java.lang.String[]} 3]
wsadmin>$sigs set 0 javax.management.ObjectName
wsadmin>$sigs set 1 java.lang.String wsadmin>$sigs set 2 java.lang.Boolean
wsadmin>$AdminControl invoke_jmx $perfOName getStatsString $params $sigs
listStatMemberNames 操作の起動
wsadmin>set mySrvName [$AdminControl completeObjectName type=Server,name=server1,
node=wenjianpc,*]
wsadmin>set params [java::new {java.lang.Object[]} 1] wsadmin>$params set 0 [$AdminControl makeObjectName $mySrvName]
wsadmin>set sigs [java::new {java.lang.String[]} 1] wsadmin>$sigs set 0 javax.management.ObjectName wsadmin>$AdminControlinvoke_jmx $perfOName listStatMemberNames $params $sigs
beanModule connectionPoolModule j2cModule servletSessionsModule threadPoolModule webAppModule
print "¥n------------------------------------------------------------------------------------------------------ " print "Obtain the Perf MBean ObjectName" print "------------------------------------------------------------------------------------------------------ " perfName = AdminControl.completeObjectName ('type=Perf,*') perfOName = AdminControl.makeObjectName (perfName) print perfOName print "------------------------------------------------------------------------------------------------------ ¥n" print "¥n------------------------------------------------------------------------------------------------------ " print "Invoke getStatisticSet operation " print "------------------------------------------------------------------------------------------------------ " print AdminControl.invoke (perfName, 'getStatisticSet') print "------------------------------------------------------------------------------------------------------ ¥n" print "¥n------------------------------------------------------------------------------------------------------ " print "Invoke setStatisticSet operation" print "------------------------------------------------------------------------------------------------------ " params = ['extended'] sigs = ['java.lang.String'] print AdminControl.invoke_jmx (perfOName, 'setStatisticSet', params, sigs) print "------------------------------------------------------------------------------------------------------ ¥n" print "¥n------------------------------------------------------------------------------------------------------ " print "Invoke getConfig operation" print "------------------------------------------------------------------------------------------------------ " jvmName = AdminControl.completeObjectName ('type=JVM,*') params = [AdminControl.makeObjectName (jvmName)] sigs = ['javax.management.ObjectName'] print AdminControl.invoke_jmx (perfOName, 'getConfig', params, sigs) print "------------------------------------------------------------------------------------------------------ ¥n" print "¥n------------------------------------------------------------------------------------------------------ " print "Invoke getCustomSetString operation" print "------------------------------------------------------------------------------------------------------ " print AdminControl.invoke (perfName, 'getCustomSetString') print "------------------------------------------------------------------------------------------------------ ¥n" print "¥n------------------------------------------------------------------------------------------------------ " print "Invoke setCustomSetString operation" print "------------------------------------------------------------------------------------------------------ " params = ['jvmRuntimeModule=1,2,3,4', java.lang.Boolean ('false')] sigs = ['java.lang.String', 'java.lang.Boolean'] print AdminControl.invoke_jmx (perfOName, 'setCustomSetString', params, sigs) print "------------------------------------------------------------------------------------------------------ ¥n" print "¥n------------------------------------------------------------------------------------------------------ " print "Invoke getStatsObject operation" print "------------------------------------------------------------------------------------------------------ " jvmName = AdminControl.completeObjectName ('type=JVM,*') params = [AdminControl.makeObjectName (jvmName), java.lang.Boolean ('false')] sigs = ['javax.management.ObjectName', 'java.lang.Boolean'] print AdminControl.invoke_jmx (perfOName, 'getStatsObject', params, sigs) print "------------------------------------------------------------------------------------------------------ ¥n" print "¥n------------------------------------------------------------------------------------------------------ " print "Invoke getInstrumentationLevelString operation" print "------------------------------------------------------------------------------------------------------ " print AdminControl.invoke (perfName, 'getInstrumentationLevelString') print "------------------------------------------------------------------------------------------------------ ¥n" print "¥n------------------------------------------------------------------------------------------------------ " print "Invoke setInstrumentationLevel operation - enable/disable PMI counters " print "------------------------------------------------------------------------------------------------------ " params = ['pmi=l', java.lang.Boolean ('true')] sigs = ['java.lang.String', 'java.lang.Boolean'] print AdminControl.invoke_jmx (perfOName, 'setInstrumentationLevel', params, sigs) print "------------------------------------------------------------------------------------------------------ ¥n" print "¥n------------------------------------------------------------------------------------------------------ " print "Invoke getStatsString(ObjectName, Boolean) operation" print "------------------------------------------------------------------------------------------------------ " jvmName = AdminControl.completeObjectName ('type=JVM,*') params = [AdminControl.makeObjectName (jvmName), java.lang.Boolean ('true')] sigs = ['javax.management.ObjectName', 'java.lang.Boolean'] print AdminControl.invoke_jmx (perfOName, 'getStatsString', params, sigs) print "------------------------------------------------------------------------------------------------------ ¥n" print "¥n------------------------------------------------------------------------------------------------------ " print "Invoke getStatsString (ObjectName, String, Boolean) operation" print "------------------------------------------------------------------------------------------------------ " mySrvName = AdminControl.completeObjectName ('type=Server,name=server1,node=wcsNode,*') params = [AdminControl.makeObjectName (mySrvName), 'beanModule', java.lang.Boolean ('true')] sigs = ['javax.management.ObjectName', 'java.lang.String', 'java.lang.Boolean') print AdminControl.invoke_jmx (perfOName, 'getStatsString', params, sigs) print "------------------------------------------------------------------------------------------------------ ¥n" print "¥n------------------------------------------------------------------------------------------------------ " print "Invoke listStatMemberNames operation" print "------------------------------------------------------------------------------------------------------ " mySrvName = AdminControl.completeObjectName ('type=Server,name=server1,node=wcsNode,*') params = [AdminControl.makeObjectName (mySrvName)] sigs = ['javax.management.ObjectName'] print AdminControl.invoke_jmx (perfOName, 'listStatMemberNames', params, sigs) print "------------------------------------------------------------------------------------------------------ ¥n"