You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by davidmc <ar...@gmail.com> on 2007/02/07 09:25:44 UTC

option wireFormat.tcpNoDelayEnabled=true seems to be ignored

At least in connection URL's used by clients, the option
wireFormat.tcpNoDelayEnabled=true is ignored silently.
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#a8841490
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: option wireFormat.tcpNoDelayEnabled=true seems to be ignored

Posted by davidmc <ar...@gmail.com>.
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.


Re: option wireFormat.tcpNoDelayEnabled=true seems to be ignored

Posted by davidmc <ar...@gmail.com>.
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#a8980284
Sent from the ActiveMQ - User mailing list archive at Nabble.com.