OK, I posted my explanation of why TCP_NODELAY doesn't work on the broker side, in a separate thread because it's not only a TCP_NODELAY problem, but a more general one.
The thread: http://www.nabble.com/Bug-when-setting-transportConnector-URI-options-in-activemq.xml-tf3611737s2354.html Should I make a JIRA? If so, I'd just copy / paste the message, mostly. Best regards, David davidmc wrote: > > No, right now the broker side is not implementing this correctly. > See AMQ-1156 : https://issues.apache.org/activemq/browse/AMQ-1156 and also > the discussion at AMQ-1137: > https://issues.apache.org/activemq/browse/AMQ-1137. > > The easiest solution right now is to go to the method > org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket method and > add the line "sock.setTcpNoDelay(true);" at the end. > > I have been looking further into this, and have found that the problem > lies around the TcpTransportServer class. > I have to run to a meeting, more details later :) > > > Teemu Torma wrote: >> >> On Thursday 19 April 2007, Albert Strasheim wrote: >>> From what I can tell, AMQCPP supports a broker URL property for >>> setting TCP_NODELAY, but actually setting it doesn't change anything >>> at socket creation time (although I could be mistaken, I just did a >>> quick browse through the code). Maybe TCP_NODELAY should even be the >>> default? >> >> You need activemq side to do the same thing to get latency down. On the >> other hand, if you are just sending messages you get better throughput >> without TCP_NODELAY, it all depends on usage. >> >>> > How to check if this is really the problem: >>> > -Go to AMQCPP source code and add a line to your socket creation >>> > code, where you explicitely set TCP_NODELAY to True always (to >>> > disable Nagle's algorithm). Rebuild and compare. >>> >>> I'll give this a go today. >> >> I tested this earlier this week and did get 40ms off from the round-trip >> time (all Linux). However, I still get 40ms left and even though >> tracing openwire commands show we are requesting nodelay from the >> broker, I could not get it down. Does activemq itself implement this >> correctly? >> >> Teemu >> >> > > -- View this message in context: http://www.nabble.com/AMQCPP-Openwire-much-slower-than-Stomp--tf3599986s2354.html#a10093101 Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.
