Author: rajdavies Date: Fri Nov 17 12:23:54 2006 New Revision: 476299 URL: http://svn.apache.org/viewvc?view=rev&rev=476299 Log: A simple test to allow profiler to get an idea of how much memory is allocated per temporary Queue. It appears that the ConsumerAdvisory - one for each Connection, holds a copy of every temporary Queue in the system.
I don't think this is a big issue - unless - as in this case - all the connections and the broker are in the same jvm. Added: incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/QueueConnectionMemoryTest.java (with props) Added: incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/QueueConnectionMemoryTest.java URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/QueueConnectionMemoryTest.java?view=auto&rev=476299 ============================================================================== --- incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/QueueConnectionMemoryTest.java (added) +++ incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/QueueConnectionMemoryTest.java Fri Nov 17 12:23:54 2006 @@ -0,0 +1,86 @@ +/** + * + * 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.perf; + +import java.io.File; +import javax.jms.BytesMessage; +import javax.jms.Connection; +import javax.jms.ConnectionFactory; +import javax.jms.Destination; +import javax.jms.JMSException; +import javax.jms.MessageConsumer; +import javax.jms.Session; +import javax.jms.Topic; +import junit.framework.TestCase; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.broker.BrokerService; +import org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +/** + * @version $Revision: 1.3 $ + */ +public class QueueConnectionMemoryTest extends SimpleQueueTest{ + + protected void setUp() throws Exception{ + } + + protected void tearDown() throws Exception{ + + } + + protected Destination createDestination(Session s,String destinationName) throws JMSException{ + return s.createTemporaryQueue(); + } + + + + public void testPerformance() throws JMSException{ + //just cancel super class test + } + + protected void configureBroker(BrokerService answer) throws Exception{ + KahaPersistenceAdapter adaptor = new KahaPersistenceAdapter(new File("activemq-data/perfTest")); + answer.setPersistenceAdapter(adaptor); + answer.addConnector(bindAddress); + answer.setDeleteAllMessagesOnStartup(true); + } + + public void testMemory() throws Exception{ + if(broker==null){ + broker=createBroker(); + } + factory=createConnectionFactory(); + Connection con=factory.createConnection(); + Session session=con.createSession(false,Session.AUTO_ACKNOWLEDGE); + destination=createDestination(session,DESTINATION_NAME); + con.close(); + for (int i =0; i < 3;i++) { + Connection connection=factory.createConnection(); + connection.start(); + Session s=connection.createSession(false,Session.AUTO_ACKNOWLEDGE); + Destination dest = s.createTemporaryQueue(); + MessageConsumer consumer=s.createConsumer(dest); + System.out.println("Created connnection: " + i); + Thread.sleep(1000); + } + + Thread.sleep(Integer.MAX_VALUE); + } +} \ No newline at end of file Propchange: incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/QueueConnectionMemoryTest.java ------------------------------------------------------------------------------ svn:eol-style = native