From c0fb60d8ce5c3c1b76dbf0c30408367d5bf2d24f Mon Sep 17 00:00:00 2001 From: freyssin Date: Tue, 12 Jan 2021 15:21:33 +0100 Subject: [PATCH] Adds JMX monitoring for acquisition handler. --- .../joram/mom/dest/AcquisitionModule.java | 14 ++++++++------ .../joram/mom/dest/AcquisitionQueue.java | 15 ++++++++++++++- .../joram/mom/dest/AcquisitionQueueMBean.java | 9 +++++++-- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionModule.java b/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionModule.java index 85d344929..af70d1a75 100644 --- a/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionModule.java +++ b/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionModule.java @@ -1,6 +1,6 @@ /* * JORAM: Java(TM) Open Reliable Asynchronous Messaging - * Copyright (C) 2010 - 2017 ScalAgent Distributed Technologies + * Copyright (C) 2010 - 2021 ScalAgent Distributed Technologies * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -48,7 +48,7 @@ import fr.dyade.aaa.common.Debug; */ public class AcquisitionModule implements ReliableTransmitter { public static Logger logger = Debug.getLogger(AcquisitionModule.class.getName()); - + /** Verify that one and only one correct interface is implemented. */ public static void checkAcquisitionClass(String className) throws Exception { if (className == null) { @@ -70,11 +70,9 @@ public class AcquisitionModule implements ReliableTransmitter { clazz = clazz.getSuperclass(); } if (isDaemon && isHandler) { - throw new Exception("Acquisition class " + className - + " can't implement both AcquisitionHandler and AcquisitionDaemon interfaces."); + throw new Exception("Acquisition class " + className + " can't implement both AcquisitionHandler and AcquisitionDaemon interfaces."); } else if (!isDaemon && !isHandler) { - throw new Exception("Acquisition class " + className - + " must implement either AcquisitionHandler or AcquisitionDaemon interface."); + throw new Exception("Acquisition class " + className + " must implement either AcquisitionHandler or AcquisitionDaemon interface."); } } @@ -129,6 +127,10 @@ public class AcquisitionModule implements ReliableTransmitter { /** true if the acquisition daemon is running. */ private boolean running; + public boolean isRunning() { + return running; + } + public AcquisitionModule(Destination destination, String className, Properties properties) { if (logger.isLoggable(BasicLevel.DEBUG)) { logger.log(BasicLevel.DEBUG, "AcquisitionModule. prop = " + properties); diff --git a/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionQueue.java b/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionQueue.java index 848a941cb..6bf1e9dcb 100644 --- a/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionQueue.java +++ b/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionQueue.java @@ -1,6 +1,6 @@ /* * JORAM: Java(TM) Open Reliable Asynchronous Messaging - * Copyright (C) 2010 - 2015 ScalAgent Distributed Technologies + * Copyright (C) 2010 - 2021 ScalAgent Distributed Technologies * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -295,6 +295,19 @@ public class AcquisitionQueue extends Queue implements AcquisitionQueueMBean { return null; } + /** + * Returns the acquisition handler status. + * To be use by MBean interface. + * + * @return the acquisition handler status. + */ + @Override + public boolean isHandlerRunning() { + if (acquisitionModule == null) + return false; + return acquisitionModule.isRunning(); + } + /** * Start the handler. * diff --git a/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionQueueMBean.java b/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionQueueMBean.java index 582a0cfa7..f4ecb74c9 100644 --- a/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionQueueMBean.java +++ b/joram/joram/mom/core/src/main/java/org/objectweb/joram/mom/dest/AcquisitionQueueMBean.java @@ -1,6 +1,6 @@ /* * JORAM: Java(TM) Open Reliable Asynchronous Messaging - * Copyright (C) 2010 - 2017 ScalAgent Distributed Technologies + * Copyright (C) 2010 - 2021 ScalAgent Distributed Technologies * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -72,10 +72,15 @@ public interface AcquisitionQueueMBean extends QueueMBean, AcquisitionMBean { * @return the minimum threshold of waiting messages in the destination. */ long getPendingMin(); - public String dumpProperties(); + /** + * Returns the acquisition handler status. + * @return the acquisition handler status. + */ + public boolean isHandlerRunning(); + /** * Starts the handler. */ -- GitLab