|
ActiveMQ example source code file (BrokerView.java)
The ActiveMQ BrokerView.java source code/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.activemq.broker.jmx; import java.io.File; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.URI; import java.net.URL; import java.util.concurrent.atomic.AtomicInteger; import javax.management.ObjectName; import org.apache.activemq.ActiveMQConnectionMetaData; import org.apache.activemq.broker.BrokerService; import org.apache.activemq.broker.ConnectionContext; import org.apache.activemq.broker.TransportConnector; import org.apache.activemq.broker.region.Subscription; import org.apache.activemq.command.ActiveMQQueue; import org.apache.activemq.command.ActiveMQTopic; import org.apache.activemq.command.ConsumerId; import org.apache.activemq.command.ConsumerInfo; import org.apache.activemq.command.RemoveSubscriptionInfo; import org.apache.activemq.network.NetworkConnector; import org.apache.activemq.util.BrokerSupport; /** * */ public class BrokerView implements BrokerViewMBean { ManagedRegionBroker broker; private final BrokerService brokerService; private final AtomicInteger sessionIdCounter = new AtomicInteger(0); private ObjectName jmsJobScheduler; public BrokerView(BrokerService brokerService, ManagedRegionBroker managedBroker) throws Exception { this.brokerService = brokerService; this.broker = managedBroker; } public ManagedRegionBroker getBroker() { return broker; } public void setBroker(ManagedRegionBroker broker) { this.broker = broker; } public String getBrokerId() { return broker.getBrokerId().toString(); } public String getBrokerName() { return broker.getBrokerName(); } public String getBrokerVersion() { return ActiveMQConnectionMetaData.PROVIDER_VERSION; } public void gc() throws Exception { brokerService.getBroker().gc(); } public void start() throws Exception { brokerService.start(); } public void stop() throws Exception { brokerService.stop(); } public void stopGracefully(String connectorName, String queueName, long timeout, long pollInterval) throws Exception { brokerService.stopGracefully(connectorName, queueName, timeout, pollInterval); } public long getTotalEnqueueCount() { return broker.getDestinationStatistics().getEnqueues().getCount(); } public long getTotalDequeueCount() { return broker.getDestinationStatistics().getDequeues().getCount(); } public long getTotalConsumerCount() { return broker.getDestinationStatistics().getConsumers().getCount(); } public long getTotalMessageCount() { return broker.getDestinationStatistics().getMessages().getCount(); } public long getTotalMessagesCached() { return broker.getDestinationStatistics().getMessagesCached().getCount(); } public int getMemoryPercentUsage() { return brokerService.getSystemUsage().getMemoryUsage().getPercentUsage(); } public long getMemoryLimit() { return brokerService.getSystemUsage().getMemoryUsage().getLimit(); } public void setMemoryLimit(long limit) { brokerService.getSystemUsage().getMemoryUsage().setLimit(limit); } public long getStoreLimit() { return brokerService.getSystemUsage().getStoreUsage().getLimit(); } public int getStorePercentUsage() { return brokerService.getSystemUsage().getStoreUsage().getPercentUsage(); } public long getTempLimit() { return brokerService.getSystemUsage().getTempUsage().getLimit(); } public int getTempPercentUsage() { return brokerService.getSystemUsage().getTempUsage().getPercentUsage(); } public void setStoreLimit(long limit) { brokerService.getSystemUsage().getStoreUsage().setLimit(limit); } public void setTempLimit(long limit) { brokerService.getSystemUsage().getTempUsage().setLimit(limit); } public void resetStatistics() { broker.getDestinationStatistics().reset(); } public void enableStatistics() { broker.getDestinationStatistics().setEnabled(true); } public void disableStatistics() { broker.getDestinationStatistics().setEnabled(false); } public boolean isStatisticsEnabled() { return broker.getDestinationStatistics().isEnabled(); } public boolean isPersistent() { return brokerService.isPersistent(); } public boolean isSlave() { return brokerService.isSlave(); } public void terminateJVM(int exitCode) { System.exit(exitCode); } public ObjectName[] getTopics() { return broker.getTopics(); } public ObjectName[] getQueues() { return broker.getQueues(); } public ObjectName[] getTemporaryTopics() { return broker.getTemporaryTopics(); } public ObjectName[] getTemporaryQueues() { return broker.getTemporaryQueues(); } public ObjectName[] getTopicSubscribers() { return broker.getTopicSubscribers(); } public ObjectName[] getDurableTopicSubscribers() { return broker.getDurableTopicSubscribers(); } public ObjectName[] getQueueSubscribers() { return broker.getQueueSubscribers(); } public ObjectName[] getTemporaryTopicSubscribers() { return broker.getTemporaryTopicSubscribers(); } public ObjectName[] getTemporaryQueueSubscribers() { return broker.getTemporaryQueueSubscribers(); } public ObjectName[] getInactiveDurableTopicSubscribers() { return broker.getInactiveDurableTopicSubscribers(); } public String addConnector(String discoveryAddress) throws Exception { TransportConnector connector = brokerService.addConnector(discoveryAddress); connector.start(); return connector.getName(); } public String addNetworkConnector(String discoveryAddress) throws Exception { NetworkConnector connector = brokerService.addNetworkConnector(discoveryAddress); connector.start(); return connector.getName(); } public boolean removeConnector(String connectorName) throws Exception { TransportConnector connector = brokerService.getConnectorByName(connectorName); connector.stop(); return brokerService.removeConnector(connector); } public boolean removeNetworkConnector(String connectorName) throws Exception { NetworkConnector connector = brokerService.getNetworkConnectorByName(connectorName); connector.stop(); return brokerService.removeNetworkConnector(connector); } public void addTopic(String name) throws Exception { broker.getContextBroker().addDestination(BrokerSupport.getConnectionContext(broker.getContextBroker()), new ActiveMQTopic(name),true); } public void addQueue(String name) throws Exception { broker.getContextBroker().addDestination(BrokerSupport.getConnectionContext(broker.getContextBroker()), new ActiveMQQueue(name),true); } public void removeTopic(String name) throws Exception { broker.getContextBroker().removeDestination(BrokerSupport.getConnectionContext(broker.getContextBroker()), new ActiveMQTopic(name), 1000); } public void removeQueue(String name) throws Exception { broker.getContextBroker().removeDestination(BrokerSupport.getConnectionContext(broker.getContextBroker()), new ActiveMQQueue(name), 1000); } public ObjectName createDurableSubscriber(String clientId, String subscriberName, String topicName, String selector) throws Exception { ConnectionContext context = new ConnectionContext(); context.setBroker(broker); context.setClientId(clientId); ConsumerInfo info = new ConsumerInfo(); ConsumerId consumerId = new ConsumerId(); consumerId.setConnectionId(clientId); consumerId.setSessionId(sessionIdCounter.incrementAndGet()); consumerId.setValue(0); info.setConsumerId(consumerId); info.setDestination(new ActiveMQTopic(topicName)); info.setSubscriptionName(subscriberName); info.setSelector(selector); Subscription subscription = broker.addConsumer(context, info); broker.removeConsumer(context, info); if (subscription != null) { return subscription.getObjectName(); } return null; } public void destroyDurableSubscriber(String clientId, String subscriberName) throws Exception { RemoveSubscriptionInfo info = new RemoveSubscriptionInfo(); info.setClientId(clientId); info.setSubscriptionName(subscriberName); ConnectionContext context = new ConnectionContext(); context.setBroker(broker); context.setClientId(clientId); broker.removeSubscription(context, info); } // doc comment inherited from BrokerViewMBean public void reloadLog4jProperties() throws Throwable { // Avoid a direct dependency on log4j.. use reflection. try { ClassLoader cl = getClass().getClassLoader(); Class logManagerClass = cl.loadClass("org.apache.log4j.LogManager"); Method resetConfiguration = logManagerClass.getMethod("resetConfiguration", new Class[]{}); resetConfiguration.invoke(null, new Object[]{}); URL log4jprops = cl.getResource("log4j.properties"); if (log4jprops != null) { Class propertyConfiguratorClass = cl.loadClass("org.apache.log4j.PropertyConfigurator"); Method configure = propertyConfiguratorClass.getMethod("configure", new Class[]{URL.class}); configure.invoke(null, new Object[]{log4jprops}); } } catch (InvocationTargetException e) { throw e.getTargetException(); } } public String getOpenWireURL() { String answer = brokerService.getTransportConnectorURIsAsMap().get("tcp"); return answer != null ? answer : ""; } public String getStompURL() { String answer = brokerService.getTransportConnectorURIsAsMap().get("stomp"); return answer != null ? answer : ""; } public String getSslURL() { String answer = brokerService.getTransportConnectorURIsAsMap().get("ssl"); return answer != null ? answer : ""; } public String getStompSslURL() { String answer = brokerService.getTransportConnectorURIsAsMap().get("stomp+ssl"); return answer != null ? answer : ""; } public String getVMURL() { URI answer = brokerService.getVmConnectorURI(); return answer != null ? answer.toString() : ""; } public String getDataDirectory() { File file = brokerService.getDataDirectoryFile(); try { return file != null ? file.getCanonicalPath():""; } catch (IOException e) { return ""; } } public ObjectName getJMSJobScheduler() { return this.jmsJobScheduler; } public void setJMSJobScheduler(ObjectName name) { this.jmsJobScheduler=name; } } Other ActiveMQ examples (source code examples)Here is a short list of links related to this ActiveMQ BrokerView.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.