Я пытаюсь реализовать простой мониторинг с помощью API DMR, пока я могу перечислить все источники данных, а затем получить для каждого из них некоторую статистику с помощью следующего выражения cli [/subsystem=datasources:read-resource( recursive=true)] переведено на Java:
ModelNode request = new ModelNode();
ModelNode op = request.get(ClientConstants.OP);
op.set(ClientConstants.READ_RESOURCE_OPERATION);
request.get(ClientConstants.RECURSIVE).set(true);
ModelNode address = request.get(ClientConstants.OP_ADDR);
address.add(ClientConstants.SUBSYSTEM, "datasources");
final ModelNode response = verify(client.execute(new OperationBuilder(request).build()));
List<ModelNode> list = response.get(ClientConstants.RESULT).get("data-source").asList();
for (ModelNode node : list) {
String dsName = node.keys().iterator().next();
//...Check for each ds using the cli expression
//[/subsystem=datasources/data-source=dsName/statistics=pool:read-resource(recursive=true, include-runtime=true)]
}
Но если я попытаюсь сделать то же самое для ejb3, используя выражение cli [/subsystem=ejb3:read-resource(recursive=true)], я не получу список ejb3, но что-то другое.
Я знаю, что могу получить то, что ищу, если я уже знаю имя приложения и его mdb с выражением cli [/deployment=App.war/subsystem=ejb3/message-driven-bean= Consumer:read-resource(include-runtime=true)] но у меня их много, поэтому я не хочу включать их список.
Есть ли здесь специалисты, которые могли бы мне помочь?
Спасибо!
Иоганн