IBM WebSphere Application Server wsadmin仅返回脚本中的第一个结果

时间:2016-08-01 22:22:30

标签: python websphere jython

在尝试获取WebSphere Application Server中的应用程序状态时,我希望有多个返回的mbeans。但是,WAS只返回第一个结果并丢弃其余的结果。

[wasadmin@servername01 ~]$ Run_wsadmin.sh -f wsadmin_Check_App_Status.py
WASX7209I: Connected to process "dmgr" on node PRDDMGR using SOAP connector;  The type of process is: DeploymentManager
WASX7026W: String "type=Application,name=AMTApp,*" corresponds to 6 different MBeans; returning first one.

我正在运行的脚本如下所示:

app_name = AppName
app_status = AdminControl.completeObjectName('type=Application,name=' + app_name + ',*').split('\n')

for status in app_status :
  print( status )
# end of For status in app_status

WebSphere中是否有一些设置,还是需要将一些特殊的库导入到我的脚本中?

1 个答案:

答案 0 :(得分:4)

根据AdminControl.completeObjectName()

的文件
  

使用completeObjectName命令创建基于片段的完整ObjectName值的字符串表示形式。此命令不与服务器通信以查找匹配的ObjectName值。 如果系统找到多个与片段匹配的MBean,则该命令将返回第一个。

因此该功能的行为符合预期。

<强>代替
在这种情况下,听起来您想使用AdminControl.queryNames(),它是为返回与您的查询匹配的结果列表而构建的。

例如:

app_name = AppName
app_status = AdminControl.queryNames('type=Application,name=' + app_name + ',*').split('\n')

for status in app_status :
  print( status )

来源:Commands for the AdminControl object using wsadmin scripting