PMI mit dem Tool "wsadmin" aktivieren
Diese Seite beschreibt, wie Sie Performance Monitoring Infrastructure über die Befehlszeile anstatt über die Administrationskonsole aktivieren.
Informationen zu diesem Vorgang
Vorgehensweise
Sie können wsadmin für die folgenden Operationen der Perf-MBean verwenden:
/** Leistungsdaten für stats anfordern */
public void getConfig (ObjectName mbean);
/** Aktuelle Statistikgruppe zurückgeben */
public void getStatisticSet ();
/** PMI-Daten mit vordefinierten Statistikgruppen aktivieren.
Gültige Werte für die Statistikgruppe sind "basic", "extended", "all" und "none" */
public void setStatisticSet (String statisticSet);
/** Gibt die aktuelle angepasste Spezifikation als Zeichenfolge zurück */
public void getCustomSetString ();
/** PMI-Daten anpassen, für die eine detaillierte Steuerung aktiviert ist.
Mit dieser Methode können die Statistiken selektiv aktiviert und inaktiviert werden.
Das Format der angepassten Spezifikationszeichenfolge ist STATS_NAME=ID1,ID2,ID3,
getrennt durch einen Doppelpunkt (':'). STATS_NAME und IDs sind in den WS*Stat-Schnittstellen
des Pakets com.ibm.websphere.pmi.stat definiert.
Verwenden Sie den Stern (*), um alle Statistiken
im angegebenen PMI-Modul zu aktivieren. Wenn Sie beispielsweise alle Statistiken für die JVM und
die aktuelle Poolgröße für den Thread-Pool aktivieren möchten, verwenden Sie
jvmRuntimeModule=*:threadPoolModule=3,4. Die Zeichenfolge jvmRuntimeModule ist der Wert der Konstanten
WSJVMStats.NAME und threadPoolModule der Wert von WSThreadPoolStats.NAME.
*/
public void setCustomSetString (String customSpec, Boolean recursive);
/** stats für eine MBean anfordern */
public void getStatsObject (ObjectName mbean, Boolean recursive);
/** Instrumentierungsebene im Zeichenfolgeformat festlegen.
Diese Option sollte im Scripting für eine einfache Zeichenfolgenverarbeitung verwendet werden.
levelStr ist eine Liste mit Einträgen des Typs Modulname=Ebene, die durch ":" voneinander getrennt sind.
Anmerkung: Diese Methode ist in Version 6.0 veraltet.
*/
public void setInstrumentationLevel(String levelStr, Boolean recursive);
/** Instrumentierungsebene für alle Module der höchsten Ebene als Zeichenfolge anfordern
Diese Option sollte im Scripting für eine einfache Zeichenfolgenverarbeitung verwendet werden.
Anmerkung: Diese Methode ist in Version 6.0 veraltet.
*/
public String getInstrumentationLevelString();
/** PMI-Daten in einer Zeichenfolge zurückgeben
Anmerkung: Diese Methode ist in Version 6.0 veraltet.
*/
public String getStatsString(ObjectName on, Boolean recursive);
/** PMI-Daten in einer Zeichenfolge zurückgeben
Wird für PMI-Module und -Untermodule ohne direkte MBean-Zuordnungen verwendet. Anmerkung: Diese Methode ist in Version 6.0 veraltet.
*/
public String getStatsString(ObjectName on, String submoduleName, Boolean recursive);
/** Namen der Untermodule für die MBean zurückgeben
Anmerkung: Diese Methode ist in Version 6.0 veraltet.
*/
public String listStatMemberNames(ObjectName on);
/** Leistungsdaten für stats anfordern */
public void getConfig (ObjectName mbean);
/** Aktuelle Statistikgruppe zurückgeben */
public void getStatisticSet ();
/** PMI-Daten mit vordefinierten Statistikgruppen aktivieren.
Gültige Werte für die Statistikgruppe sind "basic", "extended", "all" und "none" */
public void setStatisticSet (String statisticSet);
/** Gibt die aktuelle angepasste Spezifikation als Zeichenfolge zurück */
public void getCustomSetString ();
/** PMI-Daten anpassen, für die eine detaillierte Steuerung aktiviert ist.
Mit dieser Methode können die Statistiken selektiv aktiviert und inaktiviert werden.
Das Format der angepassten Spezifikationszeichenfolge ist STATS_NAME=ID1,ID2,ID3,
getrennt durch einen Doppelpunkt (':'). STATS_NAME und IDs sind in den WS*Stat-Schnittstellen
des Pakets com.ibm.websphere.pmi.stat definiert.
Verwenden Sie den Stern (*), um alle Statistiken
im angegebenen PMI-Modul zu aktivieren. Wenn Sie beispielsweise alle Statistiken für die JVM und
die aktuelle Poolgröße für den Thread-Pool aktivieren möchten, verwenden Sie
jvmRuntimeModule=*:threadPoolModule=3,4. Die Zeichenfolge jvmRuntimeModule ist der Wert der Konstanten
WSJVMStats.NAME und threadPoolModule der Wert von WSThreadPoolStats.NAME.
*/
public void setCustomSetString (String customSpec, Boolean recursive);
/** stats für eine MBean anfordern */
public void getStatsObject (ObjectName mbean, Boolean recursive);
/** Instrumentierungsebene im Zeichenfolgeformat festlegen.
Diese Option sollte im Scripting für eine einfache Zeichenfolgenverarbeitung verwendet werden.
levelStr ist eine Liste mit Einträgen des Typs Modulname=Ebene, die durch ":" voneinander getrennt sind.
Anmerkung: Diese Methode ist in einer früheren Version veraltet. */
public void setInstrumentationLevel(String levelStr, Boolean recursive);
/** Instrumentierungsebene für alle Module der höchsten Ebene als Zeichenfolge anfordern
Diese Option sollte im Scripting für eine einfache Zeichenfolgenverarbeitung verwendet werden.
Anmerkung: Diese Methode ist in einer früheren Version veraltet. */
public String getInstrumentationLevelString();
/** PMI-Daten in einer Zeichenfolge zurückgeben
Anmerkung: Diese Methode ist in einer früheren Version veraltet.
*/
public String getStatsString(ObjectName on, Boolean recursive);
/** PMI-Daten in einer Zeichenfolge zurückgeben
Wird für PMI-Module und -Untermodule ohne direkte MBean-Zuordnungen verwendet.
Anmerkung: Diese Methode ist in einer früheren Version veraltet.
*/
public String getStatsString(ObjectName on, String submoduleName, Boolean recursive);
/** Namen der Untermodule für die MBean zurückgeben
Anmerkung: Diese Methode ist in einer früheren Version veraltet.
*/
public String listStatMemberNames(ObjectName on);
- DynaCache
- EJBModule
- EntityBean
- JDBCProvider
- J2CResourceAdapter
- JVM
- MessageDrivenBean
- ORB
- Server
- SessionManager
- StatefulSessionBean
- StatelessSessionBean
- SystemMetrics
- ThreadPool
- TransactionService
- WebModule
- Servlet
- WLMAppServer
- WebServicesService
- WSGW
Beispiel
Verwenden Sie die folgenden Jacl-Beispielbefehle mit dem Tool "wsadmin", um PMI-Daten abzurufen:
wsadmin>set perfName [$AdminControl completeObjectName type=Perf,*]
wsadmin>set perfOName [$AdminControl makeObjectName $perfName]
Operation getStatisticSet aufrufen
Verwenden Sie diese Methode, um die Statistikgruppe zu suchen, die derzeit verwendet wird:
wsadmin> $AdminControl invoke $perfName getStatisticSet
Diese Methode gibt einen der folgenden Werte zurück: basic, extended, all, none.
Operation setStatisticSet aufrufen
Verwenden Sie diese Methode, um die Überwachung mit einer Statistikgruppe zu aktivieren.
Die gültigen Werte für die Statistikgruppe sind basic, extended, all und 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
Operation getConfig aufrufen
Verwenden Sie diese Methode, um Informationen zu den Statistiken für eine bestimmte Komponente zu suchen.
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
Diese Methode gibt Folgendes zurück:
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}
Operation getCustomSetString aufrufen
Diese Operation zeigt die aktuelle Überwachungsspezifikation im Zeichenfolgeformat an:
wsadmin> $AdminControl invoke $perfName getCustomSetString
Beispielausgabe:
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
Diese Ausgabe zeigt an, dass die Statistik-IDs 1, 3 und 4 in der JVM-Komponente aktiviert sind. Beschreibungen der Statistik-IDs können Sie mit der zuvor beschriebenen Operation getConfig anfordern oder in der API-Dokumentation nachlesen. Die Ausgabe enthält die aktuelle Überwachungsspezifikation für den gesamten Server. Die einzelnen Module sind durch einen Doppelpunkt (:) voneinander getrennt. Das Zeichen > wird als Trennzeichen innerhalb des Moduls verwendet.
Operation setCustomSetString aufrufen
Mit dieser Operation können Statistiken selektiv aktiviert und inaktiviert werden. Im folgenden Befehl werden die Statistik-IDs 1, 2, 3 und 4 für das JVM-Modul aktiviert. Wenn Sie alle Statistik-IDs aktivieren möchten, verwenden Sie einen Stern (*).
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
Operation getStatsObject aufrufen
Diese Operation fordert die Statistiken für eine bestimmte MBean an. Das folgende Beispiel fordert die Statistiken für die JVM an:
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
}
Operation getInstrumentationLevelString aufrufen
Verwenden Sie invoke, weil dieser Befehl keine Parameter hat.
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
- Parameter setzen ("pmi=l" ist die einfachste Möglichkeit, alle Module auf die untere Ebene zu setzen).
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]
- Signaturen setzen.
wsadmin>set sigs [java::new {java.lang.String[]} 2]
wsadmin>$sigs set 0 java.lang.String wsadmin>$sigs set 1 java.lang.Boolean
- Methode aufrufen. Verwenden Sie invoke_jmx, weil dieser Befehl keine
Parameter hat.
wsadmin>$AdminControl invoke_jmx $perfOName setInstrumentationLevel $params $sigs
Operation getStatsString(ObjectName, Boolean) aufrufen
Wenn Sie den ObjectName der MBean kennen, können Sie die Methode durch Übergeben der richtigen Parameter aufrufen. Hier wird als Beispiel die JVM-MBean verwendet.
- Abfragezeichenfolge für MBean abrufen, z. B. für die JVM-MBean.
wsadmin>set jvmName [$AdminControl completeObjectName type=JVM,*]
- Parameter setzen.
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]
- Signaturen setzen.
wsadmin>set sigs [java::new {java.lang.String[]} 2] wsadmin>$sigs set 0 javax.management.ObjectName wsadmin>$sigs set 1 java.lang.Boolean
- Methode aufrufen.
wsadmin>$AdminControl invoke_jmx $perfOName getStatsString $params $sigs
{Description jvmRuntimeModule.desc} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Name jvmRuntimeModule} {Type MODULE}}} {Level 7} {Data {{{Id 4} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Name jvmRuntimeModule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeModule.upTime} {Id 4} {Description jvmRuntimeModule.upTime.desc} {Level 1} {Comment {The amount of time in seconds the JVM has been running}} {SubmoduleName null} {Type 2} {Unit unit.second} {Resettable false}}} {Time 1033670422282} {Value {Count 638} }} {{Id 3} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Name jvmRuntimeModule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeModule.usedMemory} {Id 3} {Description jvmRuntimeModule.usedMemory.desc} {Level 1} {Comment {Used memory in JVM runtime}} {SubmoduleName null} {Type 2} {Unit unit.kbyte} {Resettable false}}} {Time 1033670422282} {Value {Count 66239} }} {{Id2} {Descriptor {{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Name jvmRuntimeModule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeModule.freeMemory} {Id 2} {Description jvmRuntimeModule.freeMemory.desc} {Level 1} {Comment {Free memory in JVM runtime}} {SubmoduleName null} {Type 2} {Unit unit.kbyte} {Resettable false}}} {Time 1033670422282} {Value {Count 34356} }} {{Id 1} {Descriptor{{Node wenjianpc} {Server server1} {Module jvmRuntimeModule} {Name jvmRuntimeModule} {Type DATA}}} {PmiDataInfo {{Name jvmRuntimeModule.totalMemory} {Id 1} {Description 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} {HighWaterMark 100596} {MBean 38140.0} }}}}
Operation "getStatsString" (ObjectName, String, Boolean) aufrufen
Diese Operation nutzt einen zusätzlichen String-Parameter und wird für PMI-Module ohne passende MBeans verwendet. In diesem Fall wird die übergeordnete MBean mit einem String-Namen verwendet, der das PMI-Modul repräsentiert. Welche String-Namen in einer MBean verfügbar sind, können Sie durch das Aufrufen von listStatMemberNames feststellen. beanModule ist beispielsweise ein logisches Modul, das PMI-Daten für alle Enterprise JavaBeans zusammenfasst, für das es jedoch keine MBean gibt. Zum Abrufen der PMI-Daten im beanModule können Sie daher ObjectName und String der Server-MBean (beanModule) übergeben.
- Abfragezeichenfolge für MBean abrufen, z. B. für die
Server-MBean:
wsadmin>set mySrvName [$AdminControl completeObjectName type=Server,name=server1,node=wenjianpc,*]
- Parameter setzen.
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]
- Signaturen setzen.
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
- Methode aufrufen.
wsadmin>$AdminControl invoke_jmx $perfOName getStatsString $params $sigs
Operation listStatMemberNames aufrufen
- Abfragezeichenfolge für MBean abrufen, z. B. für Server:
wsadmin>set mySrvName [$AdminControl completeObjectName type=Server,name=server1,node=wenjianpc,*]
- Parameter setzen.
wsadmin>set params [java::new {java.lang.Object[]} 1] wsadmin>$params set 0 [$AdminControl makeObjectName $mySrvName]
- Signaturen setzen.
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
threadPoolModulewebAppModule
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"