| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> |
| <!-- |
| |
| Copyright (c) 1998, 2018 Oracle and/or its affiliates. All rights reserved. |
| |
| This program and the accompanying materials are made available under the |
| terms of the Eclipse Public License v. 2.0, which is available at |
| http://www.eclipse.org/legal/epl-2.0. |
| |
| This Source Code may also be made available under the following Secondary |
| Licenses when the conditions for such availability set forth in the |
| Eclipse Public License v. 2.0 are satisfied: GNU General Public License, |
| version 2 with the GNU Classpath Exception, which is available at |
| https://www.gnu.org/software/classpath/license.html. |
| |
| SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 |
| |
| --> |
| |
| <title>MonitoringRegistry Interface</title> |
| </head><body bgcolor="white">Provides for <b>collection of monitoring statistics from JSR77 compliant Stats implementations through the JMX API. </b> Various |
| J2EE server components can expose their JSR 77 compliant Stats implementations |
| to a JMX client with the help of this package. <br> |
| <br> |
| The J2EE server components register their <tt>Stats </tt>implementations through |
| the implementation of <tt><b>MonitoringRegistry</b></tt> |
| interface class that provides the ability to register and unregister components |
| to make them available (or unavailable) to JMX clients. The registration |
| implementation would introspect the <tt>Stats </tt>implementation, create a <tt>DynamicMBean </tt>out of the introspected parts, and exposes this derived management interface to JMX clients by registering the <tt>DynamicMBean </tt>with the <tt>MBeanServer. </tt>Any calls to the MBean's public API is delegated to the <tt>Stats </tt>implementation and the underlying <tt>Statistic</tt>'s monitored attribute value is returned. <br> |
| <br> |
| One can obtain an instance of this interface's implementation instance by |
| using the following code as an example: |
| <p><code> |
| import com.sun.enterprise.server.ApplicationServer;// (appserver-core |
| module)<br> |
| import com.sun.enterprise.server.ServerContext; // (appserv-core module)<br> |
| import com.sun.enterprise.server.admin.monitor.registry.MonitoringRegistry;//(admin-core module |
| -compile time dependency)<br> |
| ...<br> |
| final MonitoringRegistry registry = ApplicationServer.getServerContext().getMonitoringRegistry(); // returns an |
| implementation.<br> |
| registry.registerEJBStats( ...);<br> |
| </code> |
| </p> |
| <p> |
| The magnitude of monitoring and corresponding number of attributes involved |
| in monitoring is dependent on the level at which monitoring of each component |
| is set. A change in monitoring level to <tt>OFF, LOW </tt>or<tt> HIGH</tt> |
| from a prior setting results in a change in the extent to which monitoring |
| is performed for that component. Following each such change in state, the |
| J2EE server component has to unregister its previous <tt>Stats </tt>implementation. The <tt>MonitoringRegistrationHelper </tt> unregisters the <tt>DynamicMBean </tt>from the <tt>MBeanServer </tt>as a result. If the change in state results in monitoring level being either <tt>HIGH</tt> or <tt>LOW</tt>(i.e. not <tt>OFF</tt>), the component will now register a <tt>Stats </tt>implementation that reflects the higher or lower set of attributes that are monitored. The <tt>MonitoringRegistrationHelper </tt>will now generate a new <tt>DynamicMBean</tt> that will expose the revised higher or lower level of observed attributes as a result of the change in setting. <br> |
| <br> |
| <br> |
| <h2>Package Specification</h2> |
| The registration interface and its related classes are defined in the |
| <tt>com.sun.enterprise.admin.monitor.registry</tt> package. The following interfaces and classes are part of this package.<br> |
| <ul> |
| <li><tt>MonitoringRegistry</tt> interface - declares methods to register, unregister and to find if a component's <tt>Stats </tt>implementation is already registered.</li> |
| <li><tt>MonitoringRegistrationException</tt> class - reports exceptions that may occur during registration or unregistration process.</li> |
| <li><tt>MonitoringLevelListener</tt> interface - interface provides <code>setLevel</code> method. Implementations will be notified of changes in monitoring level through this method.</li> |
| <li><tt>MonitoringLevel</tt> class - describes various recognized monitoring levels</li> |
| </ul> |
| |
| <h2>Related Documentation</h2> |
| The implementations and associated helper classes are defined in the<br> |
| <tt>com.sun.enterprise.admin.monitor.stats.spi</tt> and<br> |
| <tt>com.sun.enterprise.admin.monitor.stats.util</tt> packages<br><br> |
| See the associated package file for information on how client will access the |
| stats implementations.<br><br> |
| |
| <!-- Put @see and @since tags down here. --> |
| </body></html> |