Author: tabish
Date: Thu Aug  9 22:20:32 2012
New Revision: 1371514

URL: http://svn.apache.org/viewvc?rev=1371514&view=rev
Log:
https://issues.apache.org/jira/browse/AMQNET-391

Enhance TcpTransport to use the send and receive buffer size to configure the 
size of the buffered streams that wrap the network streams. 

Modified:
    
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransport.cs
    
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransportFactory.cs

Modified: 
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransport.cs
URL: 
http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransport.cs?rev=1371514&r1=1371513&r2=1371514&view=diff
==============================================================================
--- 
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransport.cs
 (original)
+++ 
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransport.cs
 Thu Aug  9 22:20:32 2012
@@ -49,6 +49,26 @@ namespace Apache.NMS.ActiveMQ.Transport.
                private ResumedHandler resumedHandler;
                private TimeSpan MAX_THREAD_WAIT = 
TimeSpan.FromMilliseconds(30000);
 
+        /// <summary>
+        /// Size in bytes of the receive buffer.
+        /// </summary>
+        private int receiveBufferSize = 8192;
+        public int ReceiveBufferSize
+        {
+            get { return receiveBufferSize; }
+            set { receiveBufferSize = value; }
+        }
+
+        /// <summary>
+        /// Size in bytes of send buffer.
+        /// </summary>
+        private int sendBufferSize = 8192;
+        public int SendBufferSize
+        {
+            get { return sendBufferSize; }
+            set { sendBufferSize = value; }
+        }
+
                public TcpTransport(Uri uri, Socket socket, IWireFormat 
wireformat)
                {
                        this.connectedUri = uri;

Modified: 
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransportFactory.cs
URL: 
http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransportFactory.cs?rev=1371514&r1=1371513&r2=1371514&view=diff
==============================================================================
--- 
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransportFactory.cs
 (original)
+++ 
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransportFactory.cs
 Thu Aug  9 22:20:32 2012
@@ -184,7 +184,14 @@ namespace Apache.NMS.ActiveMQ.Transport.
                /// </summary>
                protected virtual ITransport DoCreateTransport(Uri location, 
Socket socket, IWireFormat wireFormat )
                {
-                       return new TcpTransport(location, socket, wireFormat);
+                       TcpTransport transport = new TcpTransport(location, 
socket, wireFormat);
+
+                       // Apply the buffer sizes to the transport also so that 
it can buffer above the
+                       // TCP level which can eagerly send causing sparse 
packets.
+                       transport.SendBufferSize = SendBufferSize;
+                       transport.ReceiveBufferSize = ReceiveBufferSize;
+
+                       return transport;
                }
                
         // DISCUSSION: Caching host entries may not be the best strategy when 
using the


Reply via email to