这是我在StackOverflow上的第一个问题,请耐心等待 .
我想要实现的目标是什么?
我需要编写一个独立的程序来访问特定实例或Websphere Application Server的多个实例,并从中获取详细信息 . 就我的研究而言,有两种方法可以做到这一点 .
-
适配器
-
连接器
我目前采用的是'连接器'方法,也是SOAP连接器(因为它的防火墙友好性)
所以,我的代码将是这样的..
// Initialize the AdminClient.
Properties adminProps = new Properties();
adminProps.setProperty("type", AdminClient.CONNECTOR_TYPE_SOAP );
adminProps.setProperty("host", "localhost");
adminProps.setProperty("port", "8880");
AdminClient adminClient = AdminClientFactory.createAdminClient(adminProps);
String query = "WebSphere:*";
//String query = "WebSphere:type=Server,*";
ObjectName queryName = new ObjectName(query);
Set s = adminClient.queryNames(queryName, null);
if (!s.isEmpty()) {
iter = s.iterator();
while (iter.hasNext()) {
ObjectName nodeagent = (ObjectName) iter.next();
System.out.println("*********************************************");
System.out.println("KeyPropertyList: " + nodeagent.getKeyPropertyListString());
}
}
使用这段代码,我能够获得WAS特定实例(C:\ Program Files \ IBM \ WebSphere \ AppServer \ profiles \ AppSrv01)上所有MBean的列表,并成功打印Key - Property list .
现在我有一个MBean列表 . 接下来是什么?链接:_http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic = / com.ibm.websphere.javadoc.doc / web / mbeanDocs / index.html
这是我的查询:
如何获取我感兴趣的特定MBean的实例并获取所有相关属性?
例如:
AppManagement appM = AppManagementProxy.getJMXProxyForClient (adminClient);
System.out.println(appM.listApplications(null, null, null));
将列出该特定WAS实例上的所有应用程序
[query,SamplesGallery,ivtApp,DefaultApplication,PlantsByWebSphere]
我有兴趣了解更多关于已安装的应用程序的说法,它们是否正常运行?如果是这样,IP地址,内部版本号,是否处于维护状态等(仅引用它们作为示例)如果我可以获得MBean可以提供的应用程序的所有可能细节,那么它将完成我的任务(部分)
前面提到的只是一个例子,我想从MBeans中获得更多 . 因此,请提供一个解决方案/示例代码,以帮助我从WAS实例提供的任何MBean获取信息 . (使用JMX)
其他详细信息:IBM WebSphere Application Server,7.0.0.0(基本安装)
先谢谢你,AJ
2 回答
通过查询所有服务器并检查应用程序是否在每个服务器上运行,然后查找从每个服务器获取主机,可以间接获得IP地址 . 我不确定内部版本号是否可用 . “维护”是什么意思?
您可以从Application和J2EEApplication(JSR 88)MBean获取更多信息 . 因此,ObjectName(“WebSphere:type = Application,name = myapp”),它是特定于WebSphere的,或ObjectName(“WebSphere:type = J2EEApplication,name = myapp”) .
您可以使用ConfigServiceProxy获取配置信息并查询getid(“/ DefaultApplication:myapp /”) . 您可以查看PROFILE_HOME / config / cells / CELL / applications / APP.ear / deployments / APP / deployment.xml以查看配置中可用的信息类型 . 您可以将其与WAS_HOME / web / configDocs /中的类型信息进行匹配,从appdeployment包开始 .
尝试
mbean的标识符在哪里