Я думаю, что вам может понадобиться использование тонкого административного клиента WebSphere , который предоставляет API-интерфейсы Java и предоставляет доступ к 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 MBeans.Вот пример, который запрашивает состояние кластера:
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()});
Вы можете вызывать дополнительные операции по желанию, такие как запрос статуса отдельного члена кластера.
Кроме того, помимо запросов,Вы также можете зарегистрировать уведомления , чтобы ваша программа могла получать уведомления о наступлении определенных событий, таких как изменение состояния кластеров, серверов или приложений.