You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2015/12/15 18:01:41 UTC
svn commit: r1720194 -
/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java
Author: cwiklik
Date: Tue Dec 15 17:01:41 2015
New Revision: 1720194
URL: http://svn.apache.org/viewvc?rev=1720194&view=rev
Log:
UIMA-4708 Updated code to work with new AMQ jmx MBeans
Modified:
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java
Modified: uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java?rev=1720194&r1=1720193&r2=1720194&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java (original)
+++ uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java Tue Dec 15 17:01:41 2015
@@ -202,9 +202,10 @@ public class JmxMonitor implements Runna
uimaServicePattern = new ObjectName("org.apache.uima:type=ee.jms.services,*");
// Construct query string to fetch Queue MBean names from the JMX Server registry
uimaServiceQueuePattern = new ObjectName(
- "org.apache.activemq:BrokerName=localhost,Type=Queue,*");
+ "org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,*");
+
uimaServiceTempQueuePattern = new ObjectName(
- "org.apache.activemq:BrokerName=localhost,Type=TempQueue,*");
+ "org.apache.activemq:type=Broker,brokerName=localhost,destinationType=TempQueue,*");
// Fetch UIMA AS MBean names from the JMX Server that match the name pattern
Set<ObjectName> names = new HashSet<ObjectName>(mbsc.queryNames(uimaServicePattern, null));
String key = "";
@@ -286,17 +287,22 @@ public class JmxMonitor implements Runna
location = "Remote";
int spos = infoMBeanProxy.getBrokerURL().indexOf("//");
int endpos = infoMBeanProxy.getBrokerURL().lastIndexOf(":");
-
+
String remoteHostname = infoMBeanProxy.getBrokerURL().substring(spos + 2, endpos);
if (verbose)
System.out.println("Connecting to a remote JMX Server: " + remoteHostname + " key:"
+ key);
String remoteJMX = "service:jmx:rmi:///jndi/rmi://" + remoteHostname + ":1099/jmxrmi";
MBeanServerConnection remoteServer = getServerConnection(remoteJMX);
+
QueueViewMBean inputQueueProxy = getQueueMBean(remoteServer, infoMBeanProxy
.getInputQueueName(), uimaServiceQueuePattern);
if (inputQueueProxy != null) {
entry.setInputQueueInfo(inputQueueProxy);
+ ObjectName on = new ObjectName("org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName="+infoMBeanProxy.getInputQueueName());
+ long qsize = (Long)remoteServer.getAttribute(on, "QueueSize");
+ entry.setQueueSize(qsize);
+
} else {
System.out.println("Unable to find Input Queue:" + infoMBeanProxy.getInputQueueName()
+ " In JMX Registry:" + remoteJMX);
@@ -308,7 +314,7 @@ public class JmxMonitor implements Runna
} else {
replyQueueProxy = getQueueMBean(remoteServer, infoMBeanProxy.getReplyQueueName(),
uimaServiceTempQueuePattern);
-
+
}
if (replyQueueProxy != null) {
entry.setReplyQueueInfo(replyQueueProxy);
@@ -366,11 +372,12 @@ public class JmxMonitor implements Runna
private QueueViewMBean getQueueMBean(MBeanServerConnection server, String key,
ObjectName matchPattern) throws Exception {
Set<ObjectName> queues = new HashSet<ObjectName>(server.queryNames(matchPattern, null));
- String target = "Destination=" + key;
+ String target = "destinationName=" + key;
for (ObjectName name : queues) {
- if (name.toString().endsWith(target)) {
+ if (name.toString().contains(target)) {
System.out.println("Creating Proxy for Queue:" + name.toString());
+
return (QueueViewMBean) MBeanServerInvocationHandler.newProxyInstance(server, name,
QueueViewMBean.class, true);
}
@@ -389,7 +396,7 @@ public class JmxMonitor implements Runna
protected ServiceMetrics[] collectStats(boolean initial, long uptime) {
int cmFreeCasInstanceCount = 0;
ServiceMetrics[] metrics = null;
- int index = 0;
+
List<ServiceMetrics> metricsList = new ArrayList<ServiceMetrics>();
// iterate over all Performance MBeans to retrieve current metrics
for (ObjectName name : servicePerformanceNames) {
@@ -436,7 +443,10 @@ public class JmxMonitor implements Runna
// service is top level and uses JMS queue
inputQueueInfo = entry.getInputQueueInfo();
if (inputQueueInfo != null) {
- inputQueueDepth = inputQueueInfo.getQueueSize();
+ //String [] queueAttributes = {"QueueSize"};
+ inputQueueDepth = entry.getQueueSize(); //inputQueueInfo.getQueueSize();
+
+
}
}
long replyQueueDepth = -1; // -1 means not available
@@ -650,7 +660,17 @@ public class JmxMonitor implements Runna
String name = "";
- boolean isVmQueue = true;
+ long queueSize;
+
+ public long getQueueSize() {
+ return queueSize;
+ }
+
+ public void setQueueSize(long queueSize) {
+ this.queueSize = queueSize;
+ }
+
+ boolean isVmQueue = true;
double lastIdleTime = 0;