使用python线程模块的Jython WLST(Weblogic 10)

时间:2012-02-25 23:08:27

标签: multithreading weblogic jython wlst

环境

  • Weblogic 10
  • Sun Java
  • HP UX

目标

以滚动重启方式重新启动所有群集的所有托管实例。希望不同的集群同时重启

问题

有没有办法使用Jython的线程模块同时执行多个WLST操作?

尝试方法

在一个脚本中,我有集群和服务器实例的类。集群具有服务器实例列表。群集对象上有一种方法可以遍历其服务器列表,并在群集运行正常时逐个重新启动它们。我试过将这个方法传递给一个这样的线程:

Thread(target=lambda: cluster.managedRestart()).start()

但我收到错误 TypeError: can't set arbitrary attribute in java instance: target

将托管重启代码分解为单独的文件,并使用execfile()从线程中调用它

是否有其他人有任何想法/建议/经验?

1 个答案:

答案 0 :(得分:4)

我认为不会明确使用线程来并行启动托管服务器。以下代码将并行启动所有集群。 block='false'not block启动命令的控件,这意味着将发出启动命令,并立即执行启动另一个群集的下一个命令。因此,所有集群都可以并行启动。同样适用于shutdown command

connect(username='weblogic', password='weblogic1', url='t3://localhost:7001')
clusterList = ls('/Clusters', returnMap='true')
for cluster in clusterList :
    start(cluster, 'Cluster', block='false')