[jboss-cvs] JBoss Messaging SVN: r4023 - in trunk: src/main/org/jboss/messaging/core/config and 6 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Apr 9 08:53:31 EDT 2008


Author: jmesnil
Date: 2008-04-09 08:53:31 -0400 (Wed, 09 Apr 2008)
New Revision: 4023

Modified:
   trunk/src/etc/server/default/deploy/jbm-configuration.xml
   trunk/src/main/org/jboss/messaging/core/config/Configuration.java
   trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
   trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConfigurationValidator.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java
   trunk/tests/etc/ConfigurationTest-config.xml
   trunk/tests/src/org/jboss/messaging/core/config/impl/test/unit/ConfigurationTest.java
   trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/RemotingConfigurationValidatorTest.java
Log:
* JBMESSAGING-1272 - Configurable TCP window size & no delay
  - TCP send buffer size (SO_SNDBUF) is also configurable 


Modified: trunk/src/etc/server/default/deploy/jbm-configuration.xml
===================================================================
--- trunk/src/etc/server/default/deploy/jbm-configuration.xml	2008-04-08 14:55:45 UTC (rev 4022)
+++ trunk/src/etc/server/default/deploy/jbm-configuration.xml	2008-04-09 12:53:31 UTC (rev 4023)
@@ -44,10 +44,15 @@
       <!-- This setting is taken into account only when remoting-transport is set to TCP -->
       <remoting-tcp-nodelay>false</remoting-tcp-nodelay>
       
-      <!-- Set the TCP Receive Buffer size (SO_RCVBUF).                                    -->
+      <!-- Set the TCP Receive Buffer size (SO_RCVBUF).                                  -->
       <!-- Set it to -1 if you want to use the value hinted by the Operating System      --> 
       <!-- This setting is taken into account only when remoting-transport is set to TCP -->
       <remoting-tcp-receive-buffer-size>-1</remoting-tcp-receive-buffer-size>
+      
+      <!-- Set the TCP Send Buffer size (SO_SNDBUF).                                     -->
+      <!-- Set it to -1 if you want to use the value hinted by the Operating System      --> 
+      <!-- This setting is taken into account only when remoting-transport is set to TCP -->
+      <remoting-tcp-send-buffer-size>-1</remoting-tcp-send-buffer-size>
 
       <!--  if ssl is enabled, all remoting-ssl-* properties must be set -->
       <remoting-enable-ssl>false</remoting-enable-ssl>

Modified: trunk/src/main/org/jboss/messaging/core/config/Configuration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/Configuration.java	2008-04-08 14:55:45 UTC (rev 4022)
+++ trunk/src/main/org/jboss/messaging/core/config/Configuration.java	2008-04-09 12:53:31 UTC (rev 4023)
@@ -66,6 +66,8 @@
    
    int getTcpReceiveBufferSize();
 
+   int getTcpSendBufferSize();
+
    int getKeepAliveInterval();
 
    int getKeepAliveTimeout();

Modified: trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java	2008-04-08 14:55:45 UTC (rev 4022)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java	2008-04-09 12:53:31 UTC (rev 4023)
@@ -104,6 +104,7 @@
    protected boolean invmDisabledModified = false;
    protected boolean tcpNoDelay;
    protected int tcpReceiveBufferSize = -1;
+   protected int tcpSendBufferSize = -1;
    protected boolean sslEnabled = DEFAULT_SSL_ENABLED;
    protected boolean sslEnabledModified = false;
    protected String keyStorePath;
@@ -340,6 +341,16 @@
    {
       this.tcpReceiveBufferSize = size;
    }
+   
+   public int getTcpSendBufferSize()
+   {
+      return this.tcpSendBufferSize;
+   }
+   
+   public void setTcpSendBufferSize(int size)
+   {
+      this.tcpSendBufferSize = size;
+   }
 
    public String getURI()
    {
@@ -351,6 +362,7 @@
       buff.append("&").append("invmDisabled=").append(invmDisabled);
       buff.append("&").append("tcpNoDelay=").append(tcpNoDelay);
       buff.append("&").append("tcpReceiveBufferSize=").append(tcpReceiveBufferSize);
+      buff.append("&").append("tcpSendBufferSize=").append(tcpSendBufferSize);
       buff.append("&").append("sslEnabled=").append(sslEnabled);
       buff.append("&").append("keyStorePath=").append(keyStorePath);
       buff.append("&").append("trustStorePath=").append(trustStorePath);

Modified: trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java	2008-04-08 14:55:45 UTC (rev 4022)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java	2008-04-09 12:53:31 UTC (rev 4023)
@@ -83,6 +83,8 @@
       
       tcpReceiveBufferSize = getInteger(e, "remoting-tcp-receive-buffer-size", -1);
 
+      tcpSendBufferSize = getInteger(e, "remoting-tcp-send-buffer-size", -1);
+
       sslEnabled = getBoolean(e, "remoting-enable-ssl", false);
       
       keyStorePath = getString(e, "remoting-ssl-keystore-path", null);

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConfigurationValidator.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConfigurationValidator.java	2008-04-08 14:55:45 UTC (rev 4022)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConfigurationValidator.java	2008-04-09 12:53:31 UTC (rev 4023)
@@ -52,13 +52,22 @@
          throw new IllegalStateException("Remoting port can not be negative when transport is not INVM");
       }
       
-      if (configuration.getTcpReceiveBufferSize() != -1 && configuration.getTcpReceiveBufferSize() <= 0)
+      int receiveBufferSize = configuration.getTcpReceiveBufferSize();
+      if (receiveBufferSize != -1 && receiveBufferSize <= 0)
       {
-         String message = "Invalid value for TCP receive buffer size: " + configuration.getTcpReceiveBufferSize();
+         String message = "Invalid value for TCP receive buffer size: " + receiveBufferSize;
          message += ". Value must be either -1 (not specified) or greater than 0";
          throw new IllegalStateException(message);
       }
 
+      int sendBufferSize = configuration.getTcpSendBufferSize();
+      if (sendBufferSize != -1 && sendBufferSize <= 0)
+      {
+         String message = "Invalid value for TCP send buffer size: " + sendBufferSize;
+         message += ". Value must be either -1 (not specified) or greater than 0";
+         throw new IllegalStateException(message);
+      }
+
       if (log.isDebugEnabled())
          log.debug("configuration is valid.");
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java	2008-04-08 14:55:45 UTC (rev 4022)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java	2008-04-09 12:53:31 UTC (rev 4023)
@@ -114,10 +114,16 @@
       addKeepAliveFilter(filterChain, keepAliveFactory, configuration.getKeepAliveInterval(),
             configuration.getKeepAliveTimeout(), this);
       connector.getSessionConfig().setTcpNoDelay(configuration.isTcpNoDelay());
-      if (configuration.getTcpReceiveBufferSize() != -1)
+      int receiveBufferSize = configuration.getTcpReceiveBufferSize();
+      if (receiveBufferSize != -1)
       {
-         connector.getSessionConfig().setReceiveBufferSize(configuration.getTcpReceiveBufferSize());
+         connector.getSessionConfig().setReceiveBufferSize(receiveBufferSize);
       }
+      int sendBufferSize = configuration.getTcpSendBufferSize();
+      if (sendBufferSize != -1)
+      {
+         connector.getSessionConfig().setSendBufferSize(sendBufferSize);
+      }
       connector.getSessionConfig().setKeepAlive(true);
       connector.getSessionConfig().setReuseAddress(true);
    }

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java	2008-04-08 14:55:45 UTC (rev 4022)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java	2008-04-09 12:53:31 UTC (rev 4023)
@@ -149,10 +149,16 @@
          // Bind
          acceptor.setDefaultLocalAddress(new InetSocketAddress(config.getHost(), config.getPort()));
          acceptor.getSessionConfig().setTcpNoDelay(config.isTcpNoDelay());
-         if (config.getTcpReceiveBufferSize() != -1)
+         int receiveBufferSize = config.getTcpReceiveBufferSize();
+         if (receiveBufferSize != -1)
          {
-            acceptor.getSessionConfig().setReceiveBufferSize(config.getTcpReceiveBufferSize());
+            acceptor.getSessionConfig().setReceiveBufferSize(receiveBufferSize);
          }
+         int sendBufferSize = config.getTcpSendBufferSize();
+         if (sendBufferSize != -1)
+         {
+            acceptor.getSessionConfig().setSendBufferSize(sendBufferSize);
+         }
          acceptor.setReuseAddress(true);
          acceptor.getSessionConfig().setReuseAddress(true);
          acceptor.getSessionConfig().setKeepAlive(true);

Modified: trunk/tests/etc/ConfigurationTest-config.xml
===================================================================
--- trunk/tests/etc/ConfigurationTest-config.xml	2008-04-08 14:55:45 UTC (rev 4022)
+++ trunk/tests/etc/ConfigurationTest-config.xml	2008-04-09 12:53:31 UTC (rev 4023)
@@ -45,6 +45,7 @@
       <remoting-disable-invm>true</remoting-disable-invm>
       <remoting-tcp-nodelay>true</remoting-tcp-nodelay>
       <remoting-tcp-receive-buffer-size>8192</remoting-tcp-receive-buffer-size>
+      <remoting-tcp-send-buffer-size>1024</remoting-tcp-send-buffer-size>
       <remoting-enable-ssl>true</remoting-enable-ssl>
       <remoting-ssl-keystore-path>messaging.keystore</remoting-ssl-keystore-path>      
       <remoting-ssl-keystore-password>secureexample keystore</remoting-ssl-keystore-password>     

Modified: trunk/tests/src/org/jboss/messaging/core/config/impl/test/unit/ConfigurationTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/config/impl/test/unit/ConfigurationTest.java	2008-04-08 14:55:45 UTC (rev 4022)
+++ trunk/tests/src/org/jboss/messaging/core/config/impl/test/unit/ConfigurationTest.java	2008-04-09 12:53:31 UTC (rev 4023)
@@ -109,6 +109,11 @@
       assertEquals(8192, configuration.getTcpReceiveBufferSize());
    }
 
+   public void testRemotingTcpSendBufferSize() throws Exception
+   {
+      assertEquals(1024, configuration.getTcpSendBufferSize());
+   }
+
    public void testRemotingEnableSSL() throws Exception
    {
       assertEquals(true, configuration.isSSLEnabled());

Modified: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/RemotingConfigurationValidatorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/RemotingConfigurationValidatorTest.java	2008-04-08 14:55:45 UTC (rev 4022)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/RemotingConfigurationValidatorTest.java	2008-04-09 12:53:31 UTC (rev 4023)
@@ -50,7 +50,6 @@
          fail("can not set a negative port");
       } catch (Exception e)
       {
-         
       }
    }
    
@@ -64,7 +63,6 @@
          fail("can not set tcp receive buffer size to 0");
       } catch (Exception e)
       {
-         
       }
    }
 
@@ -85,10 +83,42 @@
          fail("can not set tcp receive buffer size to a negative number other than -1");
       } catch (Exception e)
       {
-         
       }
    }
    
+   public void test_TcpSendBufferSize_to_0()
+   {
+      ConfigurationImpl config =  ConfigurationHelper.newConfiguration(TCP, "localhost", 9000);
+      config.setTcpSendBufferSize(0);
+      try 
+      {
+         validate(config);
+         fail("can not set tcp send buffer size to 0");
+      } catch (Exception e)
+      {
+      }
+   }
+
+   public void test_TcpSendBufferSize_to_minusOne()
+   {
+      ConfigurationImpl config =  ConfigurationHelper.newConfiguration(TCP, "localhost", 9000);
+      config.setTcpSendBufferSize(-1);
+      validate(config);
+   }
+
+   public void test_TcpSendBufferSize_to_NegativeNumber()
+   {
+      ConfigurationImpl config =  ConfigurationHelper.newConfiguration(TCP, "localhost", 9000);
+      config.setTcpSendBufferSize(-2);
+      try 
+      {
+         validate(config);
+         fail("can not set tcp send buffer size to a negative number other than -1");
+      } catch (Exception e)
+      {
+      }
+   }
+   
    public void test_DisableINVM_With_INVMTransport()
    {
       ConfigurationImpl config = ConfigurationHelper.newConfiguration(INVM, "localhost", 9000);




More information about the jboss-cvs-commits mailing list