You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ra...@apache.org on 2006/10/17 08:26:04 UTC

svn commit: r464825 - /incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/InactiveQueueTest.java

Author: rajdavies
Date: Mon Oct 16 23:26:01 2006
New Revision: 464825

URL: http://svn.apache.org/viewvc?view=rev&rev=464825
Log:
Test case to see how long it takes to run out memory for a Queue with no subscribers

Added:
    incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/InactiveQueueTest.java

Added: incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/InactiveQueueTest.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/InactiveQueueTest.java?view=auto&rev=464825
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/InactiveQueueTest.java (added)
+++ incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/perf/InactiveQueueTest.java Mon Oct 16 23:26:01 2006
@@ -0,0 +1,110 @@
+/**
+ * 
+ * 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 java.net.URI;
+import javax.jms.Connection;
+import javax.jms.Destination;
+import javax.jms.JMSException;
+import javax.jms.MapMessage;
+import javax.jms.Message;
+import javax.jms.MessageProducer;
+import javax.jms.Session;
+import javax.jms.Topic;
+import javax.jms.TopicSubscriber;
+import junit.framework.AssertionFailedError;
+import junit.framework.TestCase;
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.broker.BrokerFactory;
+import org.apache.activemq.broker.BrokerService;
+import org.apache.activemq.store.DefaultPersistenceAdapterFactory;
+import org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter;
+/**
+ * @version $Revision: 454471 $
+ */
+public class InactiveQueueTest extends TestCase{
+    private static final int MESSAGE_COUNT = 0;
+    private static final String DEFAULT_PASSWORD="";
+    private static final String USERNAME="testuser";
+    private static final String CLIENTID="mytestclient";
+    private static final String QUEUE_NAME="testevent";
+    private static final int deliveryMode=javax.jms.DeliveryMode.PERSISTENT;
+    private static final int deliveryPriority=javax.jms.Message.DEFAULT_PRIORITY;
+    private Connection connection=null;
+    private MessageProducer publisher=null;
+    private TopicSubscriber subscriber=null;
+    private Destination destination=null;
+    private Session session=null;
+    ActiveMQConnectionFactory connectionFactory=null;
+    BrokerService broker;
+
+    protected void setUp() throws Exception{
+        super.setUp();
+        broker=new BrokerService();
+        
+        //broker.setPersistenceAdapter(new KahaPersistenceAdapter(new File ("TEST_STUFD")));
+        /*
+        DefaultPersistenceAdapterFactory factory = new DefaultPersistenceAdapterFactory();
+        factory.setDataDirectoryFile(broker.getDataDirectory());
+        factory.setTaskRunnerFactory(broker.getTaskRunnerFactory());
+        factory.setUseJournal(false);
+        broker.setPersistenceFactory(factory);
+        */
+        broker.addConnector(ActiveMQConnectionFactory.DEFAULT_BROKER_URL);
+        broker.start();
+        connectionFactory=new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_BROKER_URL);
+        /*
+         * Doesn't matter if you enable or disable these, so just leaving them out for this test case
+         * connectionFactory.setAlwaysSessionAsync(true); connectionFactory.setAsyncDispatch(true);
+         */
+        connectionFactory.setUseAsyncSend(true);
+    }
+
+    protected void tearDown() throws Exception{
+        super.tearDown();
+        broker.stop();
+    }
+
+    public void testNoSubscribers() throws Exception{
+        connection=connectionFactory.createConnection(USERNAME,DEFAULT_PASSWORD);
+        assertNotNull(connection);
+        connection.start();
+        session=connection.createSession(false,javax.jms.Session.AUTO_ACKNOWLEDGE);
+        assertNotNull(session);
+        destination=session.createQueue(QUEUE_NAME);
+        assertNotNull(destination);
+        publisher=session.createProducer(destination);
+        assertNotNull(publisher);
+        MapMessage msg=session.createMapMessage();
+        assertNotNull(msg);
+        msg.setString("key1","value1");
+        int loop;
+        for(loop=0;loop<MESSAGE_COUNT;loop++){
+            msg.setInt("key2",loop);
+            publisher.send(msg,deliveryMode,deliveryPriority,Message.DEFAULT_TIME_TO_LIVE);
+            if (loop%500==0){
+                System.out.println("Sent " + loop + " messages");
+            }
+        }
+        Thread.sleep(1000000);
+        this.assertEquals(loop,MESSAGE_COUNT);
+        publisher.close();
+        session.close();
+        connection.stop();
+        connection.stop();
+    }
+
+    
+}