@Override public void postConstruct() { ObjectName MONITORING_SERVER = AMXGlassfish.DEFAULT.serverMon(AMXGlassfish.DEFAULT.dasName()); mom = ManagedObjectManagerFactory.createFederated(MONITORING_SERVER); if (mom != null) { mom.setJMXRegistrationDebug(false); mom.stripPackagePrefix(); mom.createRoot(deploymentBean, "webservices-deployment"); } }
public SystemInfoImpl( final MBeanServer server) { super(AMXGlassfish.DEFAULT.domainRoot(), SystemInfo.class); // must be thread-safe, because features can be added at a later time mFeatures = new ConcurrentHashMap<String, Boolean>(); }
public static ObjectName getBootAMXMBeanObjectName() { return AMXGlassfish.DEFAULT.getBootAMXMBeanObjectName(); }
StatsProviderManagerDelegateImpl(ProbeClientMediator pcm, ProbeRegistry probeRegistry, MonitoringRuntimeDataRegistry mrdr, Domain domain, String iName, MonitoringService monitoringService) { this.pcm = pcm; this.mrdr = mrdr; this.domain = domain; this.instanceName = iName; this.monitoringService = monitoringService; this.probeRegistry = probeRegistry; //serverNode is special, construct that first if doesn't exist serverNode = constructServerPP(); statsProviderRegistry = new StatsProviderRegistry(mrdr); if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, " In the ctor : instance name " + instanceName); logger.log(Level.FINE, " In the ctor : MONITORING SERVER " + MONITORING_SERVER); } MONITORING_SERVER = AMXGlassfish.DEFAULT.serverMon(instanceName); DOMAIN = MONITORING_SERVER.getDomain(); PP = MONITORING_SERVER.getKeyProperty(PARENT_PATH_KEY); TYPE = MONITORING_SERVER.getKeyProperty(TYPE_KEY); NAME = MONITORING_SERVER.getKeyProperty(NAME_KEY); PARENT_PATH = PP + "/" + TYPE + "[" + NAME + "]"; }
@Override protected final void registerChildren() { super.registerChildren(); final ObjectName self = getObjectName(); final MBeanServer server = getMBeanServer(); final ObjectNameBuilder objectNames = new ObjectNameBuilder( server, self ); ObjectName childObjectName = null; Object mbean = null; // when clustering comes along, some other party will need to register MBeans // for each non-DAS instance childObjectName = objectNames.buildChildObjectName( ServerRuntime.class, AMXGlassfish.DEFAULT.dasName() ); mbean = new ServerRuntimeImpl(self); registerChild( mbean, childObjectName ); }
public synchronized ObjectName _loadAMXMBeans() { final MBeanListener<MyListener> bootAMXListener = amxg.listenForBootAMX(mMBeanServer, new MyListener()); final MBeanListener<MyListener> domainRootListener = amxg.listenForDomainRoot(mMBeanServer, new MyListener());
private @NotNull ManagedObjectManager createMOMLoop(final String rootName, final int unique) { final boolean isFederated = AMXGlassfish.getGlassfishVersion() != null; ManagedObjectManager mom = createMOM(isFederated); mom = initMOM(mom); mom = createRoot(mom, rootName, unique); return mom; }
public void setStatsProviderManagerDelegate() { // only run the code one time! if(spmd != null) return; //Set the StatsProviderManagerDelegate, so we can start processing the StatsProviders spmd = new StatsProviderManagerDelegateImpl(pcm, probeRegistry, mrdr, domain, serverEnv.getInstanceName(), monitoringService); StatsProviderManager.setStatsProviderManagerDelegate(spmd); StatsProviderUtil.setStatsProviderManagerDelegate(spmd); if (logger.isLoggable(Level.FINE)) logger.fine(" StatsProviderManagerDelegate is assigned"); // Register listener for AMX DomainRoot loaded final AMXGlassfish amxg = AMXGlassfish.DEFAULT; amxg.listenForDomainRoot(ManagementFactory.getPlatformMBeanServer(), spmd); }
private void shutdown() { logger.fine("AMXStartupService: shutting down AMX MBeans"); unloadAMXMBeans(); final ObjectName allAMXPattern = AMXUtil.newObjectName(AMXGlassfish.DEFAULT.amxJMXDomain(), "*"); final Set<ObjectName> remainingAMX = mMBeanServer.queryNames(allAMXPattern, null); if (remainingAMX.size() != 0) { logger.log(Level.WARNING, AMXLoggerInfo.shutdownNotUnregistered, remainingAMX); try { Thread.sleep(1000); } catch (final InterruptedException e) { } } FeatureAvailability.getInstance().deRegisterFeatures(); logger.log(Level.INFO,"amx.shutdown.unregistered",mMBeanServer.queryNames(allAMXPattern, null)); }
private @NotNull ManagedObjectManager createMOMLoop(final String rootName, final int unique) { final boolean isFederated = AMXGlassfish.getGlassfishVersion() != null; ManagedObjectManager mom = createMOM(isFederated); mom = initMOM(mom); mom = createRoot(mom, rootName, unique); return mom; }
public void postConstruct() { final TimingDelta delta = new TimingDelta(); SingletonEnforcer.register(this.getClass(), this); if (mMBeanServer == null) { throw new Error("AMXStartup: null MBeanServer"); } try { // StandardMBean is required because interface and class are in different packages final StandardMBean mbean = new StandardMBean(this, AMXStartupServiceMBean.class); mMBeanServer.registerMBean(mbean, OBJECT_NAME); mMBeanTracker = new MBeanTracker(AMXGlassfish.DEFAULT.amxJMXDomain()); mMBeanTracker.setEmitMBeanStatus(false); //final StandardMBean supportMBean = new StandardMBean(mMBeanTracker, MBeanTrackerMBean.class); mMBeanServer.registerMBean(mMBeanTracker, MBeanTrackerMBean.MBEAN_TRACKER_OBJECT_NAME); } catch (final Exception e) { logger.log(Level.INFO, "amx.fatal.error", e); throw new Error(e); } //debug( "AMXStartupService.postConstruct(): registered: " + OBJECT_NAME ); logger.log(Level.INFO,"amx.startupService",new Object[] {delta.elapsedMillis(),OBJECT_NAME}); mEvents.register(new ShutdownListener()); }
private @NotNull ManagedObjectManager createMOM(final boolean isFederated) { try { return new RewritingMOM(isFederated ? ManagedObjectManagerFactory.createFederated( AMXGlassfish.DEFAULT.serverMon(AMXGlassfish.DEFAULT.dasName())) : ManagedObjectManagerFactory.createStandalone("com.sun.metro")); } catch (Throwable t) { if (isFederated) { logger.log(Level.CONFIG, "Problem while attempting to federate with GlassFish AMX monitoring. Trying standalone.", t); return createMOM(false); } else { logger.log(Level.WARNING, "Ignoring exception - starting up without monitoring", t); return ManagedObjectManagerFactory.createNOOP(); } } }
private String amxDomain() { return AMXGlassfish.DEFAULT.domainRoot().getDomain(); }
private @NotNull ManagedObjectManager createMOMLoop(final String rootName, final int unique) { final boolean isFederated = AMXGlassfish.getGlassfishVersion() != null; ManagedObjectManager mom = createMOM(isFederated); mom = initMOM(mom); mom = createRoot(mom, rootName, unique); return mom; }
public JMXServiceURL[] getJMXServiceURLs() { try { return (JMXServiceURL[]) mMBeanServer.getAttribute(AMXGlassfish.DEFAULT.getBootAMXMBeanObjectName(), "JMXServiceURLs"); } catch (final JMException e) { throw new RuntimeException(e); } }
/** * Used internally to get the Logging ObjectName for a particular server * Logging MBean is a special-case because it needs to load as early as * possible. */ public static ObjectName getObjectName(final String serverName) { final String requiredProps = Util.makeRequiredProps(Util.deduceType(Logging.class), serverName); final String ServerRootMonitorType = "ServerRootMonitor"; final String parentProp = Util.makeProp(ServerRootMonitorType, serverName); final String props = Util.concatenateProps(requiredProps, parentProp); return Util.newObjectName(AMXGlassfish.DEFAULT.amxJMXDomain(), props); }
private @NotNull ManagedObjectManager createMOM(final boolean isFederated) { try { return new RewritingMOM(isFederated ? ManagedObjectManagerFactory.createFederated( AMXGlassfish.DEFAULT.serverMon(AMXGlassfish.DEFAULT.dasName())) : ManagedObjectManagerFactory.createStandalone("com.sun.metro")); } catch (Throwable t) { if (isFederated) { logger.log(Level.CONFIG, "Problem while attempting to federate with GlassFish AMX monitoring. Trying standalone.", t); return createMOM(false); } else { logger.log(Level.WARNING, "Ignoring exception - starting up without monitoring", t); return ManagedObjectManagerFactory.createNOOP(); } } }
public ObjectName loadAMXMBeans() { ObjectName objectName = AMXGlassfish.DEFAULT.domainRoot(); if (!mMBeanServer.isRegistered(objectName)) { try { objectName = _loadAMXMBeans(); } catch (final Exception e) { logger.log(Level.SEVERE,"amx.error.loadAMXBeans",e); throw new RuntimeException(e); } } return objectName; }
public String[] getJMXServiceURLs() { try { final AMXGlassfish amxg = AMXGlassfish.DEFAULT; final JMXServiceURL[] items = (JMXServiceURL[])getMBeanServer().getAttribute(amxg.getBootAMXMBeanObjectName(), "JMXServiceURLs"); final String [] urls = new String[ items.length ]; for( int i = 0; i < items.length; ++i ) { urls[i] = "" + items[i]; } return urls; } catch (final JMException e) { throw new RuntimeException(e); } }
private @NotNull ManagedObjectManager createMOM(final boolean isFederated) { try { return new RewritingMOM(isFederated ? ManagedObjectManagerFactory.createFederated( AMXGlassfish.DEFAULT.serverMon(AMXGlassfish.DEFAULT.dasName())) : ManagedObjectManagerFactory.createStandalone("com.sun.metro")); } catch (Throwable t) { if (isFederated) { logger.log(Level.CONFIG, "Problem while attempting to federate with GlassFish AMX monitoring. Trying standalone.", t); return createMOM(false); } else { logger.log(Level.WARNING, "Ignoring exception - starting up without monitoring", t); return ManagedObjectManagerFactory.createNOOP(); } } }