protected void startManagementContext() throws Exception { getManagementContext().setBrokerName(brokerName); getManagementContext().start(); adminView = new BrokerView(this, null); ObjectName objectName = getBrokerObjectName(); AnnotatedMBean.registerMBean(getManagementContext(), adminView, objectName); }
private void purgeInactiveDestinationView(Map<ActiveMQDestination, NetworkDestinationContainer> map) { long time = System.currentTimeMillis() - networkBridgeConfiguration.getGcSweepTime(); for (Iterator<Map.Entry<ActiveMQDestination, NetworkDestinationContainer>> it = map.entrySet().iterator(); it.hasNext(); ) { Map.Entry<ActiveMQDestination, NetworkDestinationContainer> entry = it.next(); if (entry.getValue().view.getLastAccessTime() <= time) { ObjectName objectName = entry.getValue().objectName; if (objectName != null) { try { brokerService.getManagementContext().unregisterMBean(entry.getValue().objectName); } catch (Throwable e) { LOG.debug("Network bridge could not be unregistered in JMX: {}", e.getMessage(), e); } } entry.getValue().view.close(); it.remove(); } } }
protected void unregisterNetworkConnectorMBean(NetworkConnector connector) { if (isUseJmx()) { try { ObjectName objectName = createNetworkConnectorObjectName(connector); getManagementContext().unregisterMBean(objectName); } catch (Exception e) { LOG.warn("Network Connector could not be unregistered from JMX due " + e.getMessage() + ". This exception is ignored.", e); } } }
private void unregisterMBeans() { BrokerService broker = getBrokerService(); if (broker.isUseJmx() && this.objectName != null) { try { broker.getManagementContext().unregisterMBean(objectName); } catch (JMException e) { LOG.warn("Trying uninstall VirtualDestinationSelectorCache; couldn't uninstall mbeans, continuting..."); } } }
protected TransportConnector registerConnectorMBean(TransportConnector connector) throws IOException { try { ObjectName objectName = createConnectorObjectName(connector); connector = connector.asManagedConnector(getManagementContext(), objectName); ConnectorViewMBean view = new ConnectorView(connector); AnnotatedMBean.registerMBean(getManagementContext(), view, objectName); return connector; } catch (Throwable e) { throw IOExceptionSupport.create("Transport Connector could not be registered in JMX: " + e, e); } }
protected void unregisterConnectorMBean(TransportConnector connector) throws IOException { if (isUseJmx()) { try { ObjectName objectName = createConnectorObjectName(connector); getManagementContext().unregisterMBean(objectName); } catch (Throwable e) { throw IOExceptionSupport.create( "Transport Connector could not be unregistered in JMX: " + e.getMessage(), e); } } }
protected void unregisterNetworkBridgeMBean(NetworkBridge bridge) { if (!getBrokerService().isUseJmx()) { return; } try { ObjectName objectName = createNetworkBridgeObjectName(bridge); getBrokerService().getManagementContext().unregisterMBean(objectName); } catch (Throwable e) { LOG.debug("Network bridge could not be unregistered in JMX: {}", e.getMessage(), e); } }
protected ObjectName createBrokerObjectName() throws MalformedObjectNameException { return BrokerMBeanSupport.createBrokerObjectName(getManagementContext().getJmxDomainName(), getBrokerName()); }
private void enableJmx() { BrokerService broker = getBrokerService(); if (broker.isUseJmx()) { VirtualDestinationSelectorCacheView view = new VirtualDestinationSelectorCacheView(this); try { objectName = BrokerMBeanSupport.createVirtualDestinationSelectorCacheName(broker.getBrokerObjectName(), "plugin", "virtualDestinationCache"); LOG.trace("virtualDestinationCacheSelector mbean name; " + objectName.toString()); AnnotatedMBean.registerMBean(broker.getManagementContext(), view, objectName); } catch (Exception e) { LOG.warn("JMX is enabled, but when installing the VirtualDestinationSelectorCache, couldn't install the JMX mbeans. Continuing without installing the mbeans."); } } }
protected void registerNetworkBridgeMBean(NetworkBridge bridge) { if (!getBrokerService().isUseJmx()) { return; } NetworkBridgeViewMBean view = new NetworkBridgeView(bridge); try { ObjectName objectName = createNetworkBridgeObjectName(bridge); AnnotatedMBean.registerMBean(getBrokerService().getManagementContext(), view, objectName); } catch (Throwable e) { LOG.debug("Network bridge could not be registered in JMX: {}", e.getMessage(), e); } }
public void registerNetworkConnectorMBean(NetworkConnector connector) throws IOException { NetworkConnectorViewMBean view = new NetworkConnectorView(connector); try { ObjectName objectName = createNetworkConnectorObjectName(connector); connector.setObjectName(objectName); AnnotatedMBean.registerMBean(getManagementContext(), view, objectName); } catch (Throwable e) { throw IOExceptionSupport.create("Network Connector could not be registered in JMX: " + e.getMessage(), e); } }
BrokerViewMBean getBrokerView() throws Exception { if (this.brokerView == null) { ObjectName brokerName = getBrokerService().getBrokerObjectName(); this.brokerView = (BrokerViewMBean) getBrokerService().getManagementContext().newProxyInstance(brokerName, BrokerViewMBean.class, true); } return this.brokerView; } }
protected void sendSubStats(ConnectionContext context, ObjectName[] subscribers, ActiveMQDestination replyTo) throws Exception { for (int i = 0; i < subscribers.length; i++) { ObjectName name = subscribers[i]; SubscriptionViewMBean subscriber = (SubscriptionViewMBean)getBrokerService().getManagementContext().newProxyInstance(name, SubscriptionViewMBean.class, true); ActiveMQMapMessage statsMessage = prepareSubscriptionMessage(subscriber); sendStats(context, statsMessage, replyTo); } }
BrokerViewMBean getBrokerView() throws Exception { if (this.brokerView == null) { ObjectName brokerName = getBrokerService().getBrokerObjectName(); this.brokerView = (BrokerViewMBean) getBrokerService().getManagementContext().newProxyInstance(brokerName, BrokerViewMBean.class, true); } return this.brokerView; }
protected void registerJmsConnectorMBean(JmsConnector connector) throws IOException { JmsConnectorView view = new JmsConnectorView(connector); try { ObjectName objectName = BrokerMBeanSupport.createNetworkConnectorName(getBrokerObjectName(), "jmsConnectors", connector.getName()); AnnotatedMBean.registerMBean(getManagementContext(), view, objectName); } catch (Throwable e) { throw IOExceptionSupport.create("Broker could not be registered in JMX: " + e.getMessage(), e); } }
@Override public void onStart(NetworkBridge bridge) { if (!brokerService.isUseJmx()) { return; } NetworkBridgeView view = new NetworkBridgeView(bridge); view.setCreateByDuplex(createdByDuplex); try { ObjectName objectName = createNetworkBridgeObjectName(bridge); AnnotatedMBean.registerMBean(brokerService.getManagementContext(), view, objectName); bridge.setMbeanObjectName(objectName); MBeanBridgeDestination mBeanBridgeDestination = new MBeanBridgeDestination(brokerService,networkBridgeConfiguration,bridge,view); destinationObjectNameMap.put(bridge,mBeanBridgeDestination); mBeanBridgeDestination.start(); LOG.debug("registered: {} as: {}", bridge, objectName); } catch (Throwable e) { LOG.debug("Network bridge could not be registered in JMX: {}", e.getMessage(), e); } }
protected void registerProxyConnectorMBean(ProxyConnector connector) throws IOException { ProxyConnectorView view = new ProxyConnectorView(connector); try { ObjectName objectName = BrokerMBeanSupport.createNetworkConnectorName(getBrokerObjectName(), "proxyConnectors", connector.getName()); AnnotatedMBean.registerMBean(getManagementContext(), view, objectName); } catch (Throwable e) { throw IOExceptionSupport.create("Broker could not be registered in JMX: " + e.getMessage(), e); } }
/** * @throws Exception * @see org.apache.activemq.Service#stop() */ @Override public void doStop(ServiceStopper stopper) throws Exception { this.letter.stop(); if (brokerService != null && brokerService.isUseJmx()) { ObjectName brokerObjectName = brokerService.getBrokerObjectName(); brokerService.getManagementContext().unregisterMBean(createPersistenceAdapterName(brokerObjectName.toString(), toString())); } }
@Autowired public ActiveMqMessagingService(DaemonThreadStatsCollector daemonThreadStatsCollector) throws Exception { this.daemonThreadStatsCollector = daemonThreadStatsCollector; SystemEnvironment systemEnvironment = new SystemEnvironment(); broker = new BrokerService(); broker.setBrokerName(BROKER_NAME); broker.setPersistent(false); broker.setUseJmx(systemEnvironment.getActivemqUseJmx()); broker.getManagementContext().setConnectorPort(systemEnvironment.getActivemqConnectorPort()); broker.start(); factory = new ActiveMQConnectionFactory(BROKER_URL); factory.getPrefetchPolicy().setQueuePrefetch(systemEnvironment.getActivemqQueuePrefetch()); factory.setCopyMessageOnSend(false); connection = (ActiveMQConnection) factory.createConnection(); connection.start(); }
@Test public void testQueueTempUsageWhenBrokerTempUsageUpdated() throws Exception { ObjectName queueViewMBeanName = new ObjectName("org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=" + queue.getQueueName()); QueueViewMBean queueViewMBean = (QueueViewMBean) brokerService.getManagementContext().newProxyInstance( queueViewMBeanName, QueueViewMBean.class, true); // Check that by default the queue's temp limit is the same as the broker's. BrokerView brokerView = brokerService.getAdminView(); long brokerTempLimit = brokerView.getTempLimit(); assertEquals(brokerTempLimit, queueViewMBean.getTempUsageLimit()); // Increase the broker's temp limit and check the queue's limit is updated to the same value. long newBrokerTempLimit = brokerTempLimit + 555; brokerView.setTempLimit(newBrokerTempLimit); assertEquals(brokerView.getTempLimit(), newBrokerTempLimit); assertEquals(queueViewMBean.getTempUsageLimit(), newBrokerTempLimit); } }