【发布时间】:2019-05-30 03:48:39
【问题描述】:
我有一个 WLST 脚本来设置 WorkManager 并将其定位到 weblogic 域中的所有集群。问题是我在多个环境中有数百个域,所以不能有多个属性文件。有没有办法编写 wlst 脚本以从域中提取集群详细信息并将它们设置为创建的工作管理器的目标?
我尝试使用下面的方法获取集群详细信息,但它只列出了一个集群,其中在域上配置了 3 个集群。
#cd ('/Clusters')
Clusters = cmo.getClusters()
for clusters in Clusters:
svr = clusters.getName()
print svr
#
这是我正在使用的 wlst:
#import java.lang.Exception
# Connect to ADMIN
##################
userName=sys.argv[1]
userPW=sys.argv[2]
adminURL=sys.argv[3]
WL_DOMAIN=sys.argv[4]
exists = 'no';
connect(userName,userPW,adminURL)
edit()
startEdit()
cd ('/Clusters')
Clusters = cmo.getClusters()
for clusters in Clusters:
svr = clusters.getName()
print svr
cd('/SelfTuning/' + domainName)
cmo.createWorkManager('workManager')
cd('/SelfTuning/' + domainName + '/WorkManagers/workManager')
set('Targets',jarray.array([ObjectName('com.bea:Name='+svr+',Type=Cluster')], ObjectName))
activate()
#
以上脚本仅将创建的工作管理器定位到域本身具有 3 个集群的一个集群。我想将 WM 定位到域中的所有集群,而不对任何集群名称进行硬编码。请帮忙!
【问题讨论】:
-
您的脚本中有一个小错误,您只显示一个集群,因为“print svr”指令没有缩进。因此,您只打印域的最后一个集群。
-
您好科林,感谢您的快速回复。缩进“print svr”现在打印所有 3 个集群名称,但定位不适用于所有 3 个集群。脚本仍然只针对最后一个集群。请指教。提前致谢。