本文重点:WLST导航和定位MBean
-
MBean切换图
如上:红色的字体表示切换的命令。ls和cd是在当前树下切换,其他命令是在不同树之间切换。
其中:
-
DomainMBeanServer有三种状态:
- 运行domainConfig() 进入到DomainMBean中。
- 运行domainRuntime() 进入到Domain-RuntimeMBean中。
- 运行domainCustom() 进入到Domain-CustomMBean中。(自定义MBean,需要先挂载)
-
EditMBeanServer只有一种状态:
- 运行edit() 进入到DomainMBean中。
-
RuntimeMBeanServer也有三种状态:
- 运行serverConfig() 进入到DomainMBean中。
- 运行serverRuntime() 进入到Server-RuntimeMBean中。
- 运行Custom() 进入到custom() 中。(自定义MBean,需要先挂载)
- 如果在管理服务器上,那么RuntimeMBeanServer和DomainMBeanServer的数据是相同的。
-
各模式下切换。
- 首先要启动管理服务器,然后启动wlst.sh脚本。
[root@wls1 ~]# /opt/weblogic/wlserver_10.3/common/bin/wlst.sh CLASSPATH=/opt/weblogic/patch_wls1036/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/opt/weblogic/patch_ocp371/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/opt/jdk1.8.0_144/lib/tools.jar:/opt/weblogic/wlserver_10.3/server/lib/weblogic_sp.jar:/opt/weblogic/wlserver_10.3/server/lib/weblogic.jar:/opt/weblogic/modules/features/weblogic.server.modules_10.3.6.0.jar:/opt/weblogic/wlserver_10.3/server/lib/webservices.jar:/opt/weblogic/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/opt/weblogic/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar::/opt/weblogic/utils/config/10.3/config-launch.jar::/opt/weblogic/wlserver_10.3/common/derby/lib/derbynet.jar:/opt/weblogic/wlserver_10.3/common/derby/lib/derbyclient.jar:/opt/weblogic/wlserver_10.3/common/derby/lib/derbytools.jar:: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0 Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands wls:/offline> connect() # 连接 Please enter your username :weblogic # 帐号 Please enter your password : # 密码 Please enter your server URL [t3://localhost:7001] : # 连接的地址 Connecting to t3://localhost:7001 with userid weblogic ... Successfully connected to Admin Server 'AdminServer' that belongs to domain 'base_domains'. Warning: An insecure protocol was used to connect to the server. To ensure on-the-wire security, the SSL port or Admin port should be used instead. wls:/base_domains/serverConfig> |
- 连接后,默认进入serverConfig状态
wls:/base_domains/serverConfig> wls:/base_domains/serverConfig> cmo # 打印当前对象的名字和类型。 [MBeanServerInvocationHandler]com.bea:Name=base_domains,Type=Domain wls:/base_domains/serverConfig> ls() # 列出MBean的层级结构。 dr-- AdminConsole dr-- AppDeployments dr-- BridgeDestinations dr-- Clusters dr-- CoherenceClusterSystemResources .. -r-- AdminServerName AdminServer -r-- AdministrationMBeanAuditingEnabled false -r-- AdministrationPort 9002 -r-- AdministrationPortEnabled false .. -r-x freezeCurrentValue Void : String(attributeName) -r-x isSet Boolean : String(propertyName) -r-x unSet Void : String(propertyName) 如上所示:dr--,四个标识 第一位:"d" 代表是MBean实例或类型,可以看作是目录,确实如目录一样操作。 "-" 代表是MBean的属性 第二位:"r" 代表可读,"-" 代表不可读。 第三位:"w" 代表可写,"-" 代表不可写。 第四位:"x" 代表执行,"-" 代表不可执行。 wls:/base_domains/serverConfig> cd('Servers') # 进入到servers wls:/base_domains/serverConfig/Servers> cmo [MBeanServerInvocationHandler]com.bea:Name=base_domains,Type=Domain wls:/base_domains/serverConfig/Servers> ls() # 列出该节点下属性。 dr-- AdminServer dr-- Server-0
|
- 进入domainConfig状态
wls:/base_domains/serverConfig/Servers> domainConfig() Location changed to serverRuntime tree. This is a read-only tree with DomainMBean as the root. For more help, use help(domainConfig) wls:/base_domains/domainConfig> cmo # 打印当前对象的名字和类型。 [MBeanServerInvocationHandler]com.bea:Name=base_domains,Location=base_domains,Type=Domain wls:/base_domains/domainConfig> ls() # 该状态下ls()列出的数据和serverConfig状态下的数据大致一样(初步验证)。 dr-- AdminConsole dr-- AppDeployments dr-- BridgeDestinations dr-- Clusters dr-- CoherenceClusterSystemResources dr-- CoherenceServers .. |
- 进入domainRuntime状态
wls:/base_domains/domainConfig> domainRuntime() Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root. For more help, use help(domainRuntime) wls:/base_domains/domainRuntime> cmo [MBeanServerInvocationHandler]com.bea:Name=base_domains,Type=DomainRuntime wls:/base_domains/domainRuntime> ls() # ls列出的数据 dr-- AppRuntimeStateRuntime dr-- CoherenceServerLifeCycleRuntimes dr-- ConsoleRuntime dr-- DeployerRuntime dr-- DeploymentManager dr-- DomainServices dr-- LogRuntime dr-- MessageDrivenControlEJBRuntime dr-- MigratableServiceCoordinatorRuntime dr-- MigrationDataRuntimes dr-- PolicySubjectManagerRuntime dr-- SNMPAgentRuntime dr-- ServerLifeCycleRuntimes dr-- ServerRuntimes dr-- ServerServices dr-- ServiceMigrationDataRuntimes -r-- ActivationTime Tue Jan 30 22:36:28 CST 2018 -r-- MigrationDataRuntimes null -r-- Name base_domains -rw- Parent null -r-- ServiceMigrationDataRuntimes null -r-- Type DomainRuntime -r-x preDeregister Void : -r-x restartSystemResource Void : WebLogicMBean(weblogic.management.configuration.SystemResourceMBean) |
- 进入serverRuntime状态
wls:/base_domains/domainRuntime> serverRuntime() Location changed to serverRuntime tree. This is a read-only tree with ServerRuntimeMBean as the root. For more help, use help(serverRuntime) wls:/base_domains/serverRuntime> cmo [MBeanServerInvocationHandler]com.bea:Name=AdminServer,Type=ServerRuntime wls:/base_domains/serverRuntime> ls() # 注意,和domainRuntime的数据并不相同 dr-- ApplicationRuntimes dr-- AsyncReplicationRuntime dr-- ClusterRuntime dr-- ConnectorServiceRuntime dr-- DefaultExecuteQueueRuntime dr-- EntityCacheCumulativeRuntime dr-- EntityCacheCurrentStateRuntime dr-- EntityCacheHistoricalRuntime .. -r-- SocketsOpenedTotalCount 1 -r-- State RUNNING -r-- StateVal 2 -r-- Type ServerRuntime -r-- WANReplicationRuntime null -r-- WLECConnectionServiceRuntime null -r-- WeblogicHome /opt/weblogic/wlserver_10.3 -r-- WeblogicVersion WebLogic Server 10.3.6.0 Tue Nov 15 08:52:36 PST 2011 1441050 -r-- WseeClusterFrontEndRuntime null -r-x addRequestClassRuntime Boolean : WebLogicMBean(weblogic.management.runtime.RequestClassRuntimeMBean) -r-x forceShutdown Void : -r-x forceSuspend Void : -r-x getIPv4URL String : String(protocol) -r-x getIPv6URL String : String(protocol) -r-x getServerChannel java.net.InetSocketAddress : String(protocol) -r-x getURL String : String(protocol) -r-x preDeregister Void : -r-x restartSSLChannels Void : -r-x resume Void : -r-x shutdown Void : -r-x shutdown Void : Integer(timeout),Boolean(ignoreSessions) -r-x start Void : -r-x suspend Void : -r-x suspend Void : Integer(timeout),Boolean(ignoreSessions) |
- 进入domainCustom()状态
wls:/base_domains/domainRuntime> domainCustom() Location changed to domain custom tree. This is a writable tree with No root. # 这棵树可写,但是没有存根 For more help, use help(domainCustom) wls:/base_domains/domainCustom> cmo 'No Stub Available' # 没有存根 wls:/base_domains/domainCustom> ls() drw- JMImplementation drw- com.sun.management drw- java.lang drw- java.nio drw- java.util.logging |
- 进入custom()状态
wls:/base_domains/domainCustom> custom() Location changed to custom tree. This is a writable tree with No root. For more help, use help(custom) wls:/base_domains/custom> cmo 'No Stub Available' wls:/base_domains/custom> ls() drw- JMImplementation drw- com.sun.management drw- java.lang drw- java.nio drw- java.util.logging |
- 进入edit()状态
wls:/base_domains/custom> edit() # 这是一个编辑树,可写;使用domainMBean做为根,如果要进行更改,需要startEdit()编辑会话。 Location changed to edit tree. This is a writable tree with DomainMBean as the root. To make changes you will need to start an edit session via startEdit(). For more help, use help(edit) You already have an edit session in progress and hence WLST will continue with your edit session. wls:/base_domains/edit !> cmo # 进入的是domainMBean中 [MBeanServerInvocationHandler]com.bea:Name=base_domains,Type=Domain wls:/base_domains/edit !> ls() dr-- AdminConsole dr-- AppDeployments dr-- BridgeDestinations dr-- Clusters dr-- CoherenceClusterSystemResources |
-
高级操作
- 获取属性值
wls:/base_domains/edit !> serverConfig() wls:/base_domains/serverConfig> cd('Servers') wls:/base_domains/serverConfig/Servers> ls() dr-- AdminServer dr-- Server-0 wls:/base_domains/serverConfig/Servers> cd('Server-0') wls:/base_domains/serverConfig/Servers/Server-0> cmo.getXMLEntityCache() # 该值因为为空 wls:/base_domains/serverConfig/Servers/Server-0> cmo.getVirtualMachineName() 'base_domains_Server-0' wls:/base_domains/serverConfig/Servers/Server-0> get('VirtualMachineName') # 另一种方式获取值 'base_domains_Server-0' wls:/base_domains/serverConfig/Servers/Server-0/WebServer> cd('..') # 返回根目录 wls:/base_domains/serverConfig/Servers/Server-0> cd('/') # 返回父目录 wls:/base_domains/serverConfig> find('VirtualMachineName') # 可以使用find命令查找 Finding 'VirtualMachineName' in all registered MBean instances ... /Servers/AdminServer VirtualMachineName base_domains_AdminServer /Servers/Server-0 VirtualMachineName base_domains_Server-0 wls:/base_domains/serverConfig> bean1 = getMBean('/Servers/AdminServer') wls:/base_domains/serverConfig> bean1 [MBeanServerInvocationHandler]com.bea:Name=AdminServer,Type=Server wls:/base_domains/serverConfig> bean1.getVirtualMachineName() 'base_domains_AdminServer' |
-
受管服务器上只有RuntimeMBeanServer