Getting Runtime Information in Weblogic server by WLST.

来源:互联网 发布:数码宝贝tri5 知乎 编辑:程序博客网 时间:2024/04/30 06:05

Getting Runtime Information

This chapter describes how to use WebLogic Scripting Tool (WLST) to retrieve information that WebLogic Server instances produce to describe their run-time state.

This chapter includes the following sections:

  • Accessing Runtime Information: Main Steps

  • Configuring Logging

  • Working with the WebLogic Diagnostics Framework

Accessing Runtime Information: Main Steps

The Administration Server hosts the domain run-time hierarchy which provides access to any MBean on any server in the WebLogic domain. If the Administration Server is not running for a WebLogic domain, WLST can connect to individual Managed Servers to retrieve run-time data.

Accessing the run-time information for a WebLogic domain includes the following main steps:

  1. Invoke WLST and connect to a running Administration Server instance. See Invoking WLST.

  2. Navigate to the domain run-time MBean hierarchy by entering the domainRuntime command.

    wls:/mydomain/serverConfig>domainRuntime() 

    The domainRuntime command places WLST at the root of the domain-wide run-time management objects,DomainRuntimeMBean.

  3. Navigate to ServerRuntimes and then to the server instance which you are interested in monitoring.

    wls:/mydomain/domainRuntime>cd('ServerRuntimes/myserver') 
  4. At the server instance, navigate to and interrogate run-time MBeans.

    wls:/mydomain/domainRuntime/ServerRuntimes/myserver>cd('JVMRuntime/myserver')> wls:/mydomain/domainRuntime/ServerRuntimes/myserver/JVMRuntime/myserver>ls() -r--   HeapFreeCurrent                              191881368-r--   HeapFreePercent                              87-r--   HeapSizeCurrent                              259588096-r--   HeapSizeMax                                  518979584-r--   JavaVMVendor                                 Sun Microsystems Inc.-r--   JavaVendor                                   Sun Microsystems Inc.-r--   JavaVersion                                  1.6.0_21-r--   Name                                         AdminServer-r--   OSName                                       Windows XP-r--   OSVersion                                    5.1-r--   Type                                         JVMRuntime-r--   Uptime                                       409141-r-x   preDeregister                                Void :...

The following sections provide example scripts for retrieving run-time information about WebLogic Server server instances and WebLogic domain resources.

Script for Monitoring Server State

The WLST online script in Example 8-1 navigates the domain run-time hierarchy and checks the status of a Managed Server every 5 seconds. It restarts the server if the server state changes fromRUNNING to any other status. It assumes that WLST is connected to the WebLogic domain's Administration Server.

Example 8-1 Monitoring Server State

# Node Manager needs to be running to run this script.import threadimport timedef 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 slrBeancheckHealth("myserver")

Script for Monitoring the JVM

The WLST online script in Example 8-2 monitors the HJVMHeapSize for all running servers in a WebLogic 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 WebLogic 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=180000THRESHOLD=300000000uname = "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())              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            except WLSTException,e:              # this typically means the server is not active, just ignore              # pass                print "Ignoring exception " + e.getMessage()            java.lang.Thread.sleep(waitTime) def getRunningServerNames():        # only returns the currently running servers in the domain        return domainRuntimeService.getServerRuntimes() if __name__== "main":    monitorJVMHeapSize()

Configuring Logging

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 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, seeInvoking WLST.

Example 8-3 Configuring Logging

# Connect to the serverconnect("weblogic","welcome1","t3://localhost:7001")edit()startEdit()# set CMO to the server log configcd("Servers/myserver/Log/myserver")ls ()# change LogMBean attributesset("FileCount", 5)set("FileMinSize", 400)# list the current directory to confirm the new attribute valuesls ()# save and activate the changessave()activate()# all done...exit()

Working with the WebLogic Diagnostics Framework

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 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 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 WebLogic Scripting Tool Command Reference).

  • From WLST online, use the exportDiagnosticDataFromServer command (see"exportDiagnosticDataFromServer" in WebLogic Scripting Tool Command Reference)).

weblogic.management.runtime
Interface DomainRuntimeMBean


public interface DomainRuntimeMBean

This class is used for monitoring a WebLogic domain. A domain may contain zero or more clusters. A cluster may be looked up by a logical name.

Deprecation of MBeanHome and Type-Safe Interfaces

This is a type-safe interface for a WebLogic Server MBean, which you can import into your client classes and access throughweblogic.management.MBeanHome. As of 9.0, the MBeanHome interface and all type-safe interfaces for WebLogic Server MBeans are deprecated. Instead, client classes that interact with WebLogic Server MBeans should use standard JMX design patterns in which clients use the javax.management.MBeanServerConnection interface to discover MBeans, attributes, and attribute types at runtime.


Method Summary DategetActivationTime()
          The time when the domain became active. AppRuntimeStateRuntimeMBeangetAppRuntimeStateRuntime()
          Returns a service from which it is possible to determine the state applications throughout the domain. CoherenceServerLifeCycleRuntimeMBean[]getCoherenceServerLifeCycleRuntimes()
          The CoherenceServerLifecycleRuntimeMBean for all configured Coherence servers in the domain. ConsoleRuntimeMBeangetConsoleRuntime()
          Return the MBean which provides access to console runtime services. DeployerRuntimeMBeangetDeployerRuntime()
          Deprecated. 9.0.0.0 DeploymentManagerMBeangetDeploymentManager()
          Provides access to the service interface to the interface that is used to deploy new customer applications or modules into this domain. LogRuntimeMBeangetLogRuntime()
          Return the MBean which provides access to the control interface for WLS server logging. MessageDrivenControlEJBRuntimeMBeangetMessageDrivenControlEJBRuntime()
          The MessageDrivenControlEJBRuntimeMBean for this server. MigratableServiceCoordinatorRuntimeMBeangetMigratableServiceCoordinatorRuntime()
          Returns the service used for coordinating the migraiton of migratable services. MigrationDataRuntimeMBean[]getMigrationDataRuntimes()
          Returns a history of server migrations. WseePolicySubjectManagerRuntimeMBeangetPolicySubjectManagerRuntime()
            ServerLifeCycleRuntimeMBean[]getServerLifeCycleRuntimes()
          The ServerLifecycleRuntimeMBean for all configured servers in the domain. ServiceMigrationDataRuntimeMBean[]getServiceMigrationDataRuntimes()
          Returns all the service migrations done in the domain SNMPAgentRuntimeMBeangetSNMPAgentRuntime()
          Return the MBean which provides access to the monitoring statistics for WLS SNMP Agent. CoherenceServerLifeCycleRuntimeMBeanlookupCoherenceServerLifeCycleRuntime(String name)
          Returns the Coherence server life cycle run-time MBean for the specified server. ServerLifeCycleRuntimeMBeanlookupServerLifeCycleRuntime(String name)
          Returns the server life cycle run-time MBean for the specified server. voidrestartSystemResource(SystemResourceMBean resource)
          Restarts a system resource on all nodes to which it is deployed. voidsetPolicySubjectManagerRuntime(WseePolicySubjectManagerRuntimeMBean bean)
            
原创粉丝点击