You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ec...@apache.org on 2008/02/02 01:38:42 UTC
svn commit: r617721 - in /geronimo/server/trunk/plugins/monitoring:
agent-jmx/src/main/java/org/apache/geronimo/monitoring/
agent-jmx/src/main/java/org/apache/geronimo/monitoring/snapshot/
mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/
Author: ecraig
Date: Fri Feb 1 16:38:35 2008
New Revision: 617721
URL: http://svn.apache.org/viewvc?rev=617721&view=rev
Log:
GERONIMO-3803
monitoring plugin: agent-jmx does not provide the correct interface for mconsole
Patch by Viet Nguyen
Modified:
geronimo/server/trunk/plugins/monitoring/agent-jmx/src/main/java/org/apache/geronimo/monitoring/MasterRemoteControlJMX.java
geronimo/server/trunk/plugins/monitoring/agent-jmx/src/main/java/org/apache/geronimo/monitoring/snapshot/SnapshotThread.java
geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MRCConnector.java
Modified: geronimo/server/trunk/plugins/monitoring/agent-jmx/src/main/java/org/apache/geronimo/monitoring/MasterRemoteControlJMX.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/monitoring/agent-jmx/src/main/java/org/apache/geronimo/monitoring/MasterRemoteControlJMX.java?rev=617721&r1=617720&r2=617721&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/monitoring/agent-jmx/src/main/java/org/apache/geronimo/monitoring/MasterRemoteControlJMX.java (original)
+++ geronimo/server/trunk/plugins/monitoring/agent-jmx/src/main/java/org/apache/geronimo/monitoring/MasterRemoteControlJMX.java Fri Feb 1 16:38:35 2008
@@ -67,9 +67,10 @@
private static Log log = LogFactory.getLog(MasterRemoteControlJMX.class);
// constants
private static final String GERONIMO_DEFAULT_DOMAIN = "geronimo";
- private static final Long DEFAULT_DURATION = new Long(5000);
+ private static final Long DEFAULT_DURATION = new Long(300000);
private static final int DEFAULT_RETENTION = 30;
private static final String RETENTION = "retention";
+ private static final String DURATION = "duration";
// mbean server to talk to other components
private static MBeanServer mbServer = null;
@@ -173,17 +174,19 @@
/**
* Stops the snapshot thread
*/
- public void stopSnapshot() {
+ public boolean stopSnapshot() {
if(snapshotThread != null) {
- if(snapshotThread.getSnapshotDuration() == Long.MAX_VALUE) {
- saveDuration(DEFAULT_DURATION);
- } else {
+ if(snapshotThread.getSnapshotDuration() != Long.MAX_VALUE) {
saveDuration(snapshotThread.getSnapshotDuration());
+ snapshotThread.setSnapshotDuration(Long.MAX_VALUE);
+ log.info("Snapshot thread stopped.");
+ return true;
+ } else {
+ return false;
}
- snapshotThread.setSnapshotDuration(Long.MAX_VALUE);
- log.info("Snapshot thread stopped.");
} else {
log.error("There is not a snapshot thread running. Stopping aborted.");
+ return false;
}
}
@@ -232,10 +235,10 @@
* @return Long
*/
public Long getSnapshotDuration() {
- if(snapshotThread != null) {
- return new Long(snapshotThread.getSnapshotDuration());
- } else {
- return DEFAULT_DURATION;
+ try {
+ return Long.parseLong(SnapshotConfigXMLBuilder.getAttributeValue(DURATION));
+ } catch(Exception e) {
+ return new Long(DEFAULT_DURATION);
}
}
@@ -292,7 +295,7 @@
* @param interval
*/
public boolean startSnapshot(Long interval, Integer retention) {
- if((snapshotThread == null || (snapshotThread != null && !snapshotThread.isAlive())) && interval.longValue() > 0) {
+ if((snapshotThread == null || (snapshotThread != null && !snapshotThread.isSnapshotRunning())) && interval.longValue() > 0) {
saveDuration(interval.longValue());
saveRetention(retention.intValue());
snapshotThread = new SnapshotThread(interval.longValue(), mbServer);
@@ -474,7 +477,11 @@
*/
public boolean isSnapshotRunning() {
// TODO: check if the snapshot thread is running
- return snapshotThread.isSnapshotRunning();
+ if(snapshotThread == null) {
+ return false;
+ } else {
+ return snapshotThread.isSnapshotRunning();
+ }
}
public static final GBeanInfo GBEAN_INFO;
@@ -485,7 +492,7 @@
infoFactory.addOperation("setAttribute", new Class[] {String.class, String.class, Object.class}, "void");
infoFactory.addOperation("startSnapshot", new Class[] {Long.class}, "Boolean");
infoFactory.addOperation("startSnapshot", new Class[] {Long.class, Integer.class}, "Boolean");
- infoFactory.addOperation("stopSnapshot", new Class[] {}, "void");
+ infoFactory.addOperation("stopSnapshot", new Class[] {}, "Boolean");
infoFactory.addOperation("fetchSnapshotData", new Class[] {Integer.class, Integer.class}, "ArrayList");
infoFactory.addOperation("fetchMaxSnapshotData", new Class[] {Integer.class}, "HashMap");
infoFactory.addOperation("fetchMinSnapshotData", new Class[] {Integer.class}, "HashMap");
@@ -499,6 +506,7 @@
infoFactory.addOperation("removeMBeanForSnapshot", new Class[] {String.class}, "void");
infoFactory.addOperation("getSnapshotRetention", new Class[] {}, "Integer");
infoFactory.addOperation("setSnapshotRetention", new Class[] {Integer.class}, "void");
+ infoFactory.addOperation("isSnapshotRunning", new Class[] {}, "Boolean");
infoFactory.setConstructor(new String[] {});
GBEAN_INFO = infoFactory.getBeanInfo();
}
Modified: geronimo/server/trunk/plugins/monitoring/agent-jmx/src/main/java/org/apache/geronimo/monitoring/snapshot/SnapshotThread.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/monitoring/agent-jmx/src/main/java/org/apache/geronimo/monitoring/snapshot/SnapshotThread.java?rev=617721&r1=617720&r2=617721&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/monitoring/agent-jmx/src/main/java/org/apache/geronimo/monitoring/snapshot/SnapshotThread.java (original)
+++ geronimo/server/trunk/plugins/monitoring/agent-jmx/src/main/java/org/apache/geronimo/monitoring/snapshot/SnapshotThread.java Fri Feb 1 16:38:35 2008
@@ -34,6 +34,7 @@
private long SNAPSHOT_DURATION;
private MBeanServer mbServer = null;
+ boolean isDone = false;
// list of mbean names that we will be taking snapshots of
private ArrayList<String> mbeanNames;
@@ -53,7 +54,7 @@
}
public boolean isSnapshotRunning() {
- return SNAPSHOT_DURATION == Long.MAX_VALUE;
+ return !isDone;
}
/**
@@ -101,6 +102,8 @@
e.printStackTrace();
}
}
+ // flag turned on to know when the thread stops
+ isDone = true;
}
/**
Modified: geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MRCConnector.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MRCConnector.java?rev=617721&r1=617720&r2=617721&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MRCConnector.java (original)
+++ geronimo/server/trunk/plugins/monitoring/mconsole-war/src/main/java/org/apache/geronimo/monitoring/console/MRCConnector.java Fri Feb 1 16:38:35 2008
@@ -487,6 +487,7 @@
running = (Boolean) mbServerConn.invoke(new ObjectName(PATH),
"isSnapshotRunning", new Object[] {}, new String[] {});
} catch (Exception e) {
+ e.printStackTrace();
return false;
}
}
@@ -757,16 +758,16 @@
}
}
- public long getSnapshotRetention() {
+ public int getSnapshotRetention() {
if (Protocol == 1) {
- return Long.parseLong(mrc.getSnapshotRetention());
+ return Integer.parseInt(mrc.getSnapshotRetention());
} else {
try {
- return Long.parseLong((String) mbServerConn.invoke(
+ return (Integer)mbServerConn.invoke(
new ObjectName(PATH), "getSnapshotRetention",
- new Object[] {}, new String[] {}));
+ new Object[] {}, new String[] {});
} catch (Exception e) {
e.printStackTrace();
}