We are moving!

 
We are currently migrating the old library to a new one. Please, do not UPLOAD or modify any of your plugins/modules. Please wait until 1st January 2018. New library site will be at https://pandorafms.com/library with a better interface. We're working hard to move all the modules/plugins from this site to the new one.
 
----------------------------------------------------------------
 
This is a library with modules, documentation and tools for Pandora FMS users, both public Open Source and Enterprise. Please use your support credentials (same as used to enter support/ticketing system) in the menu to your right. You will be granted access to a resourceful module library, such as Oracle, VMware, JBoss and others, ready to be used in production enviroments, with official professional support from Artica. If you do not own an enterprise account, you still can browse and download lots of modules, you can even register a free account and contribute with your own modules/tools for other public users.

Home > Application monitoring

Weblogic

Author: slerena2 Create in: 04/28/2010 Update in: 01/01/1970
Rating:
Module type : Documentation


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