以编程方式访问WebSphereApplicationServer及其资源
这是我关于StackOverflow的第一个问题,请耐心听我说 我想要实现什么 我需要编写一个独立的程序来访问WebSphereApplicationServer的一个或多个实例,并从中获取详细信息。就我的研究而言,有两种方法可以做到这一点以编程方式访问WebSphereApplicationServer及其资源,websphere,jmx,Websphere,Jmx,这是我关于StackOverflow的第一个问题,请耐心听我说 我想要实现什么 我需要编写一个独立的程序来访问WebSphereApplicationServer的一个或多个实例,并从中获取详细信息。就我的研究而言,有两种方法可以做到这一点 适配器 连接器 我目前正在采用“连接器”的方法,而SOAP连接器也是如此(因为它具有防火墙友好性) 所以,我的代码应该是这样的 通过这段代码,我能够获得WAS特定实例上所有MBean的列表(C:\Program Files\IBM\WebSphere\A
通过这段代码,我能够获得WAS特定实例上所有MBean的列表(C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01),并且它成功地打印了密钥属性列表 现在我有一个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特定实例上的所有应用程序
[查询、示例库、ivtApp、默认应用程序、PlantsByWebSphere]
我有兴趣了解更多有关已安装应用程序的信息,比如,它们是否已启动并正在运行?如果是这样,IP地址、内部版本号、是否正在维护等(仅引用它们作为示例)如果我能够获得MBean可以提供的应用程序的所有可能细节,那么它将完成我的任务(部分)
上面提到的只是一个例子,我想从MBean中获得更多。因此,请提供一个解决方案/示例代码,帮助我从WAS实例提供的任何MBean获取信息。(使用JMX)
其他详情:
IBM WebSphere Application Server,7.0.0.0(基本安装)
提前感谢,,
AJ通过查询所有服务器并检查应用程序是否在每个服务器上运行,然后从每个服务器查找主机,可以间接获得IP地址。我不确定是否有版本号。“维护中”是什么意思 您可以从应用程序和J2EEApplication(JSR88)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包开始。试试看
String query = "WebSphere:*,mbeanIdentifier=<XXX>";
String query=“WebSphere:*,mbeanIdentifier=”;
mbean的标识符在哪里感谢您的快速回复。所谓“维护中”,我的意思是应用程序在维护期间可能会停机。因此,当它关闭时,它可能无法从中获取数据。无论如何,ConfigServiceProxy可以用于ConfigService类型的MBean(如果我错了,请纠正我)。我在哪里可以找到访问MBean的更全面的方法列表,以及我们是否有这里提到的代理(AppManagementProxy、ConfigServiceProxy),还是必须依赖繁琐且容易出错的AdminClient.invoke(ObjectName、operation、params、signature);方法?是的,ConfigServiceProxy允许访问ConfigService,这是用于导航所有WAS配置的MBean。我不确定是否有一个全面的代理列表。我想说,写自己的是一个好主意,只是为了避免MBean交互将您的主要逻辑弄乱。再次感谢您如此快速的响应。。这是我第一次做的事情。那么,你能告诉我如何编写我自己的代理吗?它是否像我们最后要写的助手?像MBeanHelper.getServerMbeans这样的东西?(我们编写的MBeanHelper类)只需编写一个具有AdminClient实例变量的helper类,然后根据需要添加委托给AdminClient.invoke的方法(ObjectName、op、params、sig)。这就是预先提供的代理所做的一切。
String query = "WebSphere:*,mbeanIdentifier=<XXX>";