You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求可停止除AdminServer外所有运行状态Weblogic托管服务器的WLST脚本

Weblogic受管服务器批量停服脚本修正

核心错误原因

  • 缩进异常:WLST基于Jython运行,对代码块缩进要求严格,原脚本stopmanagedservers函数内多处缩进层级错误,if分支下的逻辑未正确缩进导致语法报错
  • 状态判断语法不严谨:in ("RUNNING")写法实际等价于直接匹配字符串内字符,并未实现元组匹配逻辑,易出现状态匹配异常
  • 上下文切换顺序错误:原代码先获取配置域服务器列表再切换到运行时上下文,逻辑顺序不合理,且未声明连接必填的用户名、密码、管理端地址三个变量
  • 运行状态打印逻辑缺失:原getdomainstatus函数获取到服务器状态后未打印,无法直观看到域内服务器当前状态

修正后完整脚本

import sys
import re
import getopt

# 请根据实际环境修改以下连接配置
USERNAME = "weblogic"
PASSWORD = "自定义的管理端密码"
ADMINURL = "t3://管理端IP:管理端端口"

def connectt():
    connect(USERNAME, PASSWORD, ADMINURL)

def getdomainstatus():
    servers=cmo.getServers()
    print "-------------------------------------------------------"
    print "\t"+cmo.getName()+" 域当前运行状态"
    print "-------------------------------------------------------"
    for server in servers:
        status=state(server.getName(),server.getType())
        print "服务器名称:%s,运行状态:%s" % (server.getName(), status)
    print "-------------------------------------------------------"     

# 停止除AdminServer外所有处于运行状态的受管服务器
def stopmanagedservers():
    domainRuntime()
    servers=cmo.getServers()
    for server in servers:
        server_name = server.getName()
        if server_name != 'AdminServer':
            bean="/ServerLifeCycleRuntimes/"+server_name
            serverbean=getMBean(bean)
            # 增加空判断避免未创建生命周期Bean的服务器报错
            if serverbean is not None and serverbean.getState() == "RUNNING":
                print "检测到运行状态受管服务器,正在停止:",server_name
                shutdown(server_name,server.getType())
    serverConfig()

connectt()
getdomainstatus()
stopmanagedservers()

执行注意事项

  • 执行前需确认Weblogic管理端处于正常运行状态
  • 连接配置中的管理端端口默认是7001,如有修改请同步调整
  • 若需要并行停止多台受管服务器,可以在shutdown方法中增加ignoreSessions='true'参数加快停止速度

内容的提问来源于stack exchange,提问作者Vignesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 03:09:01