Again I have to reply myself to provide more information... It seems from my tests that even the socket.tcpNoDelay=true flag has an effect on broker configuration (in activemq.xml file). It only seems to work in client connection URIs. The other 2 possibilities (tcpNoDelay=true and wireFormat.tcpNoDelayEnabled=true) do not work either.
In some scenarios this can result into delayed ACK timeouts even if the client sockets have TCP_NODELAY = true. So the only solution if you want all ActiveMQ sockets (broker's and client's) to have TCP_NODELAY = true is to hard-code it in ActiveMQ source code. See the 1st comment on https://issues.apache.org/activemq/browse/AMQ-1156 for more details... Best Regards, David davidmc wrote: > > Hello ActiveMQ devs, > > I don't want to seem picky :( but 1 week has passed and still no feedback > on this TCP_NODELAY issue. > Finding that "wireFormat.tcpNoDelayEnabled" does not work but > "socket.tcpNoDelay" DOES work even if it is not documented, already helped > 1 person... see the last comment of Helmut at > https://issues.apache.org/activemq/browse/AMQ-1137 . > > So, could you please update the documentation at > http://activemq.apache.org/tcp-transport-reference.html or > http://activemq.apache.org/configuring-wire-formats.html to point out that > one should use socket.tcpNoDelay=true to enable TCP_NODELAY in ActiveMQ > sockets (i.e. disable Nagle's Algorithm)? > > Just edit the wiki to add something like... "At the moment > wireFormat.tcpNoDelayEnabled=true option does not work, please use > socket.tcpNoDelay=true instead" or whatever you want. > > Also it shouldn't take much time to change the code to accept > wireFormat.tcpNoDelay as the documentation actually says... this is just > an option parsing / option forwarding problem. > > If you don't at least document the socket.tcpNoDelay workaround, this can > lead people to believe that ActiveMQ performs bad in Linux - because with > Windows localhost sockets, this problem doesn't arise, unlike Linux > sockets - and people testing ActiveMQ on Linux may be disappointed. > > Thanks in advance, regards, > > David > > > > > davidmc wrote: >> >> At least in connection URL's used by clients, the option >> wireFormat.tcpNoDelayEnabled=true is ignored silently in versions 4.0, >> 4.1.0 and 4.2.0. >> So, you may have tried to disable Nagle's algorithm, to reduce latency >> for example, without noticing any effect... >> >> workaround: use socket.tcpNoDelay instead, for example: >> "tcp://localhost?socket.tcpNoDelay=true" >> >> Please see the issue I created at >> https://issues.apache.org/activemq/browse/AMQ-1156 . >> >> Regards, >> >> David >> > > -- View this message in context: http://www.nabble.com/option-wireFormat.tcpNoDelayEnabled%3Dtrue-seems-to-be-ignored-tf3185560s2354.html#a9095199 Sent from the ActiveMQ - User mailing list archive at Nabble.com.