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.