1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...
:

This requires to develop a kind of agent plugin or script which collects information directly from server, after setup the java enviroment.

Information about this is described here:

http://php.ptagis.org/wiki/index.php/Monitor_Weblogic_through_the_command_line

Module data

Monitor Weblogic through the command line 

Everything that is visible through the Weblogic admin console (http://reedi:7001/console) can be accessed through a command line java tool. This tool can be used to gather data about the weblogic servers via scripting. 

There are at least two ways to get runtime monitoring data about weblogic processes. This document covers the use of the java classes that get information from management beans (mbeans). There is also a java tool that allows for browsing the mbean tree like an ftp client: Weblogic Scripting Tool (WLST). 

Set the java environment 

There is a script for setting the CLASSPATH and PATH so that this tool can work. On pitblade, this script is /dsk2/local/bea81/weblogic81/server/bin/setWLSEnv.sh 

pitblade:II:root: > source setWLSEnv.sh 
CLASSPATH=/dsk2/local/bea81/jdk141_02/lib/tools.jar:/dsk2/local/bea81/weblogic81/server/lib/weblogic_sp.jar:
/dsk2/local/bea81/weblogic81/server/lib/weblogic.jar:/dsk2/local/bea81/weblogic81/server/lib/ojdbc14.jar:
:/dsk1/AdvIngres/ing26/ingres/lib/edbc.jar:/dsk1/AdvIngres/ing26/ingres/lib/edbc.jar 

PATH=/dsk2/local/bea81/weblogic81/server/bin:/dsk2/local/bea81/jdk141_02/jre/bin:/dsk2/local/bea81/jdk141_02/bin:
/dsk1/AdvIngres/ing26/ingres/bin:/dsk1/AdvIngres/ing26/ingres/utility:/dsk1/AdvIngres/ing26/ingres/files:
/dsk1/AdvIngres/ing26/ingres/lib:/dsk1/AdvIngres/ing26/ingres/SUNWspro/bin:/sbin:/usr/sbin:/bin:/usr/bin:
/usr/ucb:/etc:/usr/etc:/opt/fw/bin:/var/adm/psmfc/bin:/usr/openwin/bin:/usr/local/bin:/usr/psmfc/bin:
/usr/ccs/bin:/usr/lib/nis:/opt/gnu/bin:/usr/local/bin 

Your environment has been set. 

Verify that the java environment is set properly 

Success 

pitblade:II:root: > java weblogic.Admin 

weblogic.Admin is a command-line utility for managing WebLogic Server. Try: 

weblogic.Admin help LIFECYCLE Starting, stopping, discovering servers 

weblogic.Admin help INFO Retrieving info about WebLogic Server 

weblogic.Admin help JDBC Working with JDBC connection pools 

weblogic.Admin help MBEAN Working with WebLogic Server MBeans 

weblogic.Admin help CLUSTER Working with clusters 

weblogic.Admin help ALL Help for all commands 

Usage: java [<SSL trust options>] weblogic.Admin 
[ [-url | -adminurl] [<protocol>://]<listen-address>:<port>] 
-username <username> -password <password> 
<COMMAND> <ARGUMENTS> 

More info available at: http://e-docs.bea.com/wls/docs81/admin_ref/cli.html 

Failure 

pitblade:II:root: > java weblogic.Admin 
Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/Admin 

Sample commands 
get state 

pitblade:II:root: > java weblogic.Admin -username user -password pass GETSTATE myserver 
Current state of "myserver" : RUNNING 

get server config 

pitblade:II:root: > java weblogic.Admin -username user -password pass GET -pretty -type Server 

MBeanName: "mydomain:Name=myserver,Type=Server" 
AcceptBacklog: 50 
AdministrationPort: 0 
AutoKillIfFailed: false 
AutoRestart: true 
COM: myserver 
COMEnabled: false 
CachingDisabled: true 
ClasspathServletDisabled: false 
ClientCertProxyEnabled: false 
Cluster: 
ClusterRuntime: 
ClusterWeight: 100 
CompleteCOMMessageTimeout: -1 
CompleteHTTPMessageTimeout: -1 
CompleteIIOPMessageTimeout: -1 
CompleteMessageTimeout: 60 
CompleteT3MessageTimeout: -1 
CustomIdentityKeyStoreFileName: 
CustomIdentityKeyStorePassPhrase: 
CustomIdentityKeyStoreType: 
CustomTrustKeyStoreFileName: 
CustomTrustKeyStorePassPhrase: 
CustomTrustKeyStoreType: 
DefaultIIOPPassword: 
DefaultIIOPUser: 
DefaultInternalServletsDisabled: false 
DefaultProtocol: t3 
DefaultSecureProtocol: t3s 
DefaultTGIOPPassword: ****** 
DefaultTGIOPUser: guest 
DomainLogFilter: 
EnabledForDomainLog: true 
ExecuteQueues: weblogic.kernel.Default 
ExpectedToRun: true 
ExternalDNSName: 
ExtraEjbcOptions: 
ExtraRmicOptions: 
GracefulShutdownTimeout: 10 
HealthCheckIntervalSeconds: 180 
HealthCheckTimeoutSeconds: 60 
HttpdEnabled: true 
IIOP: myserver 
IIOPEnabled: true 
IdleConnectionTimeout: 65 
IdleIIOPConnectionTimeout: -1 
IgnoreSessionsDuringShutdown: true 
InstrumentStackTraceEnabled: true 
InterfaceAddress: 
JDBCLogFileName: myserver/jdbc.log 
JDBCLoggingEnabled: false 
JMSDefaultConnectionFactoriesEnabled: true 
JNDITransportableObjectFactoryList: 
JavaCompiler: javac 
JavaCompilerPostClassPath: 
JavaCompilerPreClassPath: 
JavaStandardTrustKeyStorePassPhrase: 
KeyStores: DemoIdentityAndDemoTrust 
ListenAddress: 
ListenDelaySecs: 0 
ListenPort: 7001 
ListenPortEnabled: true 
Log: myserver 
LogRemoteExceptionsEnabled: false 
LoginTimeout: 1000 
LoginTimeoutMillis: 5000 
LowMemoryGCThreshold: 5 
LowMemoryGranularityLevel: 5 
LowMemorySampleSize: 10 
LowMemoryTimeInterval: 3600 
MSIFileReplicationEnabled: false 
Machine: 
ManagedServerIndependenceEnabled: true 
MaxCOMMessageSize: -1 
MaxHTTPMessageSize: -1 
MaxIIOPMessageSize: -1 
MaxMessageSize: 10000000 
MaxOpenSockCount: -1 
MaxT3MessageSize: -1 
MessageIdPrefixEnabled: true 
MuxerClass: 
Name: myserver 
NativeIOEnabled: true 
NetworkAccessPoints: 
Notes: 
ObjectName: myserver 
Parent: mydomain 
PreferredSecondaryGroup: 
Registered: true 
ReliableDeliveryPolicy: 
ReplicationGroup: 
RestartDelaySeconds: 0 
RestartIntervalSeconds: 3600 
RestartMax: 2 
ReverseDNSAllowed: false 
SSL: myserver 
ServerStart: myserver 
ServerVersion: 8.1.0.0 
SocketReaders: -1 
StagingMode: 
StartupMode: RUNNING 
StdoutDebugEnabled: false 
StdoutEnabled: true 
StdoutFormat: standard 
StdoutLogStack: true 
StdoutSeverityLevel: 32 
StuckThreadMaxTime: 600 
StuckThreadTimerInterval: 600 
TGIOPEnabled: false 
ThreadPoolPercentSocketReaders: 33 
TransactionLogFilePrefix: ./ 
TransactionLogFileWritePolicy: Cache-Flush 
TunnelingClientPingSecs: 45 
TunnelingClientTimeoutSecs: 40 
TunnelingEnabled: false 
Type: Server 
UploadDirectoryName: ./myserver/upload 
VerboseEJBDeploymentEnabled: false 
WebServer: myserver 
WeblogicPluginEnabled: false 
XMLEntityCache: 
XMLRegistry: 

get server stats 

pitblade:II:root: > java weblogic.Admin -username user -password pass GET -pretty -type ServerRuntime 

MBeanName: "mydomain:Location=myserver,Name=myserver,Type=ServerRuntime" 
ActivationTime: 1149801609891 
AdminServer: true 
AdminServerHost: pitblade 
AdminServerListenPort: 7001 
AdminServerListenPortSecure: false 
AdministrationPort: 9002 
AdministrationPortEnabled: false 
CachingDisabled: true 
ClusterRuntime: 
CurrentDirectory: /dsk2/local/bea81/user_projects/mydomain/. 
HealthState: State:HEALTH_OK,ReasonCode:[,] 
JVMID: -6864539854587189921/205.230.28.80/null/null/-840557488/9/7001/7001/-1/-1/7001/-1/-1/0/0/mydomain/myserver
JVMRuntime: myserver 
ListenAddress: pitblade/205.230.28.80 
ListenPort: 7001 
ListenPortEnabled: true 
Name: myserver 
ObjectName: myserver 
OpenSocketsCurrentCount: 1 
Parent: 
Registered: true 
RestartsTotalCount: 0 
SSLListenAddress: 
SSLListenPort: 7002 
SSLListenPortEnabled: false 
ServerSecurityRuntime: myserver 
SocketsOpenedTotalCount: 1 
State: RUNNING 
Type: ServerRuntime 
WeblogicVersion: WebLogic Server 8.1 Thu Mar 20 23:06:05 PST 2003 246620 
WebLogic XMLX Module 8.1 Thu Mar 20 23:06:05 PST 2003 246620 


get queue stats 

pitblade:II:root: > java weblogic.Admin -username user -password pass GET -pretty -type ExecuteQueueRuntime 

MBeanName: "mydomain:Location=myserver,Name=weblogic.admin.RMI,ServerRuntime=myserver,Type=ExecuteQueueRuntime"
CachingDisabled: true 
ExecuteThreadCurrentIdleCount: 2 
ExecuteThreads: [Lweblogic.management.runtime.ExecuteThread;@1ee2c2c 
Name: weblogic.admin.RMI 
ObjectName: weblogic.admin.RMI 
Parent: myserver 
PendingRequestCurrentCount: 0 
PendingRequestOldestTime: 1151346311947 
Registered: true 
ServicedRequestTotalCount: 25 
Type: ExecuteQueueRuntime 

MBeanName: "mydomain:Location=myserver,Name=weblogic.kernel.System,ServerRuntime=myserver,Type=ExecuteQueueRuntime"
CachingDisabled: true 
ExecuteThreadCurrentIdleCount: 5 
ExecuteThreads: [Lweblogic.management.runtime.ExecuteThread;@a9255c 
Name: weblogic.kernel.System 
ObjectName: weblogic.kernel.System 
Parent: myserver 
PendingRequestCurrentCount: 0 
PendingRequestOldestTime: 1151346312003 
Registered: true 
ServicedRequestTotalCount: 1581056 
Type: ExecuteQueueRuntime 

MBeanName: "mydomain:Location=myserver,Name=weblogic.kernel.Default,ServerRuntime=myserver,Type=ExecuteQueueRuntime"
CachingDisabled: true 
ExecuteThreadCurrentIdleCount: 15 
ExecuteThreads: [Lweblogic.management.runtime.ExecuteThread;@af72d8 
Name: weblogic.kernel.Default 
ObjectName: weblogic.kernel.Default 
Parent: myserver 
PendingRequestCurrentCount: 0 
PendingRequestOldestTime: 1151346312035 
Registered: true 
ServicedRequestTotalCount: 414117 
Type: ExecuteQueueRuntime 

MBeanName: "mydomain:Location=myserver,Name=weblogic.admin.HTTP,ServerRuntime=myserver,Type=ExecuteQueueRuntime"
CachingDisabled: true 
ExecuteThreadCurrentIdleCount: 2 
ExecuteThreads: [Lweblogic.management.runtime.ExecuteThread;@21e554 
Name: weblogic.admin.HTTP 
ObjectName: weblogic.admin.HTTP 
Parent: myserver 
PendingRequestCurrentCount: 0 
PendingRequestOldestTime: 1151346312061 
Registered: true 
ServicedRequestTotalCount: 5471 
Type: ExecuteQueueRuntime 

MBeanName: "mydomain:Location=myserver,Name=weblogic.kernel.Non-Blocking,ServerRuntime=myserver,Type=ExecuteQueueRuntime" 
CachingDisabled: true 
ExecuteThreadCurrentIdleCount: 0 
ExecuteThreads: [Lweblogic.management.runtime.ExecuteThread;@14df764 
Name: weblogic.kernel.Non-Blocking 
ObjectName: weblogic.kernel.Non-Blocking 
Parent: myserver 
PendingRequestCurrentCount: 0 
PendingRequestOldestTime: 1151346312088 
Registered: true 
ServicedRequestTotalCount: 0 
Type: ExecuteQueueRuntime 

get queue stats for just the default execute queue (the one that does application work) 

This shows that there are 15 idle threads that can be used by the application and there are no pending requests. Also, this queue has serviced 415,607 requests. 

pitblade:II:root: > java weblogic.Admin -username user -password pass -pretty GET -mbean "mydomain:Location=myserver,Name=weblogic.kernel.Default,ServerRuntime=myserver,Type=ExecuteQueueRuntime"

MBeanName: "mydomain:Location=myserver,Name=weblogic.kernel.Default,ServerRuntime=myserver,Type=ExecuteQueueRuntime"
CachingDisabled: true 
ExecuteThreadCurrentIdleCount: 15 
ExecuteThreads: [Lweblogic.management.runtime.ExecuteThread;@48edb5 
Name: weblogic.kernel.Default 
ObjectName: weblogic.kernel.Default 
Parent: myserver 
PendingRequestCurrentCount: 0 
PendingRequestOldestTime: 1151352425362 
Registered: true 
ServicedRequestTotalCount: 415607 
Type: ExecuteQueueRuntime 


The same query for production looks like this: 

reedi.psmfc.org:C1:root: > java weblogic.Admin -url t3://reedi:7001 -username user -password pass -pretty GET -mbean "mydomain2:Location=myserver,Name=weblogic.kernel.Default,ServerRuntime=myserver,Type=ExecuteQueueRuntime"

MBeanName: "mydomain2:Location=myserver,Name=weblogic.kernel.Default,ServerRuntime=myserver,Type=ExecuteQueueRuntime"
CachingDisabled: true 
ExecuteThreadCurrentIdleCount: 15 
ExecuteThreads: [Lweblogic.management.runtime.ExecuteThread;@48edb5 
Name: weblogic.kernel.Default 
ObjectName: weblogic.kernel.Default 
Parent: myserver 
PendingRequestCurrentCount: 0 
PendingRequestOldestTime: 1151355058643 
Registered: true 
ServicedRequestTotalCount: 796640 
Type: ExecuteQueueRuntime 


get JVM stats 

pitblade:II:root: > java weblogic.Admin -username user -password pass GET -pretty -type JVMRuntime 

MBeanName: "mydomain:Location=myserver,Name=myserver,ServerRuntime=myserver,Type=JVMRuntime" 
CachingDisabled: true 
HeapFreeCurrent: 221438512 
HeapSizeCurrent: 265879552 
JavaVendor: Sun Microsystems Inc. 
JavaVersion: 1.4.1_02-ea 
Name: myserver 
OSName: SunOS 
OSVersion: 5.9 
ObjectName: myserver 
Parent: myserver 
Registered: true 
Type: JVMRuntime 


On production that same command gets just the admin server JVM stats: 

"$JAVA_HOME/bin/java" weblogic.Admin -url t3://reedi:7001 -username $WLS_USER -password $WLS_PW -pretty GET -type JVMRuntime 
reedi.psmfc.org:C1:root: > ./watchHeap.sh 

MBeanName: "mydomain2:Location=myserver,Name=myserver,ServerRuntime=myserver,Type=JVMRuntime" 
CachingDisabled: true 
HeapFreeCurrent: 16717904 
HeapSizeCurrent: 62840832 
JavaVendor: Sun Microsystems Inc. 
JavaVersion: 1.4.1_02-ea 
Name: myserver 
OSName: SunOS 
OSVersion: 5.9 
ObjectName: myserver 
Parent: myserver 
Registered: true 
Type: JVMRuntime 

To get the JVM stats for the app servers that are doing the work, specify the adminurl to an appserver instead of the admin server: 

"$JAVA_HOME/bin/java" weblogic.Admin -url t3://reedi:7003 -username $WLS_USER -password $WLS_PW -pretty GET -type JVMRuntime 

reedi.psmfc.org:C1:root: > ./watchHeap.sh 

 
MBeanName: "mydomain2:Location=appserver_reedi,Name=appserver_reedi,ServerRuntime=appserver_reedi,Type=JVMRuntime"
CachingDisabled: true 
HeapFreeCurrent: 137764704 
HeapSizeCurrent: 265879552 
JavaVendor: Sun Microsystems Inc. 
JavaVersion: 1.4.1_02-ea 
Name: appserver_reedi 
OSName: SunOS 
OSVersion: 5.9 
ObjectName: appserver_reedi 
Parent: appserver_reedi 
Registered: true 
Type: JVMRuntime 

get JDBC stats 

We have connection pools configured, but are not using them, so this is not a useful source of information. 

pitblade:II:root: > java weblogic.Admin -username user -password pass GET -pretty -type JDBCConnectionPoolRuntime 

MBeanName: "mydomain:Location=myserver,Name=SOCKEYE,ServerRuntime=myserver,Type=JDBCConnectionPoolRuntime"
ActiveConnectionsAverageCount: 0 
ActiveConnectionsCurrentCount: 0 
ActiveConnectionsHighCount: 0 
CachingDisabled: true 
ConnectionDelayTime: 360 
ConnectionLeakProfileCount: 0 
ConnectionsTotalCount: 1 
CurrCapacity: 1 
Enabled: true 
FailuresToReconnectCount: 0 
HighestNumAvailable: 1 
HighestNumUnavailable: 0 
LeakedConnectionCount: 0 
MaxCapacity: 30 
Name: SOCKEYE 
NumAvailable: 1 
NumUnavailable: 0 
ObjectName: SOCKEYE 
Parent: myserver 
PoolState: true 
Properties: database=sockeye::ptagis3;user=webjsp 
Registered: true 
State: Running 
Type: JDBCConnectionPoolRuntime 
VersionJDBCDriver: ca.edbc.jdbc.EdbcDriver 
WaitSecondsHighCount: 0 
WaitingForConnectionCurrentCount: 0 
WaitingForConnectionHighCount: 0 

MBeanName: "mydomain:Location=myserver,Name=PTAGIS3_Blueback,ServerRuntime=myserver,Type=JDBCConnectionPoolRuntime"
ActiveConnectionsAverageCount: 0 
ActiveConnectionsCurrentCount: 0 
ActiveConnectionsHighCount: 0 
CachingDisabled: true 
ConnectionDelayTime: 577 
ConnectionLeakProfileCount: 0 
ConnectionsTotalCount: 1 
CurrCapacity: 1 
Enabled: true 
FailuresToReconnectCount: 0 
HighestNumAvailable: 1 
HighestNumUnavailable: 0 
LeakedConnectionCount: 0 
MaxCapacity: 15 
Name: PTAGIS3_Blueback 
NumAvailable: 1 
NumUnavailable: 0 
ObjectName: PTAGIS3_Blueback 
Parent: myserver 
PoolState: true 
Properties: database=Blueback::ptagis3;user=webjsp 
Registered: true 
State: Running 
Type: JDBCConnectionPoolRuntime 
VersionJDBCDriver: ca.edbc.jdbc.EdbcDriver 
WaitSecondsHighCount: 0 
WaitingForConnectionCurrentCount: 0 
WaitingForConnectionHighCount: 0
(Visited 187 times, 1 visits today)