2014-10-06 100 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) 
相關問題