[ 
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


Reply via email to