[
https://issues.apache.org/jira/browse/AMQ-9548?focusedWorklogId=951312&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-951312
]
ASF GitHub Bot logged work on AMQ-9548:
---------------------------------------
Author: ASF GitHub Bot
Created on: 08/Jan/25 08:33
Start Date: 08/Jan/25 08:33
Worklog Time Spent: 10m
Work Description: kenliao94 commented on code in PR #1288:
URL: https://github.com/apache/activemq/pull/1288#discussion_r1906752237
##########
activemq-unit-tests/src/test/java/org/apache/activemq/broker/jmx/BrokerViewTest.java:
##########
@@ -0,0 +1,68 @@
+/**
+ * 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 jakarta.jms.*;
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.broker.BrokerRegistry;
+import org.apache.activemq.broker.BrokerService;
+import org.apache.activemq.util.Wait;
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
+
+public class BrokerViewTest {
+ @Test(timeout=120000)
+ public void testBrokerViewRetrieveQueuesAndTopicsCount() throws Exception {
+ BrokerService brokerService = new BrokerService();
+ brokerService.setPersistent(false);
+ brokerService.start();
+
+ ActiveMQConnectionFactory factory = new
ActiveMQConnectionFactory(BrokerRegistry.getInstance().findFirst().getVmConnectorURI());
+ Connection producerConnection = factory.createConnection();
+ producerConnection.start();
+ // Create non-suppressed queue
+ Session producerSession = producerConnection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
+ Queue queue = producerSession.createQueue("testQueue");
+ MessageProducer producer = producerSession.createProducer(queue);
+ producer.send(producerSession.createTextMessage("testMessage"));
+ // Create temporary queue
+ Session tempProducerSession = producerConnection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
+ Queue tempQueue = tempProducerSession.createTemporaryQueue();
+ MessageProducer tempProducer =
tempProducerSession.createProducer(tempQueue);
+
tempProducer.send(tempProducerSession.createTextMessage("testMessage"));
+ // Create non-suppressed topic
+ Session topicProducerSession = producerConnection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
+ Topic topic = topicProducerSession.createTopic("testTopic");
+ MessageProducer topicProducer =
topicProducerSession.createProducer(topic);
+
topicProducer.send(topicProducerSession.createTextMessage("testMessage"));
+ // Create temporary topic
+ Session tempTopicProducerSession =
producerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Topic tempTopic = tempTopicProducerSession.createTemporaryTopic();
+ MessageProducer tempTopicProducer =
tempTopicProducerSession.createProducer(tempTopic);
+
tempTopicProducer.send(tempTopicProducerSession.createTextMessage("testMessage"));
+
+ assertTrue(Wait.waitFor(() -> (brokerService.getAdminView()) != null));
+ final BrokerView view = brokerService.getAdminView();
+ assert(view.getTotalTopicsCount() == 11); // Including advisory topics
+ assert(view.getTotalNonSuppressedTopicsCount() == 11);
+ assert(view.getTotalTemporaryTopicsCount() == 1);
+ assert(view.getTotalQueuesCount() == 1);
+ assert(view.getTotalNonSuppressedQueuesCount() == 1);
+ assert(view.getTotalTemporaryQueuesCount() == 1);
Review Comment:
Done. Thanks for the feedback @mattrpav
Issue Time Tracking
-------------------
Worklog Id: (was: 951312)
Time Spent: 9h 40m (was: 9.5h)
> Add new broker mbean attributes to directly retrieve total number of queues
> and topics
> --------------------------------------------------------------------------------------
>
> Key: AMQ-9548
> URL: https://issues.apache.org/jira/browse/AMQ-9548
> Project: ActiveMQ Classic
> Issue Type: Improvement
> Components: JMX
> Affects Versions: 5.18.5, 6.1.2
> Reporter: Ken Liao
> Assignee: Ken Liao
> Priority: Major
> Fix For: 6.2.0
>
> Time Spent: 9h 40m
> Remaining Estimate: 0h
>
> Right now, to monitor the number of destination, the only way is to read the
> destinations MBean and get the total destination. However, this means reading
> all destination names into memory, if the user has 10K+ destination with long
> destination name, it will be a large amount of memory just to monitor the
> number of them.
> The proposal here is to add either a new MBean value or a method to obtain
> that data. We can also add a method to retrieve the first K destination as
> well.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact