Weblogic 脚本工具 导航和编辑 MBean

导航和编辑 MBean

以下部分描述了如何使用 WLST 来导航、询问和编辑 MBean:

  • 导航和询问 MBean
  • 浏览运行时 MBean
  • 在 MBean 层次中导航
  • 查找 MBean
  • 访问自定义 MBean
  • 编辑配置 MBean


导航和询问 MBean

WLST 提供了对 MBean 的简化访问。而 weblogic.Admin 实用工具(不赞成在此版本 WebLogic Server 中使用)和 WLST 提供了用于与 MBean 交互的接口,检索 MBean 的方法就有所不同。

weblogic.Admin 实用工具提供的与 MBean 相关的命令要求您确定要进行交互的 MBean 的对象名称。当此对象名称基于文档化约定生成时,很难确定一个层次中多层子 MBean 的对象名称。

WLST 提供了检索 MBean 的另一种方式:不提供对象名称,而是以与导航文件系统中的文件层次相同的方式导航 MBean 层次。

WebLogic Server 用一种层次数据模型来组织自己的 MBean。在 WLST 文件系统中,MBean 层次与驱动程序对应;MBean 类型和示例与目录对应;MBean 特性和操作与文件对应。WLST 使用命令(如 cdls pwd)遍历 MBean 的层次结构,其方式类似于在 UNIX 或 Windows 命令外壳中导航文件系统。导航至 MBean 实例之后,可以使用 WLST 命令与 MBean 交互。

注意: 因为通过 WLST 脱机版,您只能访问和更新配置文件中出现的配置对象,所以若要针对尚未以 XML 元素保存在配置文件中的配置对象查看和/或更改特性值,必须首先创建配置对象。

在配置层次中,根目录是 DomainMBean 请参阅“WebLogic Server MBean Reference”中的 DomainMBean);MBean 类型是根目录下的子目录;MBean 的名称(MBean 实例)是位于 MBean 类型目录下的子目录;MBean 特性和操作(例如文件)则是 MBean 目录下的节点。每个 MBean 实例都是 MBean 类型的子目录。大多数情况下,一种类型可能具有多个实例。

图4-1 配置 MBean 层次

WLST 首先连接到服务器配置 MBean 根上的 WebLogic Server 实例,此服务器配置 MBean 为单层结构,其根为 DomainMBean。WLST 命令提供了对同一个域内所有 WebLogic Server MBean 层次的访问,例如服务器的运行时间 Mbean、域范围服务的运行时 MBean,以及域中所有配置 MBean 的可编辑副本。有关详细信息,请参阅树命令。

有关 MBean 层次的详细信息,请参阅“使用 JMX 开发自定义管理实用工具”中的 WebLogic Server MBean 数据模型

更改当前管理对象

WLST 联机版提供一个变量 cmo,表示当前的管理对象。您可以使用该变量对管理对象执行任何 getsetinvoke 方法。例如,cmo 变量启用以下命令:
wls:/mydomain/edit> cmo.setAdministrationPort(9092)

该变量在除了 custom 和 jndi 的所有 WLST 层次上都可使用。

WLST 将 cmo 变量的值设置为当前 WLST 的路径。每次更改目录后,WLST 会重新将 cmo 变量的值设置为当前 WLST 的路径。例如,当更改到 serverRuntime 层次时,cmo 的值将被设置为 ServerRuntime。当更改到 serverConfig 层次时,cmo 的值将被设置为 DomainMBean。如果更改到 DomainMBean 下的 Servers 目录,cmo 的值将被设置为 ServerMBean 的实例(请参阅 清单4-1)。

关于 WLST 变量的详细信息,请参阅 WLST 变量参考。

清单 4-1 更改当前管理对象
C:\> java weblogic.WLST
Initializing WebLogic Scripting Tool (WLST) ...
Welcome to Weblogic Server Administration Scripting Shell
...
wls:/(offline)> connect('username','password')
Connecting to weblogic server instance running at t3://localhost:7001 as username weblogic ...
Successfully connected to Admin Server 'myserver' that belongs to domain 'mydomain'.
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:/mydomain/serverConfig> cmo
[MBeanServerInvocationHandler]mydomain:Name=mydomain,Type=Domain
wls:/mydomain/serverConfig> cd('Servers')
wls:/mydomain/serverConfig/Servers> cmo
[MBeanServerInvocationHandler]mydomain:Name=mydomain,Type=Domain
wls:/mydomain/serverConfig/Servers> cd('myserver')
wls:/mydomain/serverConfig/Servers/myserver> cmo
[MBeanServerInvocationHandler]mydomain:Name=myserver,Type=Server

导航并显示配置 MBean 示例

清单4-2 中的命令指示 WLST 连接到管理服务器实例,导航并显示 DomainMBean 中的 MBean。如果未指定参数,ls 命令将列出所有子 MBean 和特性。

清单 4-2 导航和显示配置 MBean
C:\> java weblogic.WLST
wls:/offline> connect('username','password')
wls:/mydomain/serverConfig> ls()
dr--   AppDeployments
dr--   BridgeDestinations
dr--   Clusters
dr--   DeploymentConfiguration
dr--   Deployments
dr--   EmbeddedLDAP
...
-r--   AdminServerName                              myserver
-r--   AdministrationMBeanAuditingEnabled           false
-r--   AdministrationPort                           9002
-r--   AdministrationPortEnabled                    false
-r--   AdministrationProtocol                       t3s
-r--   ArchiveConfigurationCount                    5
...
wls:/mydomain/serverConfig> cd('Servers')
wls:/mydomain/serverConfig/Servers> ls()
dr--   managed1
dr--   myserver
wls:/mydomain/serverConfig/Servers> cd('myserver')
wls:/mydomain/serverConfig/Servers/myserver> ls()
dr--   COM
dr--   CandidateMachines
dr--   Cluster
dr--   DefaultFileStore
dr--   ExecutiveQueues
dr--   IIOP
dr--   JTAMigrateableTarget
dr--   Log
dr--   Machine
dr--   NetworkAccessPoints
dr--   OverloadProtection
dr--   SSL
...
-r--   AcceptBacklog                                50
-r--   AdminReconnectIntervalSeconds                10
-r--   AdministrationPort                           0
-r--   AdministrationPortAfterOverride              9002
-r--   AdministrationPortEnabled                    false
-r--   AdministrationProtocol                       t3s
-r--   AutoKillIfFailed                             false
-r--   AutoRestart                                  true
....
wls:/mydomain/serverConfig/Servers/myserver> cd('Log/myserver')
wls:/mydomain/serverConfig/Servers/myserver/Log/myserver> ls()
dr--   DomainLogBroadcastFilter
dr--   LogFileFilter
dr--   MemoryBufferFilter
dr--   StdoutFilter
-r--   DomainLogBroadcastFilter                     null
-r--   DomainLogBroadcastSeverity                   Warning
-r--   DomainLogBroadcasterBufferSize               0
-r--   FileCount                                    7
-r--   FileMinSize                                  500
-r--   FileName                                     myserver.log
-r--   FileTimeSpan                                 24
-r--   Log4jLoggingEnabled                          false
-r--   LogFileFilter                                null
-r--   LogFileRotationDir                           null
-r--   LogFileSeverity                              Debug
-r--   MemoryBufferFilter                           null
-r--   MemoryBufferSeverity                         Debug
-r--   MemoryBufferSize                             500
-r--   Name                                         myserver
-r--   Notes                                        null
-r--   NumberOfFilesLimited                         false
-r--   RedirectStderrToServerLogEnabled             false
-r--   RedirectStdoutToServerLogEnabled             false
-r--   RotateLogOnStartup                           true
-r--   RotationTime                                 00:00
-r--   RotationType                                 bySize
-r--   StdoutFilter                                 null
-r--   StdoutSeverity                               Warning
-r--   Type                                         Log
-r-x   isSet                                        Boolean : String(propertyName)
-r-x   unSet                                        Void : String(propertyName)

ls 命令输出信息中,d 指定了 MBean,通过此 Mbean 可以使用 cd 命令(类似于文件系统中的目录),r 表示可读属性,w 表示可写属性,而 x 则表示可执行操作。

注意: ls 命令属性信息是基于 MBeanInfo 的;它不反映用户权限。

要想导航返回至父 MBean,请输入 cd('..') 命令:

wls:/mydomain/serverConfig/Servers/myserver/Log/myserver> cmo
[MBeanServerInvocationHandler]mydomain:Name=myserver,Server=myserver,Type=Log
wls:/mydomain/serverConfig/Servers/myserver/Log/myserver> cd('..')
wls:/mydomain/serverConfig/Servers/myserver/Log>
wls:/mydomain/serverConfig/Servers/myserver/Log> cmo
[MBeanServerInvocationHandler]mydomain:Name=myserver,Type=Server

导航返回到父 MBean 类型,WLST 把 cmoLogMBean 更改为 ServerMBean

要在导航到层次较深的 MBean 后返回到根 MBean,请输入 cd('/') 命令。


浏览运行时 MBean

与配置信息相似,WebLogic Server 运行时 MBean 被安排在一个层次数据结构中。当连接到管理服务器时,您可以通过输入 serverRuntimedomainRuntime 命令访问运行时 MBean 层次。serverRuntime 命令将 WLST 放在服务器运行时管理对象的根中(ServerRuntimeMBean);domainRuntime 命令则将其放在域范围内运行时管理对象的根中(DomainRuntimeMBean)。当连接到受管服务器时,运行时 MBean 的根是 ServerRuntimeMBean。域运行时 MBean 层次仅存在于管理服务器中;当连接到受管服务器时,无法使用 domainRuntime 命令。

有关详细信息,请参阅“WebLogic Server MBean Reference”中的 ServerRuntimeMBeanDomainRuntimeMBean

使用 cd 命令,WLST 能导航到任何运行时子 MBean。运行时 MBean 的导航模型与配置 MBean 的导航模型相同。但是,运行时 MBean 仅在其底层受管资源存在的同一台服务器实例上存在(除非域范围内运行时 MBean 在管理服务器中),并且它们都是不可编辑的。

导航并显示运行时 MBean 示例

清单4-3 中的命令指示 WLST 连接到管理服务器实例、导航并显示服务器和域运行时 MBean。

清单 4-3 导航和显示运行时 MBean
wls:/(offline) > connect('username','password')
wls:/mydomain/serverConfig> serverRuntime()
Location changed to serverRuntime tree.This is a read-only tree with ServerRuntimeMBean as the root.
For more help, use help('serverRuntime')
wls:/mydomain/serverRuntime> ls()
dr--   ApplicationRuntimes
dr--   ClusterRuntime
dr--   ConnectorServiceRuntime
...
dr--   JDBCServiceRuntime
dr--   JMSRuntime
dr--   JTARuntime
dr--   JVMRuntime
dr--   LibraryRuntimes
dr--   MailSessionRuntimes
dr--   RequestClassRuntimes
dr--   ServerChannelRuntimes
dr--   ServerSecurityRuntime
dr--   ServerServices
dr--   ThreadPoolRuntime
dr--   WLDFAccessRuntime
dr--   WLDFRuntime
dr--   WTCRuntime
dr--   WorkManagerRuntimes

-r--   ActivationTime                               1093958848908
-r--   AdminServer                                  true
-r--   AdminServerHost
-r--   AdminServerListenPort                        7001
-r--   AdminServerListenPortSecure                  false
-r--   AdministrationPort                           9002
-r--   AdministrationPortEnabled                    false
...
wls:/mydomain/serverRuntime> domainRuntime()
Location changed to domainRuntime tree.This is a read-only tree with DomainRuntimeMBean as the root.
For more help, use help('domainRuntime')
wls:/mydomain/domainRuntime> ls()
dr--   DeployerRuntime
...
dr--   ServerLifecycleRuntimes
dr--   ServerRuntimes
-r--   ActivationTime                               Tue Aug 31 09:27:22 EDT 2004
-r--   Clusters                                     null
-rw-   CurrentClusterDeploymentTarget               null
-rw-   CurrentClusterDeploymentTimeout              0
-rw-   Name                                         mydomain
-rw-   Parent                                       null
-r--   Type                                         DomainRuntime
-r-x   lookupServerLifecycleRuntime                 javax.management.ObjectName
: java.lang.String
wls:/mydomain/domainRuntime>

清单4-4 中的命令指示 WLST 在受管服务器实例中导航并显示运行时 MBean。

清单 4-4 在受管服务器中导航并显示运行时 MBean
wls:/offline> connect('username','password',`t3://localhost:7701')
Connecting to weblogic server instance running at t3://localhost:7701 as username weblogic ...
Successfully connected to managed Server 'managed1' that belongs to domain 'mydomain'.
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:/mydomain/serverConfig> serverRuntime()
wls:/mydomain/serverRuntime> ls()
dr--   ApplicationRuntimes
dr--   ClusterRuntime
...
dr--   JMSRuntime
dr--   JTARuntime
dr--   JVMRuntime
dr--   LibraryRuntimes
dr--   MailSessionRuntimes
dr--   RequestClassRuntimes
dr--   ServerChannelRuntimes
dr--   ServerSecurityRuntime
dr--   ThreadPoolRuntime
dr--   WLDFAccessRuntime
dr--   WLDFRuntime
dr--   WTCRuntime
dr--   WorkManagerRuntimes
-r--   ActivationTime                               1093980388931
-r--   AdminServer                                  false
-r--   AdminServerHost                              localhost
-r--   ActivationTime                               1093980388931
-r--   AdminServerListenPortSecure                  false
-r--   AdministrationPort                           9002
-r--   AdministrationPortEnabled                    false
-r--   AdminServer                                  false
wls:/mydomain/serverRuntime>


在 MBean 层次中导航

要想从运行时层次导航到配置 MBean,请输入 serverConfigdomainConfig (如果仅连接到管理服务器)命令。这将把 WLST 放在输入 serverRuntimedomainRuntime 命令前最后导航到的配置 Mbean。

以下示例中的命令将指示 WLST 从运行时 MBean 层次导航到配置 MBean 层次并返回:

wls:/mydomain/serverRuntime/JVMRuntime/managed1> serverConfig()
Location changed to serverConfig tree.This is a read-only tree with DomainMBean as the root.
For more help, use help('serverConfig')
wls:/mydomain/serverConfig> cd ('Servers/managed1')
wls:/mydomain/serverConfig/Servers/managed1> cd('Log/managed1')
wls:/mydomain/serverConfig/Servers/managed1/Log/managed1> serverRuntime()
wls:/mydomain/serverRuntime/JVMRuntime/managed1>

在运行时 MBean 层次中输入 serverConfig 命令会再次把 WLST 放在您上次导航到的配置 MBean 中。

wls:/mydomain/serverRuntime/JVMRuntime/managed1> serverConfig()
wls:/mydomain/serverConfig/Servers/managed1/Log/managed1>

有关详细信息,请参阅树命令。

您也可以使用 currentTree 命令存储您当前的 MBean 层次位置并在导航远离它后返回到此位置。请参阅 currentTree。

例如:

wls:/mydomain/serverConfig/Servers/managed1/Log/managed1> myLocation = currentTree()
wls:/mydomain/serverConfig/Servers/managed1/Log/managed1> serverRuntime()
wls:/mydomain/serverRuntime> cd(`JVMRuntime/managed1')
wls:/mydomain/serverRuntime/JVMRuntime/managed1>myLocation()
wls:/mydomain/serverConfig/Servers/managed1/Log/managed1>


查找 MBean

要找到特定的 MBean 和特性,您可以使用 find 命令。WLST 将路径名返回到存储特性及其值的 MBean 中。您可以使用 getMBean 命令以返回路径所指定的 MBean。有关详细信息,请参阅 find 和 getMBean。

例如:

wls:/mydomain/edit !> find('logfilename')

searching ...

/ApplicationRuntimes/myserver_wlnav.war/WebAppComponentRuntime/myserver_myserver_wlnav.war_wlnav_/wlnavLogFilename null

/Servers/myserver JDBCLogFileName jdbc.log

/Servers/myserver/WebServer/myserver LogFileName access.log

wls:/mydomain/edit !> bean=getMBean('Servers/myserver/WebServer/myserver')
wls:/mydomain/edit !> print bean
[MBeanServerInvocationHandler]mydomain:Name=myserver,Type=WebServer,Server=myserver
wls:/mydomain/edit !>

注意: 找不到实例时,getMBean 不会引发异常。

getPath 命令会返回特定 MBean 实例的 MBean 路径或者当前 Mbean 层次中 Mbean 的 ObjectName。请参阅 getPath。

wls:/mydomain/serverConfig>path=getPath('com.bea:Name=myserver,Type=Server')
wls:/mydomain/serverConfig> print path
Servers/myserver


访问自定义 MBean

WebLogic Server 提供了数百种 MBean,您可以使用它们配置和监视 EJB、Web 应用程序和其他可部署的 J2EE 模块。如果要使用其他 MBean 配置应用程序和资源,您可以在管理服务器的 MBean 服务器子系统中创建和注册您自己的 MBean。

有关自定义 MBean 的详细信息,请参阅“使用 JMX 开发可管理的应用程序”中的测量和注册自定义 MBean

要导航自定义 Mbean,可以在 WLST 连接到管理服务器或受管服务器实例时输入 custom 命令。当连接到 WebLogic Integration 或 WebLogic Portal 服务器时,WLST 能与所有的 WebLogic Integration 或 WebLogic Portal Server MBean 交互;非 WebLogic Server MBean 则显示为自定义 MBean。

WLST 导航、询问和编辑自定义 MBean 的方式与其配置 MBean 的方式相同;但是,自定义 MBean 不能使用 cmo 变量,因为存根控件不可用。

自定义 MBean 是可编辑的,但是不受 WebLogic Server 更改管理过程的限制。您可以使用 MBean 获得和设置方法,而调用、创建和删除这些自定义 Mbean 中的方法无需先输入 startEdit 命令。请参阅编辑配置 MBean。

自定义 MBean 是按域列举的,如以下示例所示。

wls:/mydomain/serverConfig> custom()
Location changed to custom tree.This is a writable tree with No root.For more help, use help('custom')
wls:/mydomain/custom> ls()
drw-   domain1
drw-   domain2
drw-   domain3
drw-   domain4
wls:/mydomain/custom> cd("domain2")
wls:/mydomain/custom/domain2> ls()
drw-   domain2:y1=x
drw-   domain2:y2=x
wls:/mydomain/custom/domain2> cd("domain2:y1=x")
wls:/mydomain/custom/domain2/domain2:y1=x> ls()
-rw-   MyAttribute 10
wls:/mydomain/custom/domain2/domain2:y1=x>


编辑配置 MBean

在管理服务器中,有一组配置 MBean 位于一个单一的、可编辑的层次内,其根为 DomainMBean。此层次包含了域中所有配置 MBean 的可编辑副本,并且此层次只作为更改管理过程的一部分使用。更改管理过程是一个用于在域中分发配置更改的受控过程;更改过程与数据库事务大体上相似。

您可以通过获取可编辑配置层次上的锁定,启动编辑过程,以防止其他人进行更改。完成更改后,保存这些更改并把它们分发到域中的所有服务器示例。分发更改后,每个服务器都可确定是否接受更改。如果所有服务器都能够接受更改,则它们将更新配置 MBean 的工作层次,更改即告完成。

注意: 配置锁定并不能阻止两个过程在同一用户标识下启动编辑会话。BEA Systems 不建议采用上述做法,因为当其中一个会话激活对其进行的更改后,该会话会解除锁定,而其他会话将无法保存或激活对其进行的更改。
注意: 例如,如果您想在 WLST 中启动编辑会话,并在同一用户名下的管理控制台中启动另外并发的编辑会话,当您使用 WLST 保存和激活您的更改时,那么您将丢失您正在管理控制台中进行的编辑。

有关进行和管理配置更改的详细信息,请参阅“了解域配置”中的配置更改管理过程,以及“使用 JMX 开发自定义管理实用工具”中的使用 JMX 管理域配置

进行配置更改:主要步骤

以下是描述使用 WLST 联机版进行配置编辑过程的基本步骤:

  1. 要启动更改过程,请输入 edit 命令。请参阅 edit。

    这将把 WLST 放在可编辑配置层次的根中,并且获得独占的配置锁定。

  2. 输入 startEdit 命令。

    startEdit 命令可启动被视为批处理更改的一部分的修改,此批处理更改在您输入 save 命令后才会提交到仓库中。

    startEdit 命令必须在调用任何命令之前使用,以修改域配置。但是,如果 WLST 检测到同一用户中正在进行编辑会话,此会话可能是通过管理控制台或其他 WLST 会话启动的,则 WLST 将继续您的编辑会话,而不需要输入 startEdit 命令。有关 startEdit 命令参数的详细信息,请参阅 startEdit。

    要想避免配置被无限期锁定的这种可能性,您可以指定一个超时时间段。管理员也可输入 cancelEdit 命令取消编辑会话并解除锁定。请参阅 cancelEdit。

    要想表示配置更改正在进行中,可把感叹号 (!) 放在 WLST 命令提示的末尾处。

  3. 使用 WLST 编辑命令对配置 Mbean 进行如下操作:创建、获取、设置其值、调用其操作以及删除其实例。请参阅编辑命令。

    在保存所做的更改前,使用 validate 命令以确保这些更改有效。请参阅 validate。

  4. 完成更改后,输入 save 命令。

    save 命令将您的更改保存到了 config.xml 文件的待定版本中;这样它就不会解除锁定。请参阅 save。

  5. 您可以进行其他更改,而不用重新输入 startEdit 命令,也可以通过输入 undo 命令撤消更改。

    undo 命令恢复了所有未保存的更改。请参阅 undo。

  6. 准备将更改分发到工作配置 MBean 时,请输入 activate 命令。

    activate 命令启动了更改的分发和锁定的解除;感叹号已从命令提示中删除。请参阅 activate。

  7. 也可以通过输入 stopEdit 或者 cancelEdit 命令放弃更改。

    stopEdit 命令可停止当前编辑会话并解除编辑锁定。此命令会放弃自上一次输入 save 命令后所做的所有更改。请参阅 stopEdit。

    cancelEdit 命令也会停止编辑会话并解除配置锁定,而且会放弃自上次输入 save 命令后所做的更改。但是,输入此命令的用户并非一定要是当前编辑者;这样就允许管理员来取消编辑会话。请参阅 cancelEdit。

清单 4-5 中的 WLST 联机版脚本将 WLST 连接到管理服务器中,启动编辑会话,此编辑会话可创建受管服务器、保存和激活更改、启动其他编辑会话、创建启动类并将此类定位到新建的服务器。

运行此脚本之前启动 WebLogic Server。请参阅运行脚本。

清单 4-5 创建受管服务器
connect("username","password")
edit()
startEdit()
svr = cmo.createServer("managedServer")
svr.setListenPort(8001)
svr.setListenAddress("my-address")
save()
activate(block="true")
startEdit()
sc = cmo.createStartupClass("my-startupClass")
sc.setClassName("com.bea.foo.bar")
sc.setArguments("foo bar")
# 获取服务器的 mbean 以对其进行定位
tBean = getMBean("Servers/managedServer")
if tBean != None:
print "Found our target"
sc.addTarget(tBean)
save()
activate(block="true")
disconnect()
exit()

如果要尝试不先输入 edit 命令而进行更改,WLST 将显示消息说明您尚未锁定更改配置,并提供进行锁定的机会。如果在输入 startEdit 命令后忘记调用 save,而又尝试退出脚本外壳,则系统会提醒您尚未处理和提交更改。此时可以提交或放弃对配置所做的所有更改。

要决定对 MBean 特性进行的更改是否要求重新启动服务器,请输入 isRestartRequired 命令。如果激活更改前在编辑会话期间输入命令,则系统将显示正在进行的特性更改并要求您重新启动服务器。如果在激活更改后输入命令,它将显示已完成的特性更改并要求您重新启动服务器。请参阅 isRestartRequired。

管理配置更改

WebLogic Server 提供“配置管理器”服务用来管理更改过程。getConfigManager 功能返回 ConfigurationManagerMBean(请参阅 getConfigManager)。ConfigurationManagerMBean 提供启动和停止编辑会话及保存、撤消和激活配置更改所需的方法。使用 ConfigurationManagerMBean 方法管理整个域的配置更改。有关详细信息,请参阅“WebLogic Server MBean Reference”中的 ConfigurationManagerMBean

清单4-6 中的 WLST 联机版脚本将 WLST 作为管理员连接到服务器实例,检查当前进行更改的编辑者是不是特定的操作员,然后取消配置编辑。此脚本也将清除所有已完成的激活任务。

运行此脚本之前启动 WebLogic Server。请参阅运行脚本。

清单 4-6 使用配置管理器
connect("theAdministrator","weblogic")
cmgr = getConfigManager()
user = cmgr.getCurrentEditor()
if user == "operatorSam":
cmgr.undo()
cmgr.cancelEdit()
cmgr.purgeCompletedActivationTasks()

跟踪配置更改

对于所有由 WLST 启动的更改,您可以使用 showChanges 命令,此命令显示了您对当前配置(从编辑会话启动开始,包括由服务器隐式执行的任何 MBean 操作)所进行的所有更改。请参阅清单4-7。

运行此脚本之前启动 WebLogic Server。请参阅运行脚本。

清单 4-7 显示更改
wls:/offline> connect('username','password')
wls:/mydomain/serverConfig> edit()
wls:/mydomain/edit> startEdit()
Starting an edit session ...
wls:/mydomain/edit !> cmo.createServer('managed2')
[MBeanServerInvocationHandler]mydomain:Name=managed2,Type=Server
wls:/mydomain/edit !> cd('Servers/managed2')
wls:/mydomain/edit/Servers/managed2 !> cmo.setListenPort(7702)
wls:/mydomain/edit/Servers/managed2 !> showChanges()
Changes that are in memory and saved to disc but not yet activated are:
MBean Changed           : mydomain:Name=mydomain,Type=Domain
Operation Invoked       : add
Attribute Modified      : Servers
Attributes Old Value    : null
Attributes New Value    : managed2
Server Restart Required : false
MBean Changed           : mydomain:Name=managed2,Type=Server
Operation Invoked       : modify
Attribute Modified      : StagingDirectoryName
Attributes Old Value    : null
Attributes New Value    : .\managed2\stage
Server Restart Required : true
MBean Changed           : mydomain:Name=managed2,Type=Server
Operation Invoked       : modify
Attribute Modified      : Name
Attributes Old Value    : null
Attributes New Value    : managed2
Server Restart Required : true
MBean Changed           : mydomain:Name=managed2,Type=Server
Operation Invoked       : modify
Attribute Modified      : ListenPort
Attributes Old Value    : null
Attributes New Value    : 7702
Server Restart Required : false
wls:/mydomain/edit/Servers/managed2 !> save()
wls:/mydomain/edit !> activate()
Started the activation of all your changes.
The edit lock associated with this edit session is released once the activation is successful.
The Activation task for your changes is assigned to the variable 'activationTask'
You can call the getUser() or getStatusByServer() methods on this variable to determine the status of your activation
[MBeanServerInvocationHandler]mydomain:Type=ActivationTask
wls:/mydomain/edit/Servers/managed2>

getActivationTask 功能提供关于激活请求的信息,并返回反映某个用户当前正在进行或最近完成的更改状态的最新 ActivationTaskMBean。调用此接口提供的方法,以获取正在进行的或已完成的最新激活任务的信息。有关详细信息,请参阅“WebLogic Server MBean Reference”中的 ActivationTaskMBean

清单4-8 中的 WLST 联机版脚本将 WLST 作为管理员连接到服务器实例中,获取激活任务并打印用户和任务状态。也将打印所有已完成的更改。

运行此脚本之前启动 WebLogic Server。请参阅运行脚本。

清单 4-8 检查激活任务
connect("theAdministrator","weblogic")
at = getActivationTask()
print "The user for this Task "+at.getUser()+" and the state is "+at.getState()
changes = at.getChanges()
for i in changes:
i.toString()

你可能感兴趣的:(Weblogic 脚本工具 导航和编辑 MBean)