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 2009/09/02 17:16:02 UTC
svn commit: r810546 -
/incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java
Author: cwiklik
Date: Wed Sep 2 15:16:02 2009
New Revision: 810546
URL: http://svn.apache.org/viewvc?rev=810546&view=rev
Log:
UIMA-1541 Reformatted to conform to UIMA formatting guidelines. No other changes included.
Modified:
incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java
Modified: incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java?rev=810546&r1=810545&r2=810546&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java (original)
+++ incubator/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/aae/jmx/monitor/JmxMonitor.java Wed Sep 2 15:16:02 2009
@@ -42,714 +42,725 @@
import org.apache.uima.util.impl.CasPoolManagementImplMBean;
/**
- * Collects metrics from UIMA-AS Service MBeans at defined intervals and
- * passes the metrics for formatting to the registered {@link JmxMonitorListener}
- *
+ * Collects metrics from UIMA-AS Service MBeans at defined intervals and passes the metrics for
+ * formatting to the registered {@link JmxMonitorListener}
+ *
*/
public class JmxMonitor implements Runnable {
- private static final Class CLASS_NAME = JmxMonitor.class;
- public static final String CheckpointFrequency = "jmx.monitor.frequency";
- public static final String FormatterListener = "jmx.monitor.formatter";
- private boolean running = false;
- private MBeanServerConnection mbsc;
- private ObjectName uimaServicePattern;
- private ObjectName uimaServiceQueuePattern;
- private ObjectName uimaServiceTempQueuePattern;
- private Set<ObjectName> servicePerformanceNames;
- private long interval;
- private ConcurrentHashMap< ObjectName, StatEntry> stats = new ConcurrentHashMap<ObjectName, StatEntry>();
- private long startTime = System.nanoTime();
- private List<JmxMonitorListener> listeners = new ArrayList<JmxMonitorListener>();
- private int maxNameLength=0;
- private boolean verbose = false;
- private ThreadMXBean threads = null;
- private RuntimeMXBean runtime = null;
- private OperatingSystemMXBean os = null;
- private int serviceCount = 0;
- /**
- * Creates a connection to an MBean Server identified by <code>remoteServerURI</code>
- *
- * @param remoteServerURI - URI to MBeanServer
- * @return - connection to MBeanServer
- *
- * @throws Exception
- */
- private MBeanServerConnection getServerConnection( String remoteServerURI) throws Exception
- {
- JMXServiceURL url = new JMXServiceURL(remoteServerURI);
- JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
- MBeanServerConnection server = jmxc.getMBeanServerConnection();
- return server;
- }
-
- /**
- * Registers custom {@link JmxMonitorListener}
- *
- * @param listener - listener to receive metrics for formatting
- */
- public void addJmxMonitorListener( JmxMonitorListener listener)
- {
- listeners.add( listener );
- }
- private void showServerEnvironment(RuntimeMXBean runtime)
- {
- echo("\nRemote JVM Info: \n\tJVM::"+runtime.getVmName()+"\n\tJVM Vendor::"+runtime.getVmVendor()+"\n\tJVM Version::"+runtime.getVmVersion()+"\n\n");
- }
- /**
- * Passes metrics to all registered {@link JmxMonitorListener} objects
- *
- * @param uptime - time when the metrics were collected
- * @param metrics - current metrics
- */
- public void notifyListeners( long uptime, ServiceMetrics[] metrics )
- {
- for( JmxMonitorListener listener: listeners)
- {
- listener.onNewMetrics(uptime, metrics);
- }
- }
-
- public boolean isVerbose()
- {
- return verbose;
- }
-
- public void setVerbose()
- {
- verbose = true;
- }
- // Should be called after initialize()
- public int getMaxServiceNameLength()
- {
- return maxNameLength;
- }
-
- private CasPoolManagementImplMBean getServiceCasPoolMBean(String labelToMatch, Set<ObjectName> names) {
- for( ObjectName name: names) {
- // Check if the current name is the Service Performance MBean
- if ( name.toString().endsWith(labelToMatch) ) {
- return (CasPoolManagementImplMBean)MBeanServerInvocationHandler.newProxyInstance(mbsc, name,CasPoolManagementImplMBean.class, true);
+ private static final Class CLASS_NAME = JmxMonitor.class;
+
+ public static final String CheckpointFrequency = "jmx.monitor.frequency";
+
+ public static final String FormatterListener = "jmx.monitor.formatter";
+
+ private boolean running = false;
+
+ private MBeanServerConnection mbsc;
+
+ private ObjectName uimaServicePattern;
+
+ private ObjectName uimaServiceQueuePattern;
+
+ private ObjectName uimaServiceTempQueuePattern;
+
+ private Set<ObjectName> servicePerformanceNames;
+
+ private long interval;
+
+ private ConcurrentHashMap<ObjectName, StatEntry> stats = new ConcurrentHashMap<ObjectName, StatEntry>();
+
+ private long startTime = System.nanoTime();
+
+ private List<JmxMonitorListener> listeners = new ArrayList<JmxMonitorListener>();
+
+ private int maxNameLength = 0;
+
+ private boolean verbose = false;
+
+ private ThreadMXBean threads = null;
+
+ private RuntimeMXBean runtime = null;
+
+ private OperatingSystemMXBean os = null;
+
+ private int serviceCount = 0;
+
+ /**
+ * Creates a connection to an MBean Server identified by <code>remoteServerURI</code>
+ *
+ * @param remoteServerURI
+ * - URI to MBeanServer
+ * @return - connection to MBeanServer
+ *
+ * @throws Exception
+ */
+ private MBeanServerConnection getServerConnection(String remoteServerURI) throws Exception {
+ JMXServiceURL url = new JMXServiceURL(remoteServerURI);
+ JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
+ MBeanServerConnection server = jmxc.getMBeanServerConnection();
+ return server;
+ }
+
+ /**
+ * Registers custom {@link JmxMonitorListener}
+ *
+ * @param listener
+ * - listener to receive metrics for formatting
+ */
+ public void addJmxMonitorListener(JmxMonitorListener listener) {
+ listeners.add(listener);
+ }
+
+ private void showServerEnvironment(RuntimeMXBean runtime) {
+ echo("\nRemote JVM Info: \n\tJVM::" + runtime.getVmName() + "\n\tJVM Vendor::"
+ + runtime.getVmVendor() + "\n\tJVM Version::" + runtime.getVmVersion() + "\n\n");
+ }
+
+ /**
+ * Passes metrics to all registered {@link JmxMonitorListener} objects
+ *
+ * @param uptime
+ * - time when the metrics were collected
+ * @param metrics
+ * - current metrics
+ */
+ public void notifyListeners(long uptime, ServiceMetrics[] metrics) {
+ for (JmxMonitorListener listener : listeners) {
+ listener.onNewMetrics(uptime, metrics);
+ }
+ }
+
+ public boolean isVerbose() {
+ return verbose;
+ }
+
+ public void setVerbose() {
+ verbose = true;
+ }
+
+ // Should be called after initialize()
+ public int getMaxServiceNameLength() {
+ return maxNameLength;
+ }
+
+ private CasPoolManagementImplMBean getServiceCasPoolMBean(String labelToMatch,
+ Set<ObjectName> names) {
+ for (ObjectName name : names) {
+ // Check if the current name is the Service Performance MBean
+ if (name.toString().endsWith(labelToMatch)) {
+ return (CasPoolManagementImplMBean) MBeanServerInvocationHandler.newProxyInstance(mbsc,
+ name, CasPoolManagementImplMBean.class, true);
}
- }
- return null; // not found
- }
-
-
-
-
- /**
- * Connects to a remote JMX server identified by given <code>remoteServerURI</code>.
- * Creates proxies for all UIMA AS ServicePerformance MBeans found in the JMX server registry.
- * If UIMA AS service MBean indicates a remote service, this method connects to a remote
- * Broker and creates a proxy to an input queue for that service.
- *
- *
- * @param remoteServerURI
- * @param samplingInterval
- * @throws Exception
- */
- public void initialize(String remoteServerURI, long samplingInterval) throws Exception
- {
- interval = samplingInterval;
- // Connect to the remote JMX Server
- try {
- mbsc = getServerConnection(remoteServerURI);
- } catch( Exception e) {
- System.out.println("Unable to Connect To Jmx Server. URL:"+remoteServerURI);
- throw e;
- }
- System.out.println(">>> Connected To Jmx Server. URL:"+remoteServerURI);
- // Fetch remote JVM's MXBeans
- ObjectName runtimeObjName = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);
- ObjectName threadObjName = new ObjectName(ManagementFactory.THREAD_MXBEAN_NAME);
- ObjectName osObjName = new ObjectName( ManagementFactory.OPERATING_SYSTEM_MXBEAN_NAME);
+ }
+ return null; // not found
+ }
+
+ /**
+ * Connects to a remote JMX server identified by given <code>remoteServerURI</code>. Creates
+ * proxies for all UIMA AS ServicePerformance MBeans found in the JMX server registry. If UIMA AS
+ * service MBean indicates a remote service, this method connects to a remote Broker and creates a
+ * proxy to an input queue for that service.
+ *
+ *
+ * @param remoteServerURI
+ * @param samplingInterval
+ * @throws Exception
+ */
+ public void initialize(String remoteServerURI, long samplingInterval) throws Exception {
+ interval = samplingInterval;
+ // Connect to the remote JMX Server
+ try {
+ mbsc = getServerConnection(remoteServerURI);
+ } catch (Exception e) {
+ System.out.println("Unable to Connect To Jmx Server. URL:" + remoteServerURI);
+ throw e;
+ }
+ System.out.println(">>> Connected To Jmx Server. URL:" + remoteServerURI);
+ // Fetch remote JVM's MXBeans
+ ObjectName runtimeObjName = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);
+ ObjectName threadObjName = new ObjectName(ManagementFactory.THREAD_MXBEAN_NAME);
+ ObjectName osObjName = new ObjectName(ManagementFactory.OPERATING_SYSTEM_MXBEAN_NAME);
Set<ObjectName> mbeans = mbsc.queryNames(threadObjName, null);
mbeans = mbsc.queryNames(runtimeObjName, null);
- for (ObjectName name: mbeans)
- {
- runtime = (RuntimeMXBean)MBeanServerInvocationHandler.newProxyInstance(mbsc, name,RuntimeMXBean.class, true);
- }
-
- mbeans = mbsc.queryNames(osObjName, null);
- for (ObjectName name: mbeans)
- {
- os = (OperatingSystemMXBean)MBeanServerInvocationHandler.newProxyInstance(mbsc, name,OperatingSystemMXBean.class, true);
- }
-
- System.out.println(runtime.getVmName()+"::"+runtime.getVmVendor()+"::"+runtime.getVmVersion());
- // Construct query string to fetch UIMA-AS MBean names from the JMX Server registry
- 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,*");
- uimaServiceTempQueuePattern = new ObjectName("org.apache.activemq:BrokerName=localhost,Type=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 = "";
- if ( verbose )
- System.out.println("\nFound UIMA AS Services Managed by JMX Server:"+remoteServerURI);
-
-
- // Find all Service Performance MBeans
- for (ObjectName name : names) {
-
- // Set up a key for matching Service Performance MBean names
- String perfKey = "_Service Performance";
- // Check if the current name is the Service Performance MBean
- if ( name.toString().endsWith(perfKey) )
- {
- if ( servicePerformanceNames == null )
- {
- servicePerformanceNames = new HashSet<ObjectName>();
- }
- // Reduce the Set to Service Performance MBeans only
- servicePerformanceNames.add(name);
- // Create a proxy object for the Service Performance MBean
- ServicePerformanceMBean perfMBeanProxy =
- (ServicePerformanceMBean)MBeanServerInvocationHandler.newProxyInstance(mbsc, name,ServicePerformanceMBean.class, true);
- // Extract the service name from the MBean name
- int beginIndx = name.toString().indexOf(perfKey);
- key = name.toString().substring(0, beginIndx);
-
- int nameLen = name.getKeyProperty("name").length();
- if ( nameLen > maxNameLength )
- {
- maxNameLength = nameLen;
- }
-
- // Create a proxy object to the Service Info MBean
- ServiceInfoMBean infoMBeanProxy = getServiceInfoMBean(names, key);
- key = key.substring(key.indexOf(",name=")+",name=".length());
- // Create a proxy to the service CasPool object.
- CasPoolManagementImplMBean casPoolMBeanProxy = null;
-
- if ( infoMBeanProxy.isTopLevel() ){
- if ( infoMBeanProxy.isAggregate() ) {
- casPoolMBeanProxy = getServiceCasPoolMBean("AggregateContext", names);
- } else {
- casPoolMBeanProxy = getServiceCasPoolMBean("PrimitiveAEService", names);
- }
- }
- // Create a Map entry containing MBeans
- StatEntry entry = null;
- if ( casPoolMBeanProxy != null ) {
+ for (ObjectName name : mbeans) {
+ runtime = (RuntimeMXBean) MBeanServerInvocationHandler.newProxyInstance(mbsc, name,
+ RuntimeMXBean.class, true);
+ }
+
+ mbeans = mbsc.queryNames(osObjName, null);
+ for (ObjectName name : mbeans) {
+ os = (OperatingSystemMXBean) MBeanServerInvocationHandler.newProxyInstance(mbsc, name,
+ OperatingSystemMXBean.class, true);
+ }
+
+ System.out.println(runtime.getVmName() + "::" + runtime.getVmVendor() + "::"
+ + runtime.getVmVersion());
+ // Construct query string to fetch UIMA-AS MBean names from the JMX Server registry
+ 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,*");
+ uimaServiceTempQueuePattern = new ObjectName(
+ "org.apache.activemq:BrokerName=localhost,Type=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 = "";
+ if (verbose)
+ System.out.println("\nFound UIMA AS Services Managed by JMX Server:" + remoteServerURI);
+
+ // Find all Service Performance MBeans
+ for (ObjectName name : names) {
+
+ // Set up a key for matching Service Performance MBean names
+ String perfKey = "_Service Performance";
+ // Check if the current name is the Service Performance MBean
+ if (name.toString().endsWith(perfKey)) {
+ if (servicePerformanceNames == null) {
+ servicePerformanceNames = new HashSet<ObjectName>();
+ }
+ // Reduce the Set to Service Performance MBeans only
+ servicePerformanceNames.add(name);
+ // Create a proxy object for the Service Performance MBean
+ ServicePerformanceMBean perfMBeanProxy = (ServicePerformanceMBean) MBeanServerInvocationHandler
+ .newProxyInstance(mbsc, name, ServicePerformanceMBean.class, true);
+ // Extract the service name from the MBean name
+ int beginIndx = name.toString().indexOf(perfKey);
+ key = name.toString().substring(0, beginIndx);
+
+ int nameLen = name.getKeyProperty("name").length();
+ if (nameLen > maxNameLength) {
+ maxNameLength = nameLen;
+ }
+
+ // Create a proxy object to the Service Info MBean
+ ServiceInfoMBean infoMBeanProxy = getServiceInfoMBean(names, key);
+ key = key.substring(key.indexOf(",name=") + ",name=".length());
+ // Create a proxy to the service CasPool object.
+ CasPoolManagementImplMBean casPoolMBeanProxy = null;
+
+ if (infoMBeanProxy.isTopLevel()) {
+ if (infoMBeanProxy.isAggregate()) {
+ casPoolMBeanProxy = getServiceCasPoolMBean("AggregateContext", names);
+ } else {
+ casPoolMBeanProxy = getServiceCasPoolMBean("PrimitiveAEService", names);
+ }
+ }
+ // Create a Map entry containing MBeans
+ StatEntry entry = null;
+ if (casPoolMBeanProxy != null) {
entry = new StatEntry(perfMBeanProxy, infoMBeanProxy, casPoolMBeanProxy);
- } else {
- entry = new StatEntry(perfMBeanProxy, infoMBeanProxy);
- }
-
- String location = "Collocated";
- // If a service is co-located in the same JVM fetch the service queue proxy
- if ( infoMBeanProxy.getBrokerURL().startsWith("Embedded Broker"))
- {
-
- if ( infoMBeanProxy.isCASMultiplier())
- {
- // Create a proxy to the Cas Multiplier CasPool object.
- CasPoolManagementImplMBean casPoolMBean = getCasPoolMBean(names, infoMBeanProxy.getServiceKey());
- if ( casPoolMBean != null )
- {
- entry.setCasPoolMBean(casPoolMBean);
- }
- }
-
- // Create a proxy to the service queue MBean
+ } else {
+ entry = new StatEntry(perfMBeanProxy, infoMBeanProxy);
+ }
+
+ String location = "Collocated";
+ // If a service is co-located in the same JVM fetch the service queue proxy
+ if (infoMBeanProxy.getBrokerURL().startsWith("Embedded Broker")) {
+
+ if (infoMBeanProxy.isCASMultiplier()) {
+ // Create a proxy to the Cas Multiplier CasPool object.
+ CasPoolManagementImplMBean casPoolMBean = getCasPoolMBean(names, infoMBeanProxy
+ .getServiceKey());
+ if (casPoolMBean != null) {
+ entry.setCasPoolMBean(casPoolMBean);
+ }
+ }
+
+ // Create a proxy to the service queue MBean
UimaVmQueueMBean queueProxy = getQueueMBean(mbsc, infoMBeanProxy.getInputQueueName());
- if (queueProxy != null ) {
- entry.setInputQueueInfo(queueProxy);
- }
+ if (queueProxy != null) {
+ entry.setInputQueueInfo(queueProxy);
+ }
UimaVmQueueMBean replyQueueProxy = getQueueMBean(mbsc, infoMBeanProxy.getReplyQueueName());
- if (replyQueueProxy != null ) {
+ if (replyQueueProxy != null) {
entry.setReplyQueueInfo(replyQueueProxy);
}
-
- }
- else
- {
- // The MBean is for a remote service. Connect to this service Broker and create a proxy
- // to an input queue for the service. Assumption: the broker registers JMX server on
- // port 1099.
- 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);
- }
- else
- {
- System.out.println("Unable to find Input Queue:"+infoMBeanProxy.getInputQueueName()+" In JMX Registry:"+remoteJMX);
- }
- QueueViewMBean replyQueueProxy = null;
- if ( infoMBeanProxy.isAggregate())
- {
- replyQueueProxy = getQueueMBean(mbsc, infoMBeanProxy.getReplyQueueName(), uimaServiceQueuePattern);
- }
- else
- {
- replyQueueProxy = getQueueMBean(remoteServer, infoMBeanProxy.getReplyQueueName(), uimaServiceTempQueuePattern);
-
- }
- if (replyQueueProxy != null )
- {
- entry.setReplyQueueInfo(replyQueueProxy);
- }
- else
- {
- System.out.println("Unable to find Reply Queue:"+infoMBeanProxy.getReplyQueueName()+" In JMX Registry:"+remoteJMX);
- }
- }
- if ( verbose )
- System.out.println("\nUIMA AS Service:"+key+"[>>> "+location+" <<<]\n\tService Broker:"+infoMBeanProxy.getBrokerURL()+"\n\tQueue Name:"+infoMBeanProxy.getInputQueueName());
- serviceCount++;
- stats.put(name, entry);
-
- }
-
- }
-
- }
- protected int getServiceCount() {
- return serviceCount;
- }
-
- /**
- * Returns a proxy object to an UIMA-AS Service Info MBean identified by a <code>key</code>
- *
- * @param names - list of MBean names
- * @param key - target name to find in the list of MBeans
- * @return - proxy to MBean identified by <code>key</code>
- */
- private ServiceInfoMBean getServiceInfoMBean(Set<ObjectName> names, String key)
- {
- String target = key+"_Service Info";
- for (ObjectName name : names) {
- if ( name.toString().equals(target) )
- {
- return (ServiceInfoMBean)MBeanServerInvocationHandler.newProxyInstance(mbsc, name,ServiceInfoMBean.class, true);
- }
- }
- return null;
- }
-
- private CasPoolManagementImplMBean getCasPoolMBean(Set<ObjectName> names, String target)
- {
- for (ObjectName name : names) {
- if ( name.toString().endsWith(target) )
- {
- return (CasPoolManagementImplMBean)MBeanServerInvocationHandler.newProxyInstance(mbsc, name,CasPoolManagementImplMBean.class, true);
- }
- }
- return null;
- }
- 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;
- for (ObjectName name : queues) {
-
- if ( name.toString().endsWith(target) )
- {
- System.out.println("Creating Proxy for Queue:"+name.toString());
- return (QueueViewMBean)MBeanServerInvocationHandler.newProxyInstance(server, name,QueueViewMBean.class, true);
- }
- }
- return null;
- }
- private UimaVmQueueMBean getQueueMBean(MBeanServerConnection server, String aPattern) throws Exception
- {
- ObjectName name = new ObjectName( aPattern );
- System.out.println("Creating Proxy for Queue:"+name.toString());
- return (UimaVmQueueMBean)MBeanServerInvocationHandler.newProxyInstance(server, name, UimaVmQueueMBean.class, true);
+
+ } else {
+ // The MBean is for a remote service. Connect to this service Broker and create a proxy
+ // to an input queue for the service. Assumption: the broker registers JMX server on
+ // port 1099.
+ 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);
+ } else {
+ System.out.println("Unable to find Input Queue:" + infoMBeanProxy.getInputQueueName()
+ + " In JMX Registry:" + remoteJMX);
+ }
+ QueueViewMBean replyQueueProxy = null;
+ if (infoMBeanProxy.isAggregate()) {
+ replyQueueProxy = getQueueMBean(mbsc, infoMBeanProxy.getReplyQueueName(),
+ uimaServiceQueuePattern);
+ } else {
+ replyQueueProxy = getQueueMBean(remoteServer, infoMBeanProxy.getReplyQueueName(),
+ uimaServiceTempQueuePattern);
+
+ }
+ if (replyQueueProxy != null) {
+ entry.setReplyQueueInfo(replyQueueProxy);
+ } else {
+ System.out.println("Unable to find Reply Queue:" + infoMBeanProxy.getReplyQueueName()
+ + " In JMX Registry:" + remoteJMX);
+ }
+ }
+ if (verbose)
+ System.out.println("\nUIMA AS Service:" + key + "[>>> " + location
+ + " <<<]\n\tService Broker:" + infoMBeanProxy.getBrokerURL() + "\n\tQueue Name:"
+ + infoMBeanProxy.getInputQueueName());
+ serviceCount++;
+ stats.put(name, entry);
+
+ }
+
+ }
+
+ }
+
+ protected int getServiceCount() {
+ return serviceCount;
}
-
- protected ServiceMetrics[] collectStats(boolean initial, long uptime) {
+
+ /**
+ * Returns a proxy object to an UIMA-AS Service Info MBean identified by a <code>key</code>
+ *
+ * @param names
+ * - list of MBean names
+ * @param key
+ * - target name to find in the list of MBeans
+ * @return - proxy to MBean identified by <code>key</code>
+ */
+ private ServiceInfoMBean getServiceInfoMBean(Set<ObjectName> names, String key) {
+ String target = key + "_Service Info";
+ for (ObjectName name : names) {
+ if (name.toString().equals(target)) {
+ return (ServiceInfoMBean) MBeanServerInvocationHandler.newProxyInstance(mbsc, name,
+ ServiceInfoMBean.class, true);
+ }
+ }
+ return null;
+ }
+
+ private CasPoolManagementImplMBean getCasPoolMBean(Set<ObjectName> names, String target) {
+ for (ObjectName name : names) {
+ if (name.toString().endsWith(target)) {
+ return (CasPoolManagementImplMBean) MBeanServerInvocationHandler.newProxyInstance(mbsc,
+ name, CasPoolManagementImplMBean.class, true);
+ }
+ }
+ return null;
+ }
+
+ 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;
+ for (ObjectName name : queues) {
+
+ if (name.toString().endsWith(target)) {
+ System.out.println("Creating Proxy for Queue:" + name.toString());
+ return (QueueViewMBean) MBeanServerInvocationHandler.newProxyInstance(server, name,
+ QueueViewMBean.class, true);
+ }
+ }
+ return null;
+ }
+
+ private UimaVmQueueMBean getQueueMBean(MBeanServerConnection server, String aPattern)
+ throws Exception {
+ ObjectName name = new ObjectName(aPattern);
+ System.out.println("Creating Proxy for Queue:" + name.toString());
+ return (UimaVmQueueMBean) MBeanServerInvocationHandler.newProxyInstance(server, name,
+ UimaVmQueueMBean.class, true);
+ }
+
+ protected ServiceMetrics[] collectStats(boolean initial, long uptime) {
int cmFreeCasInstanceCount = 0;
ServiceMetrics[] metrics = new ServiceMetrics[servicePerformanceNames.size()];
int index = 0;
- // iterate over all Performance MBeans to retrieve current metrics
+ // iterate over all Performance MBeans to retrieve current metrics
for (ObjectName name : servicePerformanceNames) {
- try {
- // Fetch previous metrics for service identified by 'name'
+ try {
+ // Fetch previous metrics for service identified by 'name'
StatEntry entry = stats.get(name);
- if ( entry == null ) {
+ if (entry == null) {
continue;
}
ServiceInfoMBean serviceInfo = entry.getServiceInfoMBeanProxy();
- CasPoolManagementImplMBean getServiceCasPoolMBeanProxy = entry.getServiceCasPoolMBeanProxy();
+ CasPoolManagementImplMBean getServiceCasPoolMBeanProxy = entry
+ .getServiceCasPoolMBeanProxy();
boolean isRemote = serviceInfo.getBrokerURL().startsWith("tcp:");
boolean topLevel = serviceInfo.isTopLevel();
-
- // Get the current reading from MBeans
+ // Get the current reading from MBeans
double idleTime = entry.getServicePerformanceMBeanProxy().getIdleTime();
double casPoolWaitTime = entry.getServicePerformanceMBeanProxy().getCasPoolWaitTime();
- double shadowCasPoolWaitTime = entry.getServicePerformanceMBeanProxy().getShadowCasPoolWaitTime();
+ double shadowCasPoolWaitTime = entry.getServicePerformanceMBeanProxy()
+ .getShadowCasPoolWaitTime();
double analysisTime = entry.getServicePerformanceMBeanProxy().getAnalysisTime();
long processCount = entry.getServicePerformanceMBeanProxy().getNumberOfCASesProcessed();
QueueViewMBean inputQueueInfo = entry.getInputQueueInfo();
QueueViewMBean replyQueueInfo = entry.getReplyQueueInfo();
-
- if ( serviceInfo.isCASMultiplier() && !isRemote && entry.getCasPoolMBean() != null) {
+
+ if (serviceInfo.isCASMultiplier() && !isRemote && entry.getCasPoolMBean() != null) {
cmFreeCasInstanceCount = entry.getCasPoolMBean().getAvailableInstances();
}
long inputQueueDepth = -1;
UimaVmQueueMBean vmInputQueueInfo = null;
- // if the service is colocated, get the bean object for the internal (non-jms) queue
- if ( entry.isVmQueue ) {
+ // if the service is colocated, get the bean object for the internal (non-jms) queue
+ if (entry.isVmQueue) {
vmInputQueueInfo = entry.getVmInputQueueInfo();
- if ( vmInputQueueInfo != null ) {
+ if (vmInputQueueInfo != null) {
inputQueueDepth = vmInputQueueInfo.getQueueSize();
- }
+ }
} else {
// service is top level and uses JMS queue
inputQueueInfo = entry.getInputQueueInfo();
- if ( inputQueueInfo != null ) {
+ if (inputQueueInfo != null) {
inputQueueDepth = inputQueueInfo.getQueueSize();
}
}
long replyQueueDepth = -1; // -1 means not available
UimaVmQueueMBean vmReplyQueueInfo = null;
- if ( entry.isVmQueue ) {
+ if (entry.isVmQueue) {
vmReplyQueueInfo = entry.getVmReplyQueueInfo();
- if ( vmReplyQueueInfo != null ) {
+ if (vmReplyQueueInfo != null) {
replyQueueDepth = vmReplyQueueInfo.getQueueSize();
}
} else {
replyQueueInfo = entry.getReplyQueueInfo();
- if ( replyQueueInfo != null ) {
+ if (replyQueueInfo != null) {
replyQueueDepth = replyQueueInfo.getQueueSize();
}
}
- // compute the delta idle time by subtracting previously reported idle time from the
- // current idle time
+ // compute the delta idle time by subtracting previously reported idle time from the
+ // current idle time
double deltaIdleTime = 0;
- if ( initial == false )
- {
+ if (initial == false) {
deltaIdleTime = idleTime - entry.getIdleTime();
}
-
+
double deltaAnalysisTime = 0;
- if ( analysisTime > 0 )
- {
+ if (analysisTime > 0) {
deltaAnalysisTime = analysisTime - entry.getAnalysisTime();
}
-
+
ServiceMetrics serviceMetrics = new ServiceMetrics();
serviceMetrics.setCasMultiplier(entry.getServiceInfoMBeanProxy().isCASMultiplier());
serviceMetrics.setServiceRemote(isRemote);
serviceMetrics.setTopLevelService(topLevel);
- serviceMetrics.setTimestamp((double)uptime/1000000);
+ serviceMetrics.setTimestamp((double) uptime / 1000000);
serviceMetrics.setIdleTime(deltaIdleTime);
serviceMetrics.setServiceName(name.getKeyProperty("name"));
- serviceMetrics.setProcessCount(processCount-entry.getLastCASCount());
+ serviceMetrics.setProcessCount(processCount - entry.getLastCASCount());
serviceMetrics.setInputQueueDepth(inputQueueDepth);
serviceMetrics.setReplyQueueDepth(replyQueueDepth);
- serviceMetrics.setProcessThreadCount(entry.getServicePerformanceMBeanProxy().getProcessThreadCount());
+ serviceMetrics.setProcessThreadCount(entry.getServicePerformanceMBeanProxy()
+ .getProcessThreadCount());
serviceMetrics.setAnalysisTime(deltaAnalysisTime);
serviceMetrics.setCmFreeCasInstanceCount(cmFreeCasInstanceCount);
- // The service cas pool proxy is only valid for aggregates and top level primitives
- if ( getServiceCasPoolMBeanProxy != null ) {
- serviceMetrics.setSvcFreeCasInstanceCount(getServiceCasPoolMBeanProxy.getAvailableInstances());
- }
- // populate shadow CAS pool metric for remote CAS multiplier. Filter out the top level service
- if ( entry.getServiceInfoMBeanProxy().isCASMultiplier() && isRemote && !topLevel )
- {
- serviceMetrics.setShadowCasPoolWaitTime(shadowCasPoolWaitTime-entry.getTotalSCPWaitTime());
- entry.setSCPWaitTime(shadowCasPoolWaitTime);
+ // The service cas pool proxy is only valid for aggregates and top level primitives
+ if (getServiceCasPoolMBeanProxy != null) {
+ serviceMetrics.setSvcFreeCasInstanceCount(getServiceCasPoolMBeanProxy
+ .getAvailableInstances());
}
- else
- {
- // populate CAS pool metric
- serviceMetrics.setCasPoolWaitTime(casPoolWaitTime-entry.getTotalCPWaitTime());
+ // populate shadow CAS pool metric for remote CAS multiplier. Filter out the top level
+ // service
+ if (entry.getServiceInfoMBeanProxy().isCASMultiplier() && isRemote && !topLevel) {
+ serviceMetrics.setShadowCasPoolWaitTime(shadowCasPoolWaitTime
+ - entry.getTotalSCPWaitTime());
+ entry.setSCPWaitTime(shadowCasPoolWaitTime);
+ } else {
+ // populate CAS pool metric
+ serviceMetrics.setCasPoolWaitTime(casPoolWaitTime - entry.getTotalCPWaitTime());
entry.setCPWaitTime(casPoolWaitTime);
}
- // Add metrics collected from the service to the array of metrics
- // in the current sampling (interval). The metrics array will
- // be provided to all listeners plugged into this monitor.
+ // Add metrics collected from the service to the array of metrics
+ // in the current sampling (interval). The metrics array will
+ // be provided to all listeners plugged into this monitor.
metrics[index++] = serviceMetrics;
- // Save current metrics for the next delta
+ // Save current metrics for the next delta
entry.setIdleTime(idleTime);
entry.incrementCASCount(processCount);
entry.incrementAnalysisTime(analysisTime);
-
- } catch( Exception e) {
+
+ } catch (Exception e) {
e.printStackTrace();
}
-
+
} // for
return metrics;
- }
- /**
- * Retrieves metrics from UIMA-AS MBeans at defined interval.
- *
- */
- public void run()
- {
- running = true;
- boolean initial = true;
- while( running )
- {
- long sampleStart = System.nanoTime();
- long uptime = sampleStart - startTime;
- try {
- if ( mbsc != null ) {
- mbsc.getMBeanCount(); // test the server
- }
- } catch ( Exception e) {
- e.printStackTrace();
- }
- ServiceMetrics[] metrics = collectStats(initial, uptime);
- initial = false;
- // Notify listeners with current metrics collected from MBeans
- notifyListeners(uptime, metrics);
-
- // compute wait time till next sample
- long sampleEnd = System.nanoTime();
- long time2wait;
- long timeLost = (200000 + sampleEnd - sampleStart)/1000000;
- if (interval > timeLost) {
- time2wait = interval - timeLost;
- }
- else {
- // Increase interval to a multiple of the requested interval
- long newInterval = interval * ( 1 + (timeLost / interval));
- time2wait = newInterval - timeLost;
- }
-
- synchronized( this )
- {
- try
- {
- wait(time2wait);
- }
- catch( InterruptedException e)
- {
- running = false;
- }
- }
- }
-
- running = false;
- }
-
- public boolean isRunning()
- {
- return running;
- }
-
- public void doStop()
- {
- running = false;
- }
- /*
- * For simplicity, we declare "throws Exception". Real programs will usually
- * want finer-grained exception handling.
- */
- public static void main(String[] args) throws Exception {
-
- JmxMonitor monitor = new JmxMonitor();
- if ( System.getProperty("verbose") != null )
- {
- // Shows a list of UIMA-AS services found in a given JMX server
- monitor.setVerbose();
- }
- long samplingFrequency = 1000; // default sampling every 1000 ms
-
- if ( args.length == 0 || args.length > 2)
- {
- printUsage();
- System.exit(-1);
- }
-
- if ( args.length == 3 )
- {
- // The second parameter is the sampling frequency
- samplingFrequency = Long.parseLong(args[2]);
- }
-
- echo("\nJMX Sampling Frequency:"+samplingFrequency);
- // Use the URI provided in the first arg to connect to the JMX server.
- // Also define sampling frequency. The monitor will collect the metrics
- // at this interval.
- monitor.initialize(args[0], samplingFrequency);
- // Create listener
- BasicUimaJmxMonitorListener listener = new BasicUimaJmxMonitorListener(monitor.getMaxServiceNameLength());
- // Plug in the monitor listener
- monitor.addJmxMonitorListener(listener);
- // Create and start the monitor thread
- Thread t = new Thread(monitor);
- t.start();
-
- }
-
- private static void printUsage()
- {
- System.out.println("Usage: \njava -cp %UIMA_HOME%/lib/uimaj-as-activemq.jar;%UIMA_HOME%/lib/uimaj-as-core.jar;%UIMA_HOME%/lib/uima-core.jar;%UIMA_HOME%/apache-activemq-4.1.1/apache-activemq-4.1.1.jar -Djava.util.logging.config.file=%UIMA_HOME%/config/MonitorLogger.properties org.apache.uima.aae.jmx.monitor.JmxMonitor uri <frequency>\nuri - jmx server URI- required\nfrequency - how often the checkpoint is done. Default: 1000ms - optional");
- }
- private static void echo(String msg) {
- System.out.println(msg);
- }
-
- private static class StatEntry
- {
- ServicePerformanceMBean servicePerformanceMBeanProxy;
- ServiceInfoMBean serviceInfoMBeanProxy;
- QueueViewMBean inputQueueInfo;
- UimaVmQueueMBean vmInputQueueInfo;
- QueueViewMBean replyQueueInfo;
+ }
+
+ /**
+ * Retrieves metrics from UIMA-AS MBeans at defined interval.
+ *
+ */
+ public void run() {
+ running = true;
+ boolean initial = true;
+ while (running) {
+ long sampleStart = System.nanoTime();
+ long uptime = sampleStart - startTime;
+ try {
+ if (mbsc != null) {
+ mbsc.getMBeanCount(); // test the server
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ ServiceMetrics[] metrics = collectStats(initial, uptime);
+ initial = false;
+ // Notify listeners with current metrics collected from MBeans
+ notifyListeners(uptime, metrics);
+
+ // compute wait time till next sample
+ long sampleEnd = System.nanoTime();
+ long time2wait;
+ long timeLost = (200000 + sampleEnd - sampleStart) / 1000000;
+ if (interval > timeLost) {
+ time2wait = interval - timeLost;
+ } else {
+ // Increase interval to a multiple of the requested interval
+ long newInterval = interval * (1 + (timeLost / interval));
+ time2wait = newInterval - timeLost;
+ }
+
+ synchronized (this) {
+ try {
+ wait(time2wait);
+ } catch (InterruptedException e) {
+ running = false;
+ }
+ }
+ }
+
+ running = false;
+ }
+
+ public boolean isRunning() {
+ return running;
+ }
+
+ public void doStop() {
+ running = false;
+ }
+
+ /*
+ * For simplicity, we declare "throws Exception". Real programs will usually want finer-grained
+ * exception handling.
+ */
+ public static void main(String[] args) throws Exception {
+
+ JmxMonitor monitor = new JmxMonitor();
+ if (System.getProperty("verbose") != null) {
+ // Shows a list of UIMA-AS services found in a given JMX server
+ monitor.setVerbose();
+ }
+ long samplingFrequency = 1000; // default sampling every 1000 ms
+
+ if (args.length == 0 || args.length > 2) {
+ printUsage();
+ System.exit(-1);
+ }
+
+ if (args.length == 3) {
+ // The second parameter is the sampling frequency
+ samplingFrequency = Long.parseLong(args[2]);
+ }
+
+ echo("\nJMX Sampling Frequency:" + samplingFrequency);
+ // Use the URI provided in the first arg to connect to the JMX server.
+ // Also define sampling frequency. The monitor will collect the metrics
+ // at this interval.
+ monitor.initialize(args[0], samplingFrequency);
+ // Create listener
+ BasicUimaJmxMonitorListener listener = new BasicUimaJmxMonitorListener(monitor
+ .getMaxServiceNameLength());
+ // Plug in the monitor listener
+ monitor.addJmxMonitorListener(listener);
+ // Create and start the monitor thread
+ Thread t = new Thread(monitor);
+ t.start();
+
+ }
+
+ private static void printUsage() {
+ System.out
+ .println("Usage: \njava -cp %UIMA_HOME%/lib/uimaj-as-activemq.jar;%UIMA_HOME%/lib/uimaj-as-core.jar;%UIMA_HOME%/lib/uima-core.jar;%UIMA_HOME%/apache-activemq-4.1.1/apache-activemq-4.1.1.jar -Djava.util.logging.config.file=%UIMA_HOME%/config/MonitorLogger.properties org.apache.uima.aae.jmx.monitor.JmxMonitor uri <frequency>\nuri - jmx server URI- required\nfrequency - how often the checkpoint is done. Default: 1000ms - optional");
+ }
+
+ private static void echo(String msg) {
+ System.out.println(msg);
+ }
+
+ private static class StatEntry {
+ ServicePerformanceMBean servicePerformanceMBeanProxy;
+
+ ServiceInfoMBean serviceInfoMBeanProxy;
+
+ QueueViewMBean inputQueueInfo;
+
+ UimaVmQueueMBean vmInputQueueInfo;
+
+ QueueViewMBean replyQueueInfo;
+
UimaVmQueueMBean vmReplyQueueInfo;
- CasPoolManagementImplMBean casPoolMBeanProxy;
- CasPoolManagementImplMBean serviceCasPoolMBeanProxy;
- String name="";
- boolean isVmQueue = true;
-
- double lastIdleTime = 0;
- double waitTimeOnCMGetNext = 0;
- long casProcessedCount = 0;
- double cpWaitTime;
- double scpWaitTime;
-
- double analysisTime = 0.0;
-
- public StatEntry( ServicePerformanceMBean perfBean, ServiceInfoMBean infoBean)
- {
- this( perfBean, infoBean, null);
- }
- public StatEntry( ServicePerformanceMBean perfBean, ServiceInfoMBean infoBean, CasPoolManagementImplMBean casPoolMBeanProxy)
- {
- servicePerformanceMBeanProxy = perfBean;
- serviceCasPoolMBeanProxy = casPoolMBeanProxy;
- serviceInfoMBeanProxy = infoBean;
- if ( !infoBean.getBrokerURL().startsWith("Embedded Broker")) {
- isVmQueue = false; // This is JMS queue
- }
- }
- public CasPoolManagementImplMBean getServiceCasPoolMBeanProxy() {
- return serviceCasPoolMBeanProxy;
- }
-
- public void setInputQueueInfo( QueueViewMBean queueView)
- {
- inputQueueInfo = queueView;
- }
-
- public void setInputQueueInfo( UimaVmQueueMBean queueView)
- {
+
+ CasPoolManagementImplMBean casPoolMBeanProxy;
+
+ CasPoolManagementImplMBean serviceCasPoolMBeanProxy;
+
+ String name = "";
+
+ boolean isVmQueue = true;
+
+ double lastIdleTime = 0;
+
+ double waitTimeOnCMGetNext = 0;
+
+ long casProcessedCount = 0;
+
+ double cpWaitTime;
+
+ double scpWaitTime;
+
+ double analysisTime = 0.0;
+
+ public StatEntry(ServicePerformanceMBean perfBean, ServiceInfoMBean infoBean) {
+ this(perfBean, infoBean, null);
+ }
+
+ public StatEntry(ServicePerformanceMBean perfBean, ServiceInfoMBean infoBean,
+ CasPoolManagementImplMBean casPoolMBeanProxy) {
+ servicePerformanceMBeanProxy = perfBean;
+ serviceCasPoolMBeanProxy = casPoolMBeanProxy;
+ serviceInfoMBeanProxy = infoBean;
+ if (!infoBean.getBrokerURL().startsWith("Embedded Broker")) {
+ isVmQueue = false; // This is JMS queue
+ }
+ }
+
+ public CasPoolManagementImplMBean getServiceCasPoolMBeanProxy() {
+ return serviceCasPoolMBeanProxy;
+ }
+
+ public void setInputQueueInfo(QueueViewMBean queueView) {
+ inputQueueInfo = queueView;
+ }
+
+ public void setInputQueueInfo(UimaVmQueueMBean queueView) {
vmInputQueueInfo = queueView;
}
- public QueueViewMBean getInputQueueInfo()
- {
- return inputQueueInfo;
- }
- public UimaVmQueueMBean getVmInputQueueInfo()
- {
+
+ public QueueViewMBean getInputQueueInfo() {
+ return inputQueueInfo;
+ }
+
+ public UimaVmQueueMBean getVmInputQueueInfo() {
return vmInputQueueInfo;
}
-
- public void setReplyQueueInfo( QueueViewMBean queueView)
- {
- replyQueueInfo = queueView;
- }
- public void setReplyQueueInfo( UimaVmQueueMBean queueView)
- {
- vmReplyQueueInfo = queueView;
- }
-
- public QueueViewMBean getReplyQueueInfo()
- {
- return replyQueueInfo;
- }
- public UimaVmQueueMBean getVmReplyQueueInfo()
- {
+
+ public void setReplyQueueInfo(QueueViewMBean queueView) {
+ replyQueueInfo = queueView;
+ }
+
+ public void setReplyQueueInfo(UimaVmQueueMBean queueView) {
+ vmReplyQueueInfo = queueView;
+ }
+
+ public QueueViewMBean getReplyQueueInfo() {
+ return replyQueueInfo;
+ }
+
+ public UimaVmQueueMBean getVmReplyQueueInfo() {
return vmReplyQueueInfo;
}
- public void setCasPoolMBean( CasPoolManagementImplMBean anMBean)
- {
- casPoolMBeanProxy = anMBean;
- }
-
- public CasPoolManagementImplMBean getCasPoolMBean()
- {
- return casPoolMBeanProxy;
- }
-
- public double getIdleTime() {
- return lastIdleTime;
- }
- public void incrementCASCount(long aCASCount )
- {
- casProcessedCount =+ aCASCount;
- }
-
- public long getLastCASCount()
- {
- return casProcessedCount;
- }
- public void setIdleTime(double lastIdleTime) {
- this.lastIdleTime = lastIdleTime;
- }
- public ServicePerformanceMBean getServicePerformanceMBeanProxy() {
- return servicePerformanceMBeanProxy;
- }
-
- public ServiceInfoMBean getServiceInfoMBeanProxy() {
- return serviceInfoMBeanProxy;
- }
- public void setName( String aName )
- {
- name = aName;
- }
-
- public String getName()
- {
- return name;
- }
-
- public void incrementWaitTimeOnCMGetNext( double aWaitTimeOnCMGetNext )
- {
- waitTimeOnCMGetNext =+ aWaitTimeOnCMGetNext;
- }
- public double getWaitTimeOnCMGetNext()
- {
- return waitTimeOnCMGetNext;
- }
- public double getTotalCPWaitTime()
- {
- return cpWaitTime;
- }
-
- public void setCPWaitTime(double aWaitTime)
- {
- cpWaitTime = aWaitTime;
- }
- public double getTotalSCPWaitTime()
- {
- return scpWaitTime;
- }
-
- public void setSCPWaitTime(double aWaitTime)
- {
- scpWaitTime = aWaitTime;
- }
- public double getAnalysisTime() {
- return analysisTime;
- }
- public void incrementAnalysisTime(double anAnalysisTime) {
- analysisTime =+ anAnalysisTime;
- }
- }
-
-
-
-
+
+ public void setCasPoolMBean(CasPoolManagementImplMBean anMBean) {
+ casPoolMBeanProxy = anMBean;
+ }
+
+ public CasPoolManagementImplMBean getCasPoolMBean() {
+ return casPoolMBeanProxy;
+ }
+
+ public double getIdleTime() {
+ return lastIdleTime;
+ }
+
+ public void incrementCASCount(long aCASCount) {
+ casProcessedCount = +aCASCount;
+ }
+
+ public long getLastCASCount() {
+ return casProcessedCount;
+ }
+
+ public void setIdleTime(double lastIdleTime) {
+ this.lastIdleTime = lastIdleTime;
+ }
+
+ public ServicePerformanceMBean getServicePerformanceMBeanProxy() {
+ return servicePerformanceMBeanProxy;
+ }
+
+ public ServiceInfoMBean getServiceInfoMBeanProxy() {
+ return serviceInfoMBeanProxy;
+ }
+
+ public void setName(String aName) {
+ name = aName;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void incrementWaitTimeOnCMGetNext(double aWaitTimeOnCMGetNext) {
+ waitTimeOnCMGetNext = +aWaitTimeOnCMGetNext;
+ }
+
+ public double getWaitTimeOnCMGetNext() {
+ return waitTimeOnCMGetNext;
+ }
+
+ public double getTotalCPWaitTime() {
+ return cpWaitTime;
+ }
+
+ public void setCPWaitTime(double aWaitTime) {
+ cpWaitTime = aWaitTime;
+ }
+
+ public double getTotalSCPWaitTime() {
+ return scpWaitTime;
+ }
+
+ public void setSCPWaitTime(double aWaitTime) {
+ scpWaitTime = aWaitTime;
+ }
+
+ public double getAnalysisTime() {
+ return analysisTime;
+ }
+
+ public void incrementAnalysisTime(double anAnalysisTime) {
+ analysisTime = +anAnalysisTime;
+ }
+ }
+
}