2014-10-06 63 views
0

这里的文档: http://publib.boulder.ibm.com/infocenter/wsdoc400/v6r0/index.jsp?topic=/com.ibm.websphere.iseries.doc/info/ae/ae/tjmx_develop.html如何在Jython脚本中使用“adminClient.addNotificationListener”?

的问题是,这不起作用:

import javax.management.ObjectName as ObjectName 

... 
theNodeAgentName = "WebSphere:type=NodeAgent,node='app_node2',*" 
test_node_name = adminClient.queryNames(ObjectName(theNodeAgentName), None) 
print test_node_name 
adminClient.addNotificationListener(ObjectName(theNodeAgentName),listener,None,None) 

该实例的AdminClient不能找到节点代理的MBean。有任何想法吗?

输出:

[的WebSphere:名称=节点代理,过程=节点代理,平台=常见的,节点= app_node2,diagnosticProvider =真,版本= 8.5.5.3,类型=节点代理,mbeanIdentifier =节点代理,细胞= my_cell,规格= 1.0]

javax.management.InstanceNotFoundException: javax.management.InstanceNotFoundException:找不到 的WebSphere:类型=节点代理,节点= 'app_node2',*

回答

0

我发现脚本有什么问题(这是一个python的错误:“adminClient.queryNames”返回一个列表!),我传递一个列表到“addNotificationListener”函数的第一个参数,诀窍是queryNames和得到的第一个元素在列表中,如:

the_node_agent_name = "WebSphere:type=NodeAgent,node=app_node2,*" 
query_name = ObjectName(the_node_agent_name) 
node_agent_names = adminClient.queryNames(query_name, None) 
node_agent = ObjectName(str(node_agent_names[0])) 
print node_agent  
adminClient.addNotificationListener(node_agent,listener,None,None)