You can use WLST to retrieve information that WebLogic Server instances produce to describe their runtime state. The following sections using WLST to get runtime information:
The Administration Server hosts the domain runtime hierarchy which provides access to any MBean on any server in the domain. If the Administration Server is not running for a domain, WLST can connect to individual Managed Servers to retrieve runtime data.
Accessing the runtime information for a domain includes the following main steps:
Invoke WLST and connect to a running Administration Server instance. See Invoking WLST.
Navigate to the domain runtime MBean hierarchy by entering the domainRuntime
command.
wls:/mydomain/serverConfig>domainRuntime()
The domainRuntime
command places WLST at the root of the domain-wide runtime management objects, DomainRuntimeMBean
.
Navigate to ServerRuntimes
and then to the server instance which you are interested in monitoring.
wls:/mydomain/domainRuntime>cd('ServerRuntimes/myserver')
At the server instance, navigate to and interrogate runtime MBeans.
wls:/mydomain/domainRuntime/ServerRuntimes/myserver>cd('JVMRuntime/myserver')> wls:/mydomain/domainRuntime/ServerRuntimes/myserver/JVMRuntime/myserver>ls() -r-- AllProcessorsAverageLoad 0.0 -r-- Concurrent true -r-- FreeHeap 15050064 -r-- FreePhysicalMemory 900702208 -r-- GCHandlesCompaction true -r-- GcAlgorithm Dynamic GC currently running strategy: Nursery, parallel mark, parallel sweep -r-- Generational true -r-- HeapFreeCurrent 14742864 -r-- HeapFreePercent 5 -r-- HeapSizeCurrent 268435456 -r-- HeapSizeMax 268435456 -r-- Incremental false -r-- JVMDescription Oracle JRockit Java Virtual Machine -r-- JavaVMVendor BEA Systems, Inc. -r-- JavaVendor BEA Systems, Inc. -r-- JavaVersion 1.5.0 ...
The following sections provide example scripts for retrieving runtime information about WebLogic Server server instances and domain resources.
The WLST online script in Example 8-1 navigates the domain runtime hierarchy and checks the status of a Managed Server every 5 seconds. It restarts the server if the server state changes from RUNNING
to any other status. It assumes that WLST is connected to the domain's Administration Server.
For information on how to run this script, see Invoking WLST.
Example 8-1 Monitoring Server State
# Node Manager needs to be running to run this script. import thread import time def checkHealth(serverName): while 1: slBean = getSLCRT(serverName) status = slBean.getState() print 'Status of Managed Server is '+status if status != "RUNNING": print 'Starting server '+serverName start(serverName, block="true") time.sleep(5) def getSLCRT(svrName): domainRuntime() slrBean = cmo.lookupServerLifecycleRuntime(svrName) return slcBean
The WLST online script in Example 8-2 monitors the HJVMHeapSize
for all running servers in a domain; it checks the heap size every 3 minutes and prints a warning if the heap size is greater than a specified threshold. It assumes that the URL for the domain's Administration Server is t3://localhost:7001
.
For information on how to run this script, see Invoking WLST.
Example 8-2 Monitoring the JVM Heap Size
waitTime=300000 THRESHOLD=100000000 uname = "weblogic" pwd = "welcome1" url = "t3://localhost:7001" def monitorJVMHeapSize(): connect(uname, pwd, url) while 1: serverNames = getRunningServerNames() domainRuntime() for name in serverNames: print 'Now checking '+name.getName() try: cd("/ServerRuntimes/"+name.getName()+"/JVMRuntime/"+name.getName()) except WLSTException,e: # this typically means the server is not active, just ignore pass heapSize = cmo.getHeapSizeCurrent() if heapSize > THRESHOLD: # do whatever is neccessary, send alerts, send email etc print 'WARNING: The HEAPSIZE is Greater than the Threshold' else: print heapSize java.lang.Thread.sleep(1800000) def getRunningServerNames(): domainConfig() return cmo.getServers() if __name__== "main": monitorJVMHeapSize()
Using WLST, you can configure a server instance's logging and message output.
To determine which log attributes can be configured, see "LogMBean" and "LogFileMBean" in the Oracle Fusion Middleware Oracle WebLogic Server MBean Reference. The reference also indicates valid values for each attribute.
The WLST online script in Example 8-3 sets attributes of LogMBean
(which extends LogFileMBean
). For information on how to run this script, see Invoking WLST.
Example 8-3 Configuring Logging
# Connect to the server connect("weblogic","welcome1","t3://localhost:7001") edit() startEdit() # set CMO to the server log config cd("Servers/myserver/Log/myserver") ls () # change LogMBean attributes set("FileCount", 5) set("FileMinSize", 400) # list the current directory to confirm the new attribute values ls () # save and activate the changes save() activate() # all done... exit()
The WebLogic Diagnostic Framework (WLDF) is a monitoring and diagnostic framework that can collect diagnostic data that servers and applications generate. You configure WLDF to collect the data and store it in various sources, including log records, data events, and harvested metrics. For more information, see Oracle Fusion Middleware Configuring and Using the Diagnostics Framework for Oracle WebLogic Server.
For example scripts that demonstrate using WLST to configure the WebLogic Diagnostic Framework, see "WebLogic Scripting Tool Examples" in Oracle Fusion Middleware Configuring and Using the Diagnostics Framework for Oracle WebLogic Server.
To view the collected diagnostics information using WLST, use one of the following commands to export the data from the WLDF repositories:
From WLST offline, use the exportDiagnosticData
command (see "exportDiagnosticData" in Oracle Fusion Middleware WebLogic Scripting Tool Command Reference).
From WLST online, use the exportDiagnosticDataFromServer
command (see"exportDiagnosticDataFromServer" in Oracle Fusion Middleware WebLogic Scripting Tool Command Reference)).