我认为您可能正在寻找的是 WebSphere Thin Administrative Client 的使用,它公开了 Java API 并提供了对 WAS MBeans 的访问,允许您查询服务器/应用程序的状态(以及许多其他管理和监控任务)。
首先,您需要获得到 WAS(AdminClient)的连接,如下所示:
Properties clientProps = new Properties();
clientProps.setProperty(AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP);
clientProps.setProperty(AdminClient.CONNECTOR_HOST, dmgrHostname);
clientProps.setProperty(AdminClient.CONNECTOR_PORT, dmgrSoapConnectorPort);
if (dmgrIsSecure) {
clientProps.setProperty(AdminClient.CONNECTOR_SECURITY_ENABLED, "true");
clientProps.setProperty(AdminClient.USERNAME, wasUsername);
clientProps.setProperty(AdminClient.PASSWORD, wasUserPassword);
}
AdminClient adminClient = AdminClientFactory.createAdminClient(clientProps);
接下来,您需要查询相关的 MBean,然后执行相关操作。在您的情况下,您可能对ClusterMgr 和/或J2EEApplication MBean 感兴趣。下面是一个查询集群状态的例子:
AdminClient adminClient = getAdminClient(target);
ObjectName clusterMgr =
(ObjectName)adminClient.queryNames(
ObjectName.getInstance("WebSphere:*,type=ClusterMgr"), null).iterator().next();
String state = adminClient.invoke(clusterMgr, "getClusterState",
new Object[] {clusterName}, new String[] {String.class.getName()});
您可以根据需要调用进一步的操作,例如查询单个集群成员的状态。
此外,除了查询之外,您还可以register notifications 以便在某些事件发生时通知您的程序,例如集群、服务器或应用程序的状态变化。