wsadmin 도구를 사용하여 PMI 사용 가능
이 페이지를 사용하여 관리 콘솔 대신 명령행을 사용하여 PMI를 사용 가능하게 하는 방법을 학습하십시오.
이 태스크 정보
프로시저
다음과 같은 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);
/** 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 ":".
참고: 이전 버전에서는 이 메소드가 더 이상 사용되지 않습니다. */
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.
참고: 이전 버전에서는 이 메소드가 더 이상 사용되지 않습니다. */
public String getInstrumentationLevelString();
/** Return the PMI data in String
참고: 이전 버전에서는 이 메소드가 더 이상 사용되지 않습니다.
*/
public String getStatsString(ObjectName on, Boolean recursive);
/** Return the PMI data in String
Used for PMI modules/submodules without direct MBean mappings. 참고:
이전 버전에서는 이 메소드가 더 이상 사용되지 않습니다.
*/
public String getStatsString(ObjectName on, String submoduleName, Boolean recursive);
/** Return the submodule names if any for the MBean
참고: 이전 버전에서는 이 메소드가 더 이상 사용되지 않습니다.
*/
public String listStatMemberNames(ObjectName on);
- DynaCache
- EJBModule
- EntityBean
- JDBCProvider
- J2CResourceAdapter
- JVM
- MessageDrivenBean
- ORB
- 서버
- SessionManager
- StatefulSessionBean
- StatelessSessionBean
- SystemMetrics
- ThreadPool
- TransactionService
- WebModule
- Servlet
- WLMAppServer
- WebServicesService
- WSGW
예
PMI 데이터를 구하려면 wsadmin 도구와 함께 다음과 같은 샘플 Jacl 명령을 사용하십시오.
wsadmin>set perfName [$AdminControl completeObjectName type=Perf,*]
wsadmin>set perfOName [$AdminControl makeObjectName $perfName]
getStatisticSet 조작 호출
이 메소드를 사용하여 현재 적용되는 통계 세트를 찾으십시오.
wsadmin> $AdminControl invoke $perfName getStatisticSet
이 메소드는 기본, 확장, 모두, 없음 값 중 하나를 리턴합니다.
setStatisticSet 조작 호출
이 메소드를 사용하여 통계 세트를 사용한 모니터링을 사용 가능하게 하십시오.
유효한 통계 세트 값은 기본, 확장, 모두, 없음입니다.
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
- 매개변수를 설정하십시오. ("pmi=l"은 하위 레벨로 모든 모듈을 설정하는
간단한 방법입니다.)
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
- 메소드를 호출하십시오. 매개변수가 있으므로 invoke_jmx를 사용하십시오.
wsadmin>$AdminControl invoke_jmx $perfOName setInstrumentationLevel $params $sigs
getStatsString(ObjectName, Boolean) 조작 호출
MBean ObjectName을 아는 경우, 올바른 매개변수를 전달하여 메소드를 호출할 수 있습니다. 여기서는 JVM MBean이 한 예로 사용됩니다.
- MBean 조회 문자열을 가져오십시오(예: 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 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} }}}}
getStatsString (ObjectName, String, Boolean) 조작 호출
이 조작에는 추가 String 매개변수가 필요하고 일치하는 MBean이 없는 PMI 모듈에 사용됩니다. 이런 경우 상위 MBean은 PMI 모듈을 나타내는 String 이름으로 사용됩니다. MBean에서 사용할 수 있는 String 이름은 listStatMemberNames를 호출하여 찾을 수 있습니다. 예를 들어, beanModule은 모든 Enterprise JavaBeans에서 PMI 데이터를 집계하는 논리 모듈이지만 beanModule에 대한 MBean은 없습니다. 그러므로 서버 MBean ObjectName 및 String(beanModule)을 전달하여 beanModule의 PMI 데이터를 가져올 수 있습니다.
- MBean 조회 문자열을 가져오십시오(예: server MBean).
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 조작 호출
- MBean queryString을 가져오십시오(예: Server).
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"