You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2006/03/15 23:45:39 UTC

svn commit: r386199 - in /incubator/activemq/trunk/activemq-core/src: main/java/org/apache/activemq/broker/jmx/ main/java/org/apache/activemq/broker/region/ main/java/org/apache/activemq/broker/region/policy/ test/java/org/apache/activemq/transport/stomp/

Author: chirino
Date: Wed Mar 15 14:45:38 2006
New Revision: 386199

URL: http://svn.apache.org/viewcvs?rev=386199&view=rev
Log:
Applied patch in http://jira.activemq.org/jira/browse/AMQ-633
Thanks Brian Diesenhaus!

Also exposed the memory limits and usage via JMX and allowed the limit to be configured via a destination policy.


Modified:
    incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java
    incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java
    incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java
    incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java
    incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/policy/PolicyEntry.java
    incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java

Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java?rev=386199&r1=386198&r2=386199&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java Wed Mar 15 14:45:38 2006
@@ -73,6 +73,16 @@
         return destination.getDestinationStatistics().getMessagesCached().getCount();
     }
 
+    public int getMemoryPercentageUsed() {
+        return destination.getUsageManager().getPercentUsage();
+    }
+    public long getMemoryLimit() {
+        return destination.getUsageManager().getLimit();
+    }
+    public void setMemoryLimit(long limit) {
+        destination.getUsageManager().setLimit(limit);
+    }
+
     public CompositeData[] browse() throws OpenDataException{
         Message[] messages=destination.browse();
         CompositeData c[]=new CompositeData[messages.length];

Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java?rev=386199&r1=386198&r2=386199&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java Wed Mar 15 14:45:38 2006
@@ -76,4 +76,9 @@
      * @throws Exception
      */
     public String sendTextMessage(Map headers, String body) throws Exception;
+
+    public int getMemoryPercentageUsed();
+    public long getMemoryLimit();
+    public void setMemoryLimit(long limit);
+
 }

Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java?rev=386199&r1=386198&r2=386199&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java Wed Mar 15 14:45:38 2006
@@ -79,7 +79,9 @@
     public Queue(ActiveMQDestination destination, final UsageManager memoryManager, MessageStore store,
             DestinationStatistics parentStats, TaskRunnerFactory taskFactory) throws Exception {
         this.destination = destination;
-        this.usageManager = memoryManager;
+        this.usageManager = new UsageManager(memoryManager);
+        this.usageManager.setLimit(Long.MAX_VALUE);
+        
         this.store = store;
 
         destinationStatistics.setParent(parentStats);

Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java?rev=386199&r1=386198&r2=386199&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java Wed Mar 15 14:45:38 2006
@@ -73,7 +73,8 @@
 
         this.destination = destination;
         this.store = store;
-        this.usageManager = memoryManager;
+        this.usageManager = new UsageManager(memoryManager);
+        this.usageManager.setLimit(Long.MAX_VALUE);
         this.destinationStatistics.setParent(parentStats);
     }
 

Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/policy/PolicyEntry.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/policy/PolicyEntry.java?rev=386199&r1=386198&r2=386199&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/policy/PolicyEntry.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/policy/PolicyEntry.java Wed Mar 15 14:45:38 2006
@@ -42,6 +42,7 @@
     private int messageGroupHashBucketCount = 1024;
     private PendingMessageLimitStrategy pendingMessageLimitStrategy;
     private MessageEvictionStrategy messageEvictionStrategy;
+    private long memoryLimit;
 
     public void configure(Queue queue) {
         if (dispatchPolicy != null) {
@@ -51,6 +52,9 @@
             queue.setDeadLetterStrategy(deadLetterStrategy);
         }
         queue.setMessageGroupHashBucketCount(messageGroupHashBucketCount);
+        if( memoryLimit>0 ) {
+            queue.getUsageManager().setLimit(memoryLimit);
+        }
     }
 
     public void configure(Topic topic) {
@@ -64,6 +68,9 @@
             topic.setSubscriptionRecoveryPolicy(subscriptionRecoveryPolicy);
         }
         topic.setSendAdvisoryIfNoConsumers(sendAdvisoryIfNoConsumers);
+        if( memoryLimit>0 ) {
+            topic.getUsageManager().setLimit(memoryLimit);
+        }
     }
 
     public void configure(TopicSubscription subscription) {
@@ -171,6 +178,14 @@
      */
     public void setMessageEvictionStrategy(MessageEvictionStrategy messageEvictionStrategy) {
         this.messageEvictionStrategy = messageEvictionStrategy;
+    }
+
+    public long getMemoryLimit() {
+        return memoryLimit;
+    }
+
+    public void setMemoryLimit(long memoryLimit) {
+        this.memoryLimit = memoryLimit;
     }
 
 }

Modified: incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java?rev=386199&r1=386198&r2=386199&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java (original)
+++ incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java Wed Mar 15 14:45:38 2006
@@ -56,7 +56,7 @@
         broker.start();
         
         URI connectUri = connector.getConnectUri();
-        stompSocket = new Socket(connectUri.getHost(), connectUri.getPort());
+        stompSocket = new Socket("127.0.0.1", connectUri.getPort());
         inputBuffer = new ByteArrayOutputStream();
         
         ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("vm://localhost");