List of usage examples for javax.management MBeanServer registerMBean
public ObjectInstance registerMBean(Object object, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException;
Registers a pre-existing object as an MBean with the MBean server.
From source file:com.enioka.jqm.tools.Loader.java
Loader(JobInstance job, JqmEngine engine, QueuePoller p, ClassloaderManager clm) { this.p = p;/* ww w .j a va2 s . c om*/ this.engine = engine; this.clm = clm; this.job = job; this.threadName = this.job.getJd().getApplicationName() + ";payload;" + this.job.getId(); // JMX if (p != null && this.p.getEngine().loadJmxBeans) { MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); try { name = new ObjectName( "com.enioka.jqm:type=Node.Queue.JobInstance,Node=" + this.p.getEngine().getNode().getName() + ",Queue=" + this.p.getQueue().getName() + ",name=" + this.job.getId()); mbs.registerMBean(this, name); } catch (Exception e) { throw new JqmInitError("Could not create JMX bean for running job instance", e); } } }
From source file:com.qwazr.server.GenericServer.java
private void startHttpServer(final ServerConfiguration.WebConnector connector, final ServletContextBuilder context, final AccessLogger accessLogger) throws IOException, ServletException, OperationsException, MBeanException { if (context == null || context.getServlets().isEmpty()) return;/* ww w . j a v a 2s .c om*/ context.setIdentityManager(getIdentityManager(connector)); contextAttributes.forEach(context::addServletContextAttribute); if (context.getIdentityManager() != null && !StringUtils.isEmpty(connector.authentication)) { if (hostnamePrincipalResolver != null) HostnameAuthenticationMechanism.register(context, hostnamePrincipalResolver); final LoginConfig loginConfig = Servlets.loginConfig(connector.realm); for (String authmethod : StringUtils.split(connector.authentication, ',')) loginConfig.addLastAuthMethod(authmethod); context.setLoginConfig(loginConfig); } final DeploymentManager manager = servletContainer.addDeployment(context); manager.deploy(); LOGGER.info(() -> "Start the connector " + configuration.listenAddress + ":" + connector.port); HttpHandler httpHandler = manager.start(); final LogMetricsHandler logMetricsHandler = new LogMetricsHandler(httpHandler, configuration.listenAddress, connector.port, context.jmxName, accessLogger); deploymentManagers.add(manager); httpHandler = logMetricsHandler; final Undertow.Builder servletBuilder = Undertow.builder() .addHttpListener(connector.port, configuration.listenAddress) .setServerOption(UndertowOptions.NO_REQUEST_TIMEOUT, 10000) .setServerOption(UndertowOptions.RECORD_REQUEST_START_TIME, true) .setServerOption(UndertowOptions.ENABLE_STATISTICS, true) .setServerOption(UndertowOptions.ENABLE_HTTP2, true).setHandler(httpHandler); start(servletBuilder.build()); // Register MBeans final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); final Hashtable<String, String> props = new Hashtable<>(); props.put("type", "connector"); props.put("name", context.jmxName); final ObjectName name = new ObjectName( "com.qwazr.server." + serverCounter.incrementAndGet() + "." + context.jmxName, props); mbs.registerMBean(logMetricsHandler, name); registeredObjectNames.add(name); connectorsStatistics.add(logMetricsHandler); }
From source file:org.opencastproject.kernel.security.TrustedHttpClientImpl.java
public void activate(ComponentContext cc) { logger.debug("activate"); user = cc.getBundleContext().getProperty(DIGEST_AUTH_USER_KEY); pass = cc.getBundleContext().getProperty(DIGEST_AUTH_PASS_KEY); if (user == null || pass == null) throw new IllegalStateException("trusted communication is not properly configured"); getRetryNumber(cc);/*from w w w. j ava 2s .c om*/ getRetryBaseTime(cc); getRetryMaximumVariableTime(cc); // register with jmx try { MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); ObjectName name; name = new ObjectName("org.opencastproject.security.api.TrustedHttpClient:type=HttpConnections"); Object mbean = this; mbs.registerMBean(mbean, name); } catch (Exception e) { logger.warn("Unable to register {} as an mbean: {}", this, e); } }
From source file:org.rhq.core.pc.measurement.MeasurementManager.java
public void initialize() { if (configuration.isStartManagementBean()) { MBeanServer server = ManagementFactory.getPlatformMBeanServer(); try {//from w ww.j a va 2s.co m server.registerMBean(this, new ObjectName(OBJECT_NAME)); } catch (JMException e) { LOG.error("Unable to register MeasurementManagerMBean", e); } } this.inventoryManager = PluginContainer.getInstance().getInventoryManager(); int threadPoolSize = configuration.getMeasurementCollectionThreadPoolSize(); long collectionInitialDelaySecs = configuration.getMeasurementCollectionInitialDelay(); if (configuration.isInsideAgent()) { this.collectorThreadPool = new ScheduledThreadPoolExecutor(threadPoolSize, new LoggingThreadFactory(COLLECTOR_THREAD_POOL_NAME, true)); this.senderThreadPool = new ScheduledThreadPoolExecutor(2, new LoggingThreadFactory(SENDER_THREAD_POOL_NAME, true)); this.measurementSenderRunner = new MeasurementSenderRunner(this); this.measurementCollectorRunner = new MeasurementCollectorRunner(this); // Schedule the measurement sender to send measurement reports periodically. this.senderThreadPool.scheduleAtFixedRate(measurementSenderRunner, collectionInitialDelaySecs, 30, TimeUnit.SECONDS); // Schedule the measurement collector to collect metrics periodically, whenever there are one or more // metrics due to be collected. this.collectorThreadPool.schedule(new MeasurementCollectionRequester(), collectionInitialDelaySecs, TimeUnit.SECONDS); // Load persistent measurement schedules from the InventoryManager and reconstitute them. Resource platform = PluginContainer.getInstance().getInventoryManager().getPlatform(); reschedule(platform); } }
From source file:com.enioka.jqm.tools.JqmEngine.java
/** * Starts the engine/*w w w . jav a 2 s. co m*/ * * @param nodeName * the name of the node to start, as in the NODE table of the database. * @throws JqmInitError */ void start(String nodeName) { if (nodeName == null || nodeName.isEmpty()) { throw new IllegalArgumentException("nodeName cannot be null or empty"); } // Set thread name - used in audits Thread.currentThread().setName("JQM engine;;" + nodeName); Helpers.setLogFileName(nodeName); // Log: we are starting... jqmlogger.info("JQM engine version " + this.getVersion() + " for node " + nodeName + " is starting"); jqmlogger.info("Java version is " + System.getProperty("java.version") + ". JVM was made by " + System.getProperty("java.vendor") + " as " + System.getProperty("java.vm.name") + " version " + System.getProperty("java.vm.version")); // JNDI first - the engine itself uses JNDI to fetch its connections! Helpers.registerJndiIfNeeded(); // Database connection EntityManager em = Helpers.getNewEm(); // Node configuration is in the database node = em.createQuery("SELECT n FROM Node n WHERE n.name = :l", Node.class).setParameter("l", nodeName) .getSingleResult(); // Check if double-start long toWait = (long) (1.1 * Long.parseLong(Helpers.getParameter("internalPollingPeriodMs", "60000", em))); if (node.getLastSeenAlive() != null && Calendar.getInstance().getTimeInMillis() - node.getLastSeenAlive().getTimeInMillis() <= toWait) { long r = Calendar.getInstance().getTimeInMillis() - node.getLastSeenAlive().getTimeInMillis(); throw new JqmInitErrorTooSoon("Another engine named " + nodeName + " was running less than " + r / 1000 + " seconds ago. Either stop the other node, or if it already stopped, please wait " + (toWait - r) / 1000 + " seconds"); } // Prevent very quick multiple starts by immediately setting the keep-alive em.getTransaction().begin(); node.setLastSeenAlive(Calendar.getInstance()); em.getTransaction().commit(); // Only start if the node configuration seems OK Helpers.checkConfiguration(nodeName, em); // Log parameters Helpers.dumpParameters(em, node); // Log level Helpers.setLogLevel(node.getRootLogLevel()); // Log multicasting (& log4j stdout redirect) GlobalParameter gp1 = em .createQuery("SELECT g FROM GlobalParameter g WHERE g.key = :k", GlobalParameter.class) .setParameter("k", "logFilePerLaunch").getSingleResult(); if ("true".equals(gp1.getValue()) || "both".equals(gp1.getValue())) { RollingFileAppender a = (RollingFileAppender) Logger.getRootLogger().getAppender("rollingfile"); MultiplexPrintStream s = new MultiplexPrintStream(System.out, FilenameUtils.getFullPath(a.getFile()), "both".equals(gp1.getValue())); System.setOut(s); ((ConsoleAppender) Logger.getRootLogger().getAppender("consoleAppender")) .setWriter(new OutputStreamWriter(s)); s = new MultiplexPrintStream(System.err, FilenameUtils.getFullPath(a.getFile()), "both".equals(gp1.getValue())); System.setErr(s); } // Remote JMX server if (node.getJmxRegistryPort() != null && node.getJmxServerPort() != null && node.getJmxRegistryPort() > 0 && node.getJmxServerPort() > 0) { JmxAgent.registerAgent(node.getJmxRegistryPort(), node.getJmxServerPort(), node.getDns()); } else { jqmlogger.info( "JMX remote listener will not be started as JMX registry port and JMX server port parameters are not both defined"); } // Jetty this.server = new JettyServer(); this.server.start(node, em); // JMX if (node.getJmxServerPort() != null && node.getJmxServerPort() > 0) { try { MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); name = new ObjectName("com.enioka.jqm:type=Node,name=" + this.node.getName()); mbs.registerMBean(this, name); } catch (Exception e) { throw new JqmInitError("Could not create JMX beans", e); } jqmlogger.info("JMX management bean for the engine was registered"); } else { loadJmxBeans = false; jqmlogger.info("JMX management beans will not be loaded as JMX server port is null or zero"); } // Security if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManagerPayload()); } jqmlogger.info("Security manager was registered"); // Cleanup purgeDeadJobInstances(em, this.node); // Force Message EMF load em.createQuery("SELECT m FROM Message m WHERE 1=0", Message.class).getResultList(); // Pollers syncPollers(em, this.node); jqmlogger.info("All required queues are now polled"); // Internal poller (stop notifications, keepalive) intPoller = new InternalPoller(this); Thread t = new Thread(intPoller); t.start(); // Kill notifications killHook = new SignalHandler(this); Runtime.getRuntime().addShutdownHook(killHook); // Done em.close(); em = null; latestNodeStartedName = node.getName(); jqmlogger.info("End of JQM engine initialization"); }
From source file:org.apache.ode.jbi.OdeLifeCycle.java
private void registerMBean() throws JBIException { ProcessAndInstanceManagementMBean pmapi = new ProcessAndInstanceManagementMBean(_ode._server, _ode._store); MBeanServer server = _ode.getContext().getMBeanServer(); try {/* ww w. j ava 2s. co m*/ if (server != null) { _mbeanName = _ode.getContext().getMBeanNames().createCustomComponentMBeanName("Management"); if (server.isRegistered(_mbeanName)) { server.unregisterMBean(_mbeanName); } server.registerMBean(pmapi, _mbeanName); } } catch (Exception e) { throw new JBIException(e); } }
From source file:au.com.redboxresearchdata.fascinator.plugins.JsonHarvestQueueConsumer.java
public void run() { try {/* ww w. j av a 2s . com*/ // Get a connection to the broker String brokerUrl = globalConfig.getString(ActiveMQConnectionFactory.DEFAULT_BROKER_BIND_URL, "messaging", "url"); ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl); connection = connectionFactory.createConnection(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); consumer = session.createConsumer(session.createQueue(QUEUE_ID)); consumer.setMessageListener(this); producer = session.createProducer(session.createTopic(EVENT_TOPIC_ID)); producer.setDeliveryMode(DeliveryMode.PERSISTENT); connection.start(); toolChainEntry = globalConfig.getString(DEFAULT_TOOL_CHAIN_QUEUE, "messaging", "toolChainQueue"); failedJsonMap = new HashMap<String, HarvestItem>(); failedJsonList = new ArrayList<String>(); harvestRequests = new HashMap<String, HarvestRequest>(); // registering managed bean... MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); ObjectName mxbeanName = new ObjectName( "au.com.redboxresearchdata.fascinator.plugins:type=JsonHarvestQueue"); mbs.registerMBean(this, mxbeanName); log.info("'{}' is running...", name); } catch (JMSException ex) { log.error("Error starting message thread!", ex); } catch (MalformedObjectNameException e) { log.error("Error configuring MBean, invalid name", e); } catch (InstanceAlreadyExistsException e) { log.error("Error configuring MBean, instance exists.", e); } catch (MBeanRegistrationException e) { log.error("Error registering MBean. ", e); } catch (NotCompliantMBeanException e) { log.error("Error configuring Mbean, non-compliant!", e); } }
From source file:com.tc.server.TCServerImpl.java
protected void registerDSOMBeans(ServerManagementContext mgmtContext, ServerConfigurationContext configContext, TCDumper tcDumper, MBeanServer mBeanServer) throws NotCompliantMBeanException, InstanceAlreadyExistsException, MBeanRegistrationException { TerracottaOperatorEventHistoryProvider operatorEventHistoryProvider = this.dsoServer .getOperatorEventsHistoryProvider(); DSOMBean dso = new DSO(mgmtContext, configContext, mBeanServer, operatorEventHistoryProvider); mBeanServer.registerMBean(dso, L2MBeanNames.DSO); }
From source file:org.red5.server.winstone.WinstoneLoader.java
protected void registerJMX() { // register with jmx MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); try {/*from w w w .j av a 2 s . c o m*/ ObjectName oName = new ObjectName("org.red5.server:type=WinstoneLoader"); // check for existing registration before registering if (!mbs.isRegistered(oName)) { mbs.registerMBean(this, oName); } else { log.debug("ContextLoader is already registered in JMX"); } } catch (Exception e) { log.warn("Error on jmx registration", e); } }
From source file:com.norconex.collector.core.crawler.AbstractCrawler.java
private void registerMonitoringMbean(ICrawlDataStore crawlDataStore) { try {/*from w w w .java2 s.c o m*/ MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); ObjectName name = new ObjectName( "com.norconex.collector.http.crawler:type=" + getCrawlerConfig().getId()); Monitoring mbean = new Monitoring(crawlDataStore); mbs.registerMBean(mbean, name); } catch (MalformedObjectNameException | InstanceAlreadyExistsException | MBeanRegistrationException | NotCompliantMBeanException e) { throw new CollectorException(e); } }