如何通过WLST一次启动和停止多个weblogic托管服务器

时间:2017-03-27 23:00:36

标签: weblogic wlst

我正在编写一个代码来启动,停止,取消部署并在weblogc上部署我的应用程序。

我的组件需要部署在少数托管服务器上。

当我手动执行新部署时,我可以并行启动和停止服务器,方法是勾选多个框并选择启动和停止向下停止。见下文。 enter image description here

但是从WLST尝试时,我可以一次在一台服务器上执行此操作。

例如:

.jar

有没有办法可以在一次命令中开始停止多个服务器?

2 个答案:

答案 0 :(得分:1)

而不是直接启动和停止服务器create tasks,而是等待它们完成。

e.g。

tasks = []
for server in cmo.getServerLifeCycleRuntimes():
    # to shut down all servers
    if (server.getName() != ‘AdminServer’ and server.getState() != ‘RUNNING’ ):
        tasks.append(server.start())
    #or to start them up:
    #if (server.getName() != ‘AdminServer’ and server.getState() != ‘SHUTDOWN’ ):
    #   tasks.append(server.shutdown())


#wait for tasks to complete
while len(tasks) > 0:
    for task in tasks:
        if task.getStatus()  != ‘TASK IN PROGRESS’ :
            tasks.remove(task)

    java.lang.Thread.sleep(5000)

答案 1 :(得分:1)

我知道这是一篇旧文章,今天我正在阅读Martin Heinzl写的《 Advanced WebLogic Server Automation》这本书,因此在第282页中我发现了这一点。

def startCluster(clustername):
    try:
        start(clustername, 'Cluster')
    except Exception, e:
        print 'Error while starting cluster', e
        dumpStack()

我尝试过,它同时启动了托管服务器。

请记住,必须首先启动AdminServer,并且您的脚本必须先连接到AdminServer,然后才能尝试。

也许这对您没有用,因为服务器应该位于群集中,但是我想与大家分享一下:)