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.