NMS does not use TcpNoDelay which results in poor performance compared to Java
------------------------------------------------------------------------------

                 Key: AMQNET-109
                 URL: https://issues.apache.org/activemq/browse/AMQNET-109
             Project: ActiveMQ .Net
          Issue Type: Improvement
          Components: ActiveMQ Client
         Environment: ActiveMQ 5.1 with NMS trunk revison 688066
            Reporter: Stefan Gmeiner
            Assignee: James Strachan
         Attachments: NMS-TcpNoDelayEnabled.patch

We are evaluating the NMS-API to connect a C# app to our ActiveMQ broker. For 
this we wrote a simple client which sends a request and waits for a reply 
(Client --> Broker --> Server --> Broker --> Client). The client/server C#-app 
runs in a single process with two different connections to the broker which 
resides on a  different pc on the network.

This scenario takes about 200ms for each message transfered by the C#-API and 
less than 20ms by the Java-API although both do the same thing. 

After looking through the code I found out that the NMS client does not use the 
TcpNoDelay-Option during the wire negoation. I changed the code so that this 
option will be negotiated with the broker and set on the underlying socket and 
now I have apperently the same performance as with Java. I attached the code 
change as patch to the current trunk version of the .NET-client.

We would be happy if someone could check the patch and give some feedback.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to