You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/11/03 10:14:01 UTC

svn commit: r591563 - in /mina/trunk/core/src/main/java/org/apache/mina/filter/traffic: ReadThrottleFilter.java ReadThrottleFilterChainBuilder.java WriteThrottleFilter.java

Author: trustin
Date: Sat Nov  3 02:14:00 2007
New Revision: 591563

URL: http://svn.apache.org/viewvc?rev=591563&view=rev
Log:
* Better property naming on ReadThrottleFilter, ReadThrottleFilterChainBuilder and WriteThrottleFilter
* Added TODO marks

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilter.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilterChainBuilder.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/WriteThrottleFilter.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilter.java?rev=591563&r1=591562&r2=591563&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilter.java Sat Nov  3 02:14:00 2007
@@ -44,27 +44,27 @@
      * Returns the maximum amount of data in the buffer of the {@link ExecutorFilter}
      * per {@link IoSession}.  {@code 0} means 'disabled'.
      */
-    int getLocalMaxBufferSize();
+    int getMaxSessionBufferSize();
 
     /**
      * Returns the maximum amount of data in the buffer of the {@link ExecutorFilter}
      * for all {@link IoSession} whose {@link IoFilterChain} has been configured by
      * this builder. {@code 0} means 'disabled'.
      */
-    int getGlobalMaxBufferSize();
+    int getMaxGlobalBufferSize();
 
     /**
      * Sets the maximum amount of data in the buffer of the {@link ExecutorFilter}
      * per {@link IoSession}.  Specify {@code 0} or a smaller value to disable.
      */
-    void setLocalMaxBufferSize(int localMaxBufferSize);
+    void setMaxSessionBufferSize(int localMaxBufferSize);
     
     /**
      * Sets the maximum amount of data in the buffer of the {@link ExecutorFilter}
      * for all {@link IoSession} whose {@link IoFilterChain} has been configured by
      * this builder. Specify {@code 0} or a smaller value to disable.
      */
-    void setGlobalMaxBufferSize(int globalMaxBufferSize);
+    void setMaxGlobalBufferSize(int globalMaxBufferSize);
 
     /**
      * Returns the current amount of data in the buffer of the {@link ExecutorFilter}
@@ -73,7 +73,7 @@
     int getLocalBufferSize(IoSession session);
 
     /**
-     * Returns the current amount of data in the buffer of the {@link ExecuorFilter}
+     * Returns the current amount of data in the buffer of the {@link ExecutorFilter}
      * for all {@link IoSession} whose {@link IoFilterChain} has been configured by
      * this builder.
      */

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilterChainBuilder.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilterChainBuilder.java?rev=591563&r1=591562&r2=591563&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilterChainBuilder.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilterChainBuilder.java Sat Nov  3 02:14:00 2007
@@ -72,44 +72,48 @@
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
+ * 
+ * TODO Provide per-service limitation
  */
 public class ReadThrottleFilterChainBuilder implements IoFilterChainBuilder {
+    
+    private static final AtomicInteger globalBufferSize = new AtomicInteger();
+
     private final AttributeKey STATE = new AttributeKey(getClass(), "state");
 
     private final IoFilter enterFilter = new EnterFilter();
     private final IoFilter exitFilter = new ExitFilter();
-    private final AtomicInteger globalBufferSize = new AtomicInteger();
     
     private final MessageSizeEstimator messageSizeEstimator;
-    private volatile int localMaxBufferSize;
-    private volatile int globalMaxBufferSize;
+    private volatile int maxSessionBufferSize;
+    private volatile int maxGlobalBufferSize;
     
     /**
-     * Creates a new instance with 64KB <tt>localMaxBufferSize</tt>,
-     * 128MB <tt>globalMaxBufferSize</tt> and a new {@link DefaultMessageSizeEstimator}.
+     * Creates a new instance with 64KB <tt>maxSessionBufferSize</tt>,
+     * 128MB <tt>maxGlobalBufferSize</tt> and a new {@link DefaultMessageSizeEstimator}.
      */
     public ReadThrottleFilterChainBuilder() {
-        // localMax = 64KB, globalMax = 128MB
+        // 64KB, 128MB
         this(65536, 1048576 * 128);
     }
     
     /**
-     * Creates a new instance with the specified <tt>localMaxBufferSize</tt>,
-     * <tt>globalMaxBufferSize</tt> and a new {@link DefaultMessageSizeEstimator}.
+     * Creates a new instance with the specified <tt>maxSessionBufferSize</tt>,
+     * <tt>maxGlobalBufferSize</tt> and a new {@link DefaultMessageSizeEstimator}.
      * 
      */
-    public ReadThrottleFilterChainBuilder(int localMaxBufferSize, int globalMaxBufferSize) {
-        this(localMaxBufferSize, globalMaxBufferSize, null);
+    public ReadThrottleFilterChainBuilder(int maxSessionBufferSize, int maxGlobalBufferSize) {
+        this(maxSessionBufferSize, maxGlobalBufferSize, null);
     }
 
     /**
-     * Creates a new instance with the specified <tt>localMaxBufferSize</tt>,
-     * <tt>globalMaxBufferSize</tt> and {@link MessageSizeEstimator}.
+     * Creates a new instance with the specified <tt>maxSessionBufferSize</tt>,
+     * <tt>maxGlobalBufferSize</tt> and {@link MessageSizeEstimator}.
      * 
-     * @param localMaxBufferSize the maximum amount of data in the buffer of
+     * @param maxSessionBufferSize the maximum amount of data in the buffer of
      *                           the {@link ExecutorFilter} per {@link IoSession}.
      *                           Specify {@code 0} or a smaller value to disable.
-     * @param globalMaxBufferSize the maximum amount of data in the buffer of
+     * @param maxGlobalBufferSize the maximum amount of data in the buffer of
      *                            the {@link ExecutorFilter} for all {@link IoSession}
      *                            whose {@link IoFilterChain} has been configured by
      *                            this builder.
@@ -118,21 +122,21 @@
      *                             a new {@link DefaultMessageSizeEstimator} is created.
      */
     public ReadThrottleFilterChainBuilder(
-            int localMaxBufferSize, int globalMaxBufferSize, MessageSizeEstimator messageSizeEstimator) {
+            int maxSessionBufferSize, int maxGlobalBufferSize, MessageSizeEstimator messageSizeEstimator) {
         if (messageSizeEstimator == null) {
             messageSizeEstimator = new DefaultMessageSizeEstimator();
         }
         this.messageSizeEstimator = messageSizeEstimator;
-        setLocalMaxBufferSize(localMaxBufferSize);
-        setGlobalMaxBufferSize(globalMaxBufferSize);
+        setMaxSessionBufferSize(maxSessionBufferSize);
+        setMaxGlobalBufferSize(maxGlobalBufferSize);
     }
 
     /**
      * Returns the maximum amount of data in the buffer of the {@link ExecutorFilter}
      * per {@link IoSession}.  {@code 0} means 'disabled'.
      */
-    public int getLocalMaxBufferSize() {
-        return localMaxBufferSize;
+    public int getMaxSessionBufferSize() {
+        return maxSessionBufferSize;
     }
     
     /**
@@ -140,8 +144,8 @@
      * for all {@link IoSession} whose {@link IoFilterChain} has been configured by
      * this builder. {@code 0} means 'disabled'.
      */
-    public int getGlobalMaxBufferSize() {
-        return globalMaxBufferSize;
+    public int getMaxGlobalBufferSize() {
+        return maxGlobalBufferSize;
     }
     
     /**
@@ -164,7 +168,7 @@
         }
         
         synchronized (state) {
-            return state.bufferSize;
+            return state.sessionBufferSize;
         }
     }
     
@@ -172,11 +176,11 @@
      * Sets the maximum amount of data in the buffer of the {@link ExecutorFilter}
      * per {@link IoSession}.  Specify {@code 0} or a smaller value to disable.
      */
-    public void setLocalMaxBufferSize(int localMaxBufferSize) {
-        if (localMaxBufferSize < 0) {
-            localMaxBufferSize = 0;
+    public void setMaxSessionBufferSize(int maxSessionBufferSize) {
+        if (maxSessionBufferSize < 0) {
+            maxSessionBufferSize = 0;
         }
-        this.localMaxBufferSize = localMaxBufferSize;
+        this.maxSessionBufferSize = maxSessionBufferSize;
     }
 
     /**
@@ -184,11 +188,11 @@
      * for all {@link IoSession} whose {@link IoFilterChain} has been configured by
      * this builder. Specify {@code 0} or a smaller value to disable.
      */
-    public void setGlobalMaxBufferSize(int globalMaxBufferSize) {
-        if (globalMaxBufferSize < 0) {
-            globalMaxBufferSize = 0;
+    public void setMaxGlobalBufferSize(int maxGlobalBufferSize) {
+        if (maxGlobalBufferSize < 0) {
+            maxGlobalBufferSize = 0;
         }
-        this.globalMaxBufferSize = globalMaxBufferSize;
+        this.maxGlobalBufferSize = maxGlobalBufferSize;
     }
     
     /**
@@ -249,46 +253,46 @@
         buildFilterChain(chain.getEntry(AbstractExecutorFilter.class));
     }
     
-    private void acquire(IoSession session, int size) {
+    private void enter(IoSession session, int size) {
         State state = getState(session);
         
-        int globalBufferSize = this.globalBufferSize.addAndGet(size);
+        int globalBufferSize = ReadThrottleFilterChainBuilder.globalBufferSize.addAndGet(size);
         
-        int globalMaxBufferSize = this.globalMaxBufferSize;
-        int localMaxBufferSize = this.localMaxBufferSize;
+        int maxGlobalBufferSize = this.maxGlobalBufferSize;
+        int maxSessionBufferSize = this.maxSessionBufferSize;
         
         synchronized (state) {
-            int bufferSize = (state.bufferSize += size);
-            if ((localMaxBufferSize != 0 && bufferSize >= localMaxBufferSize) ||
-                (globalMaxBufferSize != 0 && globalBufferSize >= globalMaxBufferSize)) {
+            int bufferSize = (state.sessionBufferSize += size);
+            if ((maxSessionBufferSize != 0 && bufferSize >= maxSessionBufferSize) ||
+                (maxGlobalBufferSize != 0 && globalBufferSize >= maxGlobalBufferSize)) {
                 session.suspendRead();
                 state.suspendedRead = true;
             }
         }
     }
 
-    private void release(IoSession session, int size) {
+    private void exit(IoSession session, int size) {
         State state = getState(session);
 
-        int globalBufferSize = this.globalBufferSize.addAndGet(-size);
+        int globalBufferSize = ReadThrottleFilterChainBuilder.globalBufferSize.addAndGet(-size);
         if (globalBufferSize < 0) {
-            this.globalBufferSize.set(0);
+            ReadThrottleFilterChainBuilder.globalBufferSize.set(0);
             throw new IllegalStateException("globalBufferSize < 0");
         }
         
-        int globalMaxBufferSize = this.globalMaxBufferSize;
-        int localMaxBufferSize = this.localMaxBufferSize;
+        int maxGlobalBufferSize = this.maxGlobalBufferSize;
+        int maxSessionBufferSize = this.maxSessionBufferSize;
 
         synchronized (state) {
-            int bufferSize = (state.bufferSize -= size);
+            int bufferSize = (state.sessionBufferSize -= size);
             if (bufferSize < 0) {
-                state.bufferSize = 0;
-                throw new IllegalStateException("bufferSize < 0");
+                state.sessionBufferSize = 0;
+                throw new IllegalStateException("sessionBufferSize < 0");
             }
     
             if (state.suspendedRead &&
-                (localMaxBufferSize == 0 || bufferSize < localMaxBufferSize) &&
-                (globalMaxBufferSize == 0 || globalBufferSize < globalMaxBufferSize)) {
+                (maxSessionBufferSize == 0 || bufferSize < maxSessionBufferSize) &&
+                (maxGlobalBufferSize == 0 || globalBufferSize < maxGlobalBufferSize)) {
                 session.resumeRead();
                 state.suspendedRead = false;
             }
@@ -328,7 +332,7 @@
         @Override
         public void messageReceived(
                 NextFilter nextFilter, IoSession session, Object message) throws Exception {
-            acquire(session, messageSizeEstimator.estimateSize(message));
+            enter(session, messageSizeEstimator.estimateSize(message));
             nextFilter.messageReceived(session, message);
         }
 
@@ -336,33 +340,33 @@
             return ReadThrottleFilterChainBuilder.this.getGlobalBufferSize();
         }
 
-        public int getGlobalMaxBufferSize() {
-            return ReadThrottleFilterChainBuilder.this.getGlobalMaxBufferSize();
+        public int getMaxGlobalBufferSize() {
+            return ReadThrottleFilterChainBuilder.this.getMaxGlobalBufferSize();
         }
 
         public int getLocalBufferSize(IoSession session) {
             return ReadThrottleFilterChainBuilder.this.getLocalBufferSize(session);
         }
 
-        public int getLocalMaxBufferSize() {
-            return ReadThrottleFilterChainBuilder.this.getLocalMaxBufferSize();
+        public int getMaxSessionBufferSize() {
+            return ReadThrottleFilterChainBuilder.this.getMaxSessionBufferSize();
         }
 
         public MessageSizeEstimator getMessageSizeEstimator() {
             return ReadThrottleFilterChainBuilder.this.getMessageSizeEstimator();
         }
 
-        public void setGlobalMaxBufferSize(int globalMaxBufferSize) {
-            ReadThrottleFilterChainBuilder.this.setGlobalMaxBufferSize(globalMaxBufferSize);
+        public void setMaxGlobalBufferSize(int maxGlobalBufferSize) {
+            ReadThrottleFilterChainBuilder.this.setMaxGlobalBufferSize(maxGlobalBufferSize);
         }
 
-        public void setLocalMaxBufferSize(int localMaxBufferSize) {
-            ReadThrottleFilterChainBuilder.this.setLocalMaxBufferSize(localMaxBufferSize);
+        public void setMaxSessionBufferSize(int maxSessionBufferSize) {
+            ReadThrottleFilterChainBuilder.this.setMaxSessionBufferSize(maxSessionBufferSize);
         }
         
         @Override
         public String toString() {
-            return String.valueOf(getGlobalBufferSize()) + '/' + getGlobalMaxBufferSize();
+            return String.valueOf(getGlobalBufferSize()) + '/' + getMaxGlobalBufferSize();
         }
     }
 
@@ -381,18 +385,18 @@
         @Override
         public void messageReceived(
                 NextFilter nextFilter, IoSession session, Object message) throws Exception {
-            release(session, messageSizeEstimator.estimateSize(message));
+            exit(session, messageSizeEstimator.estimateSize(message));
             nextFilter.messageReceived(session, message);
         }
         
         @Override
         public String toString() {
-            return String.valueOf(getGlobalBufferSize()) + '/' + getGlobalMaxBufferSize();
+            return String.valueOf(getGlobalBufferSize()) + '/' + getMaxGlobalBufferSize();
         }
     }
     
     private static class State {
-        private int bufferSize;
+        private int sessionBufferSize;
         private boolean suspendedRead;
     }
 }

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/WriteThrottleFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/WriteThrottleFilter.java?rev=591563&r1=591562&r2=591563&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/WriteThrottleFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/WriteThrottleFilter.java Sat Nov  3 02:14:00 2007
@@ -32,14 +32,18 @@
  * {@link OutOfMemoryError} under heavy load.
  * <p>
  * This filter will automatically enforce the specified {@link WriteThrottlePolicy}
- * when the {@link IoSession#getScheduledWriteBytes() localScheduledWriteBytes},
- * {@link IoSession#getScheduledWriteMessages() localScheduledWriteMessages},
- * {@link IoService#getScheduledWriteBytes() globalScheduledWriteBytes} or
- * {@link IoService#getScheduledWriteMessages() globalScheduledWriteMessages}
+ * when the {@link IoSession#getScheduledWriteBytes() sessionScheduledWriteBytes},
+ * {@link IoSession#getScheduledWriteMessages() sessionScheduledWriteMessages},
+ * {@link IoService#getScheduledWriteBytes() serviceScheduledWriteBytes} or
+ * {@link IoService#getScheduledWriteMessages() serviceScheduledWriteMessages}
  * exceeds the specified limit values.
+ * <p>
+ * Please add this filter at the end of the filter chain.
 
  * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
+ * 
+ * TODO provide global limitation
  */
 public class WriteThrottleFilter extends IoFilterAdapter {
 
@@ -51,10 +55,10 @@
     
     private volatile WriteThrottlePolicy policy;
     
-    private volatile int localMaxScheduledWriteMessages;
-    private volatile long localMaxScheduledWriteBytes;
-    private volatile int globalMaxScheduledWriteMessages;
-    private volatile long globalMaxScheduledWriteBytes;
+    private volatile int maxSessionScheduledWriteMessages;
+    private volatile long maxSessionScheduledWriteBytes;
+    private volatile int maxServiceScheduledWriteMessages;
+    private volatile long maxServiceScheduledWriteBytes;
     
     /**
      * Creates a new instance with the default policy
@@ -77,10 +81,10 @@
      * ({@link WriteThrottlePolicy#LOG}) and the specified limit values.
      */
     public WriteThrottleFilter(
-            int localMaxScheduledWriteMessages, long localMaxScheduledWriteBytes,
+            int maxSessionScheduledWriteMessages, long maxSessionScheduledWriteBytes,
             int globalMaxScheduledWriteMessages, long globalMaxScheduledWriteBytes) {
         this(WriteThrottlePolicy.LOG,
-             localMaxScheduledWriteMessages, localMaxScheduledWriteBytes,
+             maxSessionScheduledWriteMessages, maxSessionScheduledWriteBytes,
              globalMaxScheduledWriteMessages, globalMaxScheduledWriteBytes);
     }
     
@@ -90,14 +94,14 @@
      */
     public WriteThrottleFilter(
             WriteThrottlePolicy policy,
-            int localMaxScheduledWriteMessages, long localMaxScheduledWriteBytes,
-            int globalMaxScheduledWriteMessages, long globalMaxScheduledWriteBytes) {
+            int maxSessionScheduledWriteMessages, long maxSessionScheduledWriteBytes,
+            int maxServiceScheduledWriteMessages, long maxServiceScheduledWriteBytes) {
 
         setPolicy(policy);
-        setLocalMaxScheduledWriteMessages(localMaxScheduledWriteMessages);
-        setLocalMaxScheduledWriteBytes(localMaxScheduledWriteBytes);
-        setGlobalMaxScheduledWriteMessages(globalMaxScheduledWriteMessages);
-        setGlobalMaxScheduledWriteBytes(globalMaxScheduledWriteBytes);
+        setMaxSessionScheduledWriteMessages(maxSessionScheduledWriteMessages);
+        setMaxSessionScheduledWriteBytes(maxSessionScheduledWriteBytes);
+        setMaxServiceScheduledWriteMessages(maxServiceScheduledWriteMessages);
+        setMaxServiceScheduledWriteBytes(maxServiceScheduledWriteBytes);
     }
     
     public WriteThrottlePolicy getPolicy() {
@@ -111,48 +115,48 @@
         this.policy = policy;
     }
 
-    public int getLocalMaxScheduledWriteMessages() {
-        return localMaxScheduledWriteMessages;
+    public int getMaxSessionScheduledWriteMessages() {
+        return maxSessionScheduledWriteMessages;
     }
 
-    public void setLocalMaxScheduledWriteMessages(int localMaxScheduledWriteMessages) {
-        if (localMaxScheduledWriteMessages < 0) {
-            localMaxScheduledWriteMessages = 0;
+    public void setMaxSessionScheduledWriteMessages(int maxSessionScheduledWriteMessages) {
+        if (maxSessionScheduledWriteMessages < 0) {
+            maxSessionScheduledWriteMessages = 0;
         }
-        this.localMaxScheduledWriteMessages = localMaxScheduledWriteMessages;
+        this.maxSessionScheduledWriteMessages = maxSessionScheduledWriteMessages;
     }
 
-    public long getLocalMaxScheduledWriteBytes() {
-        return localMaxScheduledWriteBytes;
+    public long getMaxSessionScheduledWriteBytes() {
+        return maxSessionScheduledWriteBytes;
     }
 
-    public void setLocalMaxScheduledWriteBytes(long localMaxScheduledWriteBytes) {
-        if (localMaxScheduledWriteBytes < 0) {
-            localMaxScheduledWriteBytes = 0;
+    public void setMaxSessionScheduledWriteBytes(long maxSessionScheduledWriteBytes) {
+        if (maxSessionScheduledWriteBytes < 0) {
+            maxSessionScheduledWriteBytes = 0;
         }
-        this.localMaxScheduledWriteBytes = localMaxScheduledWriteBytes;
+        this.maxSessionScheduledWriteBytes = maxSessionScheduledWriteBytes;
     }
 
-    public int getGlobalMaxScheduledWriteMessages() {
-        return globalMaxScheduledWriteMessages;
+    public int getMaxServiceScheduledWriteMessages() {
+        return maxServiceScheduledWriteMessages;
     }
 
-    public void setGlobalMaxScheduledWriteMessages(int globalMaxScheduledWriteMessages) {
-        if (globalMaxScheduledWriteMessages < 0) {
-            globalMaxScheduledWriteMessages = 0;
+    public void setMaxServiceScheduledWriteMessages(int maxServiceScheduledWriteMessages) {
+        if (maxServiceScheduledWriteMessages < 0) {
+            maxServiceScheduledWriteMessages = 0;
         }
-        this.globalMaxScheduledWriteMessages = globalMaxScheduledWriteMessages;
+        this.maxServiceScheduledWriteMessages = maxServiceScheduledWriteMessages;
     }
 
-    public long getGlobalMaxScheduledWriteBytes() {
-        return globalMaxScheduledWriteBytes;
+    public long getMaxServiceScheduledWriteBytes() {
+        return maxServiceScheduledWriteBytes;
     }
 
-    public void setGlobalMaxScheduledWriteBytes(long globalMaxScheduledWriteBytes) {
-        if (globalMaxScheduledWriteBytes < 0) {
-            globalMaxScheduledWriteBytes = 0;
+    public void setMaxServiceScheduledWriteBytes(long maxServiceScheduledWriteBytes) {
+        if (maxServiceScheduledWriteBytes < 0) {
+            maxServiceScheduledWriteBytes = 0;
         }
-        this.globalMaxScheduledWriteBytes = globalMaxScheduledWriteBytes;
+        this.maxServiceScheduledWriteBytes = maxServiceScheduledWriteBytes;
     }
 
     @Override
@@ -189,10 +193,10 @@
             return true;
         }
 
-        int lmswm = localMaxScheduledWriteMessages;
-        long lmswb = localMaxScheduledWriteBytes;
-        int gmswm = globalMaxScheduledWriteMessages;
-        long gmswb = globalMaxScheduledWriteBytes;
+        int lmswm = maxSessionScheduledWriteMessages;
+        long lmswb = maxSessionScheduledWriteBytes;
+        int gmswm = maxServiceScheduledWriteMessages;
+        long gmswb = maxServiceScheduledWriteBytes;
         
         return (lmswm == 0 || session.getScheduledWriteMessages() < lmswm) &&
                (lmswb == 0 || session.getScheduledWriteBytes() < lmswb) &&
@@ -270,10 +274,10 @@
     }
     
     private String getMessage(IoSession session) {
-        int lmswm = localMaxScheduledWriteMessages;
-        long lmswb = localMaxScheduledWriteBytes;
-        int gmswm = globalMaxScheduledWriteMessages;
-        long gmswb = globalMaxScheduledWriteBytes;
+        int lmswm = maxSessionScheduledWriteMessages;
+        long lmswb = maxSessionScheduledWriteBytes;
+        int gmswm = maxServiceScheduledWriteMessages;
+        long gmswb = maxServiceScheduledWriteBytes;
 
         StringBuilder buf = new StringBuilder(512);
         buf.append("Write requests flooded - local: ");