You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "David Martín Clavo (JIRA)" <ji...@apache.org> on 2007/02/07 09:18:03 UTC

[jira] Created: (AMQ-1156) option "wireFormat.tcpNoDelayEnabled=true" is ignored

option "wireFormat.tcpNoDelayEnabled=true" is ignored
-----------------------------------------------------

                 Key: AMQ-1156
                 URL: https://issues.apache.org/activemq/browse/AMQ-1156
             Project: ActiveMQ
          Issue Type: Bug
          Components: Documentation, Test Cases, Transport
    Affects Versions: 4.1.0, 4.0, 4.2.0
         Environment: Any.
            Reporter: David Martín Clavo


*A. Description*
Setting the wireFormat.tcpNoDelayEnabled flag to true in connection uri's (for example _"tcp://localhost:61616?wireFormat.tcpNoDelayEnabled"_) has no effect:
The sockets created in ActiveMQ do not have the TcpNoDelay flag set to true.
You can verify this for example in the following way: insert the line _System.err.println(sock.getTcpNoDelay());_ at the end of the method
_org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket_.
Also you can try my test at http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html which makes latency appear if Nagle's algorithm is not disabled.
This affects versions 4.0, 4.1.0, and 4.2.0 latest snapshot. I guess 4.0.2 is affected too.



*B. Reason*
After looking at the source code to understand how the options are set, i saw that in the method org.apache.activemq.transport.tcp.TcpTransportFactory.compositeConfigure the following line appears:
_Map socketOptions = IntrospectionSupport.extractProperties(options, "socket.")_; 

and also that the method to set the TcpNoDelay option in class _org.apache.activemq.transport.tcp.TcpTransport_ is called _setTcpNoDelay_ and not _setTcpNoDelayEnabled_

Therefore, I tried to write _"socket.tcpNoDelay=true"_ instead of _"wireFormat.tcpNoDelayEnabled=true"_ and it *worked!* This is a *workaround*.

But, _"wireFormat.tcpNoDelayEnabled"_ option is not refused (as _"wireFormat.tcpNoDelayTypoEnabled"_ would be). The option _"tcpNoDelay=true"_ is not refused either, but DOES NOT work either.



*C. Fix*
So, please, for the sake of the poor soul who's next going to try to disable Nagle's algorithm without noticing any effect, and will start looking for the problem elsewhere (and for the sake of consistency also):
-Either change the documentation (http://www.activemq.org/site/tcp-transport-reference.html and http://www.activemq.org/site/configuring-wire-formats.html) to say that one should use the _socket.tcpNoDelay_ option, or
-Change the code to obey the documentation (and make it refuse old options like just _"tcpNoDelay"_ who have no effect).

Personally I would change the documentation ASAP so that people know about the _"socket.tcpNoDelay=true"_ workaround until next version, and then change the code to recognize the _"wireFormat.tcpNoDelayTypoEnabled"_ option. I'd like to point out that the own ActiveMQ test cases use _"wireFormat.tcpNoDelayTypoEnabled"_ .



*D. Related issues*
This is related to a previous post of mine: http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html
Doing quick synchronized sends showed a 39ms latency if the broker is running in Linux, and a 200ms latency if the broker is in Windows (by the way, if someone knows the bottom reason for this exact latency times, please tell me). Putting the _"wireFormat.tcpNoDelayTypoEnabled"_ to true in order to disable Nagle's algorithm had no effect (because ActiveMQ does not recognize it).

Very probably this is also related to issues https://issues.apache.org/activemq/browse/AMQ-1143 and https://issues.apache.org/activemq/browse/AMQ-1137 (in this one probably Helmutt tried to set the wireFormat.tcpNoDelayTypoEnabled without success because of this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (AMQ-1156) option "wireFormat.tcpNoDelayEnabled=true" is ignored

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies reassigned AMQ-1156:
-------------------------------

    Assignee: Rob Davies

> option "wireFormat.tcpNoDelayEnabled=true" is ignored
> -----------------------------------------------------
>
>                 Key: AMQ-1156
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1156
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Documentation, Test Cases, Transport
>    Affects Versions: 4.0, 4.1.0, 5.0.0
>         Environment: Any.
>            Reporter: David Martín Clavo
>            Assignee: Rob Davies
>
> *A. Description*
> Setting the wireFormat.tcpNoDelayEnabled flag to true in connection uri's (for example _"tcp://localhost:61616?wireFormat.tcpNoDelayEnabled"_) has no effect:
> The sockets created in ActiveMQ do not have the TcpNoDelay flag set to true.
> You can verify this for example in the following way: insert the line _System.err.println(sock.getTcpNoDelay());_ at the end of the method
> _org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket_.
> Also you can try my test at http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html which makes latency appear if Nagle's algorithm is not disabled.
> This affects versions 4.0, 4.1.0, and 4.2.0 latest snapshot. I guess 4.0.2 is affected too.
> *B. Reason*
> After looking at the source code to understand how the options are set, i saw that in the method org.apache.activemq.transport.tcp.TcpTransportFactory.compositeConfigure the following line appears:
> _Map socketOptions = IntrospectionSupport.extractProperties(options, "socket.")_; 
> and also that the method to set the TcpNoDelay option in class _org.apache.activemq.transport.tcp.TcpTransport_ is called _setTcpNoDelay_ and not _setTcpNoDelayEnabled_
> Therefore, I tried to write _"socket.tcpNoDelay=true"_ instead of _"wireFormat.tcpNoDelayEnabled=true"_ and it *worked!* This is a *workaround*.
> But, _"wireFormat.tcpNoDelayEnabled"_ option is not refused (as _"wireFormat.tcpNoDelayTypoEnabled"_ would be). The option _"tcpNoDelay=true"_ is not refused either, but DOES NOT work either.
> *C. Fix*
> So, please, for the sake of the poor soul who's next going to try to disable Nagle's algorithm without noticing any effect, and will start looking for the problem elsewhere (and for the sake of consistency also):
> -Either change the documentation (http://www.activemq.org/site/tcp-transport-reference.html and http://www.activemq.org/site/configuring-wire-formats.html) to say that one should use the _socket.tcpNoDelay_ option, or
> -Change the code to obey the documentation (and make it refuse old options like just _"tcpNoDelay"_ who have no effect).
> Personally I would change the documentation ASAP so that people know about the _"socket.tcpNoDelay=true"_ workaround until next version, and then change the code to recognize the _"wireFormat.tcpNoDelayTypoEnabled"_ option. I'd like to point out that the own ActiveMQ test cases use _"wireFormat.tcpNoDelayTypoEnabled"_ .
> *D. Related issues*
> This is related to a previous post of mine: http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html
> Doing quick synchronized sends showed a 39ms latency if the broker is running in Linux, and a 200ms latency if the broker is in Windows (by the way, if someone knows the bottom reason for this exact latency times, please tell me). Putting the _"wireFormat.tcpNoDelayTypoEnabled"_ to true in order to disable Nagle's algorithm had no effect (because ActiveMQ does not recognize it).
> Very probably this is also related to issues https://issues.apache.org/activemq/browse/AMQ-1143 and https://issues.apache.org/activemq/browse/AMQ-1137 (in this one probably Helmutt tried to set the wireFormat.tcpNoDelayTypoEnabled without success because of this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (AMQ-1156) option "wireFormat.tcpNoDelayEnabled=true" is ignored

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies reassigned AMQ-1156:
-------------------------------

    Assignee: Hiram Chirino  (was: Rob Davies)

> option "wireFormat.tcpNoDelayEnabled=true" is ignored
> -----------------------------------------------------
>
>                 Key: AMQ-1156
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1156
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Documentation, Test Cases, Transport
>    Affects Versions: 4.0, 4.1.0, 5.0.0
>         Environment: Any.
>            Reporter: David Martín Clavo
>            Assignee: Hiram Chirino
>             Fix For: 5.0.0
>
>
> *A. Description*
> Setting the wireFormat.tcpNoDelayEnabled flag to true in connection uri's (for example _"tcp://localhost:61616?wireFormat.tcpNoDelayEnabled"_) has no effect:
> The sockets created in ActiveMQ do not have the TcpNoDelay flag set to true.
> You can verify this for example in the following way: insert the line _System.err.println(sock.getTcpNoDelay());_ at the end of the method
> _org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket_.
> Also you can try my test at http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html which makes latency appear if Nagle's algorithm is not disabled.
> This affects versions 4.0, 4.1.0, and 4.2.0 latest snapshot. I guess 4.0.2 is affected too.
> *B. Reason*
> After looking at the source code to understand how the options are set, i saw that in the method org.apache.activemq.transport.tcp.TcpTransportFactory.compositeConfigure the following line appears:
> _Map socketOptions = IntrospectionSupport.extractProperties(options, "socket.")_; 
> and also that the method to set the TcpNoDelay option in class _org.apache.activemq.transport.tcp.TcpTransport_ is called _setTcpNoDelay_ and not _setTcpNoDelayEnabled_
> Therefore, I tried to write _"socket.tcpNoDelay=true"_ instead of _"wireFormat.tcpNoDelayEnabled=true"_ and it *worked!* This is a *workaround*.
> But, _"wireFormat.tcpNoDelayEnabled"_ option is not refused (as _"wireFormat.tcpNoDelayTypoEnabled"_ would be). The option _"tcpNoDelay=true"_ is not refused either, but DOES NOT work either.
> *C. Fix*
> So, please, for the sake of the poor soul who's next going to try to disable Nagle's algorithm without noticing any effect, and will start looking for the problem elsewhere (and for the sake of consistency also):
> -Either change the documentation (http://www.activemq.org/site/tcp-transport-reference.html and http://www.activemq.org/site/configuring-wire-formats.html) to say that one should use the _socket.tcpNoDelay_ option, or
> -Change the code to obey the documentation (and make it refuse old options like just _"tcpNoDelay"_ who have no effect).
> Personally I would change the documentation ASAP so that people know about the _"socket.tcpNoDelay=true"_ workaround until next version, and then change the code to recognize the _"wireFormat.tcpNoDelayTypoEnabled"_ option. I'd like to point out that the own ActiveMQ test cases use _"wireFormat.tcpNoDelayTypoEnabled"_ .
> *D. Related issues*
> This is related to a previous post of mine: http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html
> Doing quick synchronized sends showed a 39ms latency if the broker is running in Linux, and a 200ms latency if the broker is in Windows (by the way, if someone knows the bottom reason for this exact latency times, please tell me). Putting the _"wireFormat.tcpNoDelayTypoEnabled"_ to true in order to disable Nagle's algorithm had no effect (because ActiveMQ does not recognize it).
> Very probably this is also related to issues https://issues.apache.org/activemq/browse/AMQ-1143 and https://issues.apache.org/activemq/browse/AMQ-1137 (in this one probably Helmutt tried to set the wireFormat.tcpNoDelayTypoEnabled without success because of this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AMQ-1156) option "wireFormat.tcpNoDelayEnabled=true" is ignored

Posted by "Helmut Janknecht (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38800 ] 

Helmut Janknecht commented on AMQ-1156:
---------------------------------------

On Linux 2.6.16 or 2.6.17 perhaps setting this {{sysctl net.ipv4.tcp_abc=0}} may help as described in https://issues.apache.org/activemq/browse/AMQ-1137#action_38799.

> option "wireFormat.tcpNoDelayEnabled=true" is ignored
> -----------------------------------------------------
>
>                 Key: AMQ-1156
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1156
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Documentation, Test Cases, Transport
>    Affects Versions: 4.0, 4.1.0, 4.2.0
>         Environment: Any.
>            Reporter: David Martín Clavo
>
> *A. Description*
> Setting the wireFormat.tcpNoDelayEnabled flag to true in connection uri's (for example _"tcp://localhost:61616?wireFormat.tcpNoDelayEnabled"_) has no effect:
> The sockets created in ActiveMQ do not have the TcpNoDelay flag set to true.
> You can verify this for example in the following way: insert the line _System.err.println(sock.getTcpNoDelay());_ at the end of the method
> _org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket_.
> Also you can try my test at http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html which makes latency appear if Nagle's algorithm is not disabled.
> This affects versions 4.0, 4.1.0, and 4.2.0 latest snapshot. I guess 4.0.2 is affected too.
> *B. Reason*
> After looking at the source code to understand how the options are set, i saw that in the method org.apache.activemq.transport.tcp.TcpTransportFactory.compositeConfigure the following line appears:
> _Map socketOptions = IntrospectionSupport.extractProperties(options, "socket.")_; 
> and also that the method to set the TcpNoDelay option in class _org.apache.activemq.transport.tcp.TcpTransport_ is called _setTcpNoDelay_ and not _setTcpNoDelayEnabled_
> Therefore, I tried to write _"socket.tcpNoDelay=true"_ instead of _"wireFormat.tcpNoDelayEnabled=true"_ and it *worked!* This is a *workaround*.
> But, _"wireFormat.tcpNoDelayEnabled"_ option is not refused (as _"wireFormat.tcpNoDelayTypoEnabled"_ would be). The option _"tcpNoDelay=true"_ is not refused either, but DOES NOT work either.
> *C. Fix*
> So, please, for the sake of the poor soul who's next going to try to disable Nagle's algorithm without noticing any effect, and will start looking for the problem elsewhere (and for the sake of consistency also):
> -Either change the documentation (http://www.activemq.org/site/tcp-transport-reference.html and http://www.activemq.org/site/configuring-wire-formats.html) to say that one should use the _socket.tcpNoDelay_ option, or
> -Change the code to obey the documentation (and make it refuse old options like just _"tcpNoDelay"_ who have no effect).
> Personally I would change the documentation ASAP so that people know about the _"socket.tcpNoDelay=true"_ workaround until next version, and then change the code to recognize the _"wireFormat.tcpNoDelayTypoEnabled"_ option. I'd like to point out that the own ActiveMQ test cases use _"wireFormat.tcpNoDelayTypoEnabled"_ .
> *D. Related issues*
> This is related to a previous post of mine: http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html
> Doing quick synchronized sends showed a 39ms latency if the broker is running in Linux, and a 200ms latency if the broker is in Windows (by the way, if someone knows the bottom reason for this exact latency times, please tell me). Putting the _"wireFormat.tcpNoDelayTypoEnabled"_ to true in order to disable Nagle's algorithm had no effect (because ActiveMQ does not recognize it).
> Very probably this is also related to issues https://issues.apache.org/activemq/browse/AMQ-1143 and https://issues.apache.org/activemq/browse/AMQ-1137 (in this one probably Helmutt tried to set the wireFormat.tcpNoDelayTypoEnabled without success because of this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AMQ-1156) option "wireFormat.tcpNoDelayEnabled=true" is ignored

Posted by "Hiram Chirino (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40078 ] 

Hiram Chirino commented on AMQ-1156:
------------------------------------

Great comments guys.  I just committed a fix to the activemq trunk.

We now actually update the tcpNoDelay setting on the socket once the wireformat options are negociated.  This allows
the client to control if his socket and the server's socket use the option.  By default tcpNoDelay is enabled.
the client should use a URL like tcp://localhost:61616?wireFormat.tcpNoDelayEnabled=false to disable tcpNoDelay on
 both the client and the server socket.

If you guys get a chance could you confirm that this fixes the issue?? thanks.  Hiram

> option "wireFormat.tcpNoDelayEnabled=true" is ignored
> -----------------------------------------------------
>
>                 Key: AMQ-1156
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1156
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Documentation, Test Cases, Transport
>    Affects Versions: 4.0, 4.1.0, 5.0.0
>         Environment: Any.
>            Reporter: David Martín Clavo
>            Assignee: Hiram Chirino
>             Fix For: 5.0.0
>
>
> *A. Description*
> Setting the wireFormat.tcpNoDelayEnabled flag to true in connection uri's (for example _"tcp://localhost:61616?wireFormat.tcpNoDelayEnabled"_) has no effect:
> The sockets created in ActiveMQ do not have the TcpNoDelay flag set to true.
> You can verify this for example in the following way: insert the line _System.err.println(sock.getTcpNoDelay());_ at the end of the method
> _org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket_.
> Also you can try my test at http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html which makes latency appear if Nagle's algorithm is not disabled.
> This affects versions 4.0, 4.1.0, and 4.2.0 latest snapshot. I guess 4.0.2 is affected too.
> *B. Reason*
> After looking at the source code to understand how the options are set, i saw that in the method org.apache.activemq.transport.tcp.TcpTransportFactory.compositeConfigure the following line appears:
> _Map socketOptions = IntrospectionSupport.extractProperties(options, "socket.")_; 
> and also that the method to set the TcpNoDelay option in class _org.apache.activemq.transport.tcp.TcpTransport_ is called _setTcpNoDelay_ and not _setTcpNoDelayEnabled_
> Therefore, I tried to write _"socket.tcpNoDelay=true"_ instead of _"wireFormat.tcpNoDelayEnabled=true"_ and it *worked!* This is a *workaround*.
> But, _"wireFormat.tcpNoDelayEnabled"_ option is not refused (as _"wireFormat.tcpNoDelayTypoEnabled"_ would be). The option _"tcpNoDelay=true"_ is not refused either, but DOES NOT work either.
> *C. Fix*
> So, please, for the sake of the poor soul who's next going to try to disable Nagle's algorithm without noticing any effect, and will start looking for the problem elsewhere (and for the sake of consistency also):
> -Either change the documentation (http://www.activemq.org/site/tcp-transport-reference.html and http://www.activemq.org/site/configuring-wire-formats.html) to say that one should use the _socket.tcpNoDelay_ option, or
> -Change the code to obey the documentation (and make it refuse old options like just _"tcpNoDelay"_ who have no effect).
> Personally I would change the documentation ASAP so that people know about the _"socket.tcpNoDelay=true"_ workaround until next version, and then change the code to recognize the _"wireFormat.tcpNoDelayTypoEnabled"_ option. I'd like to point out that the own ActiveMQ test cases use _"wireFormat.tcpNoDelayTypoEnabled"_ .
> *D. Related issues*
> This is related to a previous post of mine: http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html
> Doing quick synchronized sends showed a 39ms latency if the broker is running in Linux, and a 200ms latency if the broker is in Windows (by the way, if someone knows the bottom reason for this exact latency times, please tell me). Putting the _"wireFormat.tcpNoDelayTypoEnabled"_ to true in order to disable Nagle's algorithm had no effect (because ActiveMQ does not recognize it).
> Very probably this is also related to issues https://issues.apache.org/activemq/browse/AMQ-1143 and https://issues.apache.org/activemq/browse/AMQ-1137 (in this one probably Helmutt tried to set the wireFormat.tcpNoDelayTypoEnabled without success because of this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (AMQ-1156) option "wireFormat.tcpNoDelayEnabled=true" is ignored

Posted by "Hiram Chirino (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hiram Chirino resolved AMQ-1156.
--------------------------------

    Resolution: Fixed

Fixed in 5.0

> option "wireFormat.tcpNoDelayEnabled=true" is ignored
> -----------------------------------------------------
>
>                 Key: AMQ-1156
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1156
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Documentation, Test Cases, Transport
>    Affects Versions: 4.0, 4.1.0, 5.0.0
>         Environment: Any.
>            Reporter: David Martín Clavo
>            Assignee: Hiram Chirino
>             Fix For: 5.0.0
>
>
> *A. Description*
> Setting the wireFormat.tcpNoDelayEnabled flag to true in connection uri's (for example _"tcp://localhost:61616?wireFormat.tcpNoDelayEnabled"_) has no effect:
> The sockets created in ActiveMQ do not have the TcpNoDelay flag set to true.
> You can verify this for example in the following way: insert the line _System.err.println(sock.getTcpNoDelay());_ at the end of the method
> _org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket_.
> Also you can try my test at http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html which makes latency appear if Nagle's algorithm is not disabled.
> This affects versions 4.0, 4.1.0, and 4.2.0 latest snapshot. I guess 4.0.2 is affected too.
> *B. Reason*
> After looking at the source code to understand how the options are set, i saw that in the method org.apache.activemq.transport.tcp.TcpTransportFactory.compositeConfigure the following line appears:
> _Map socketOptions = IntrospectionSupport.extractProperties(options, "socket.")_; 
> and also that the method to set the TcpNoDelay option in class _org.apache.activemq.transport.tcp.TcpTransport_ is called _setTcpNoDelay_ and not _setTcpNoDelayEnabled_
> Therefore, I tried to write _"socket.tcpNoDelay=true"_ instead of _"wireFormat.tcpNoDelayEnabled=true"_ and it *worked!* This is a *workaround*.
> But, _"wireFormat.tcpNoDelayEnabled"_ option is not refused (as _"wireFormat.tcpNoDelayTypoEnabled"_ would be). The option _"tcpNoDelay=true"_ is not refused either, but DOES NOT work either.
> *C. Fix*
> So, please, for the sake of the poor soul who's next going to try to disable Nagle's algorithm without noticing any effect, and will start looking for the problem elsewhere (and for the sake of consistency also):
> -Either change the documentation (http://www.activemq.org/site/tcp-transport-reference.html and http://www.activemq.org/site/configuring-wire-formats.html) to say that one should use the _socket.tcpNoDelay_ option, or
> -Change the code to obey the documentation (and make it refuse old options like just _"tcpNoDelay"_ who have no effect).
> Personally I would change the documentation ASAP so that people know about the _"socket.tcpNoDelay=true"_ workaround until next version, and then change the code to recognize the _"wireFormat.tcpNoDelayTypoEnabled"_ option. I'd like to point out that the own ActiveMQ test cases use _"wireFormat.tcpNoDelayTypoEnabled"_ .
> *D. Related issues*
> This is related to a previous post of mine: http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html
> Doing quick synchronized sends showed a 39ms latency if the broker is running in Linux, and a 200ms latency if the broker is in Windows (by the way, if someone knows the bottom reason for this exact latency times, please tell me). Putting the _"wireFormat.tcpNoDelayTypoEnabled"_ to true in order to disable Nagle's algorithm had no effect (because ActiveMQ does not recognize it).
> Very probably this is also related to issues https://issues.apache.org/activemq/browse/AMQ-1143 and https://issues.apache.org/activemq/browse/AMQ-1137 (in this one probably Helmutt tried to set the wireFormat.tcpNoDelayTypoEnabled without success because of this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AMQ-1156) option "wireFormat.tcpNoDelayEnabled=true" is ignored

Posted by "James Strachan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James Strachan updated AMQ-1156:
--------------------------------

    Fix Version/s:     (was: 5.2.0)
                   5.0.0

> option "wireFormat.tcpNoDelayEnabled=true" is ignored
> -----------------------------------------------------
>
>                 Key: AMQ-1156
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1156
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Documentation, Test Cases, Transport
>    Affects Versions: 4.0, 4.1.0, 5.0.0
>         Environment: Any.
>            Reporter: David Martín Clavo
>            Assignee: Rob Davies
>             Fix For: 5.0.0
>
>
> *A. Description*
> Setting the wireFormat.tcpNoDelayEnabled flag to true in connection uri's (for example _"tcp://localhost:61616?wireFormat.tcpNoDelayEnabled"_) has no effect:
> The sockets created in ActiveMQ do not have the TcpNoDelay flag set to true.
> You can verify this for example in the following way: insert the line _System.err.println(sock.getTcpNoDelay());_ at the end of the method
> _org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket_.
> Also you can try my test at http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html which makes latency appear if Nagle's algorithm is not disabled.
> This affects versions 4.0, 4.1.0, and 4.2.0 latest snapshot. I guess 4.0.2 is affected too.
> *B. Reason*
> After looking at the source code to understand how the options are set, i saw that in the method org.apache.activemq.transport.tcp.TcpTransportFactory.compositeConfigure the following line appears:
> _Map socketOptions = IntrospectionSupport.extractProperties(options, "socket.")_; 
> and also that the method to set the TcpNoDelay option in class _org.apache.activemq.transport.tcp.TcpTransport_ is called _setTcpNoDelay_ and not _setTcpNoDelayEnabled_
> Therefore, I tried to write _"socket.tcpNoDelay=true"_ instead of _"wireFormat.tcpNoDelayEnabled=true"_ and it *worked!* This is a *workaround*.
> But, _"wireFormat.tcpNoDelayEnabled"_ option is not refused (as _"wireFormat.tcpNoDelayTypoEnabled"_ would be). The option _"tcpNoDelay=true"_ is not refused either, but DOES NOT work either.
> *C. Fix*
> So, please, for the sake of the poor soul who's next going to try to disable Nagle's algorithm without noticing any effect, and will start looking for the problem elsewhere (and for the sake of consistency also):
> -Either change the documentation (http://www.activemq.org/site/tcp-transport-reference.html and http://www.activemq.org/site/configuring-wire-formats.html) to say that one should use the _socket.tcpNoDelay_ option, or
> -Change the code to obey the documentation (and make it refuse old options like just _"tcpNoDelay"_ who have no effect).
> Personally I would change the documentation ASAP so that people know about the _"socket.tcpNoDelay=true"_ workaround until next version, and then change the code to recognize the _"wireFormat.tcpNoDelayTypoEnabled"_ option. I'd like to point out that the own ActiveMQ test cases use _"wireFormat.tcpNoDelayTypoEnabled"_ .
> *D. Related issues*
> This is related to a previous post of mine: http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html
> Doing quick synchronized sends showed a 39ms latency if the broker is running in Linux, and a 200ms latency if the broker is in Windows (by the way, if someone knows the bottom reason for this exact latency times, please tell me). Putting the _"wireFormat.tcpNoDelayTypoEnabled"_ to true in order to disable Nagle's algorithm had no effect (because ActiveMQ does not recognize it).
> Very probably this is also related to issues https://issues.apache.org/activemq/browse/AMQ-1143 and https://issues.apache.org/activemq/browse/AMQ-1137 (in this one probably Helmutt tried to set the wireFormat.tcpNoDelayTypoEnabled without success because of this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AMQ-1156) option "wireFormat.tcpNoDelayEnabled=true" is ignored

Posted by "Hiram Chirino (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40079 ] 

Hiram Chirino commented on AMQ-1156:
------------------------------------

Fix was in revision 573080

> option "wireFormat.tcpNoDelayEnabled=true" is ignored
> -----------------------------------------------------
>
>                 Key: AMQ-1156
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1156
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Documentation, Test Cases, Transport
>    Affects Versions: 4.0, 4.1.0, 5.0.0
>         Environment: Any.
>            Reporter: David Martín Clavo
>            Assignee: Hiram Chirino
>             Fix For: 5.0.0
>
>
> *A. Description*
> Setting the wireFormat.tcpNoDelayEnabled flag to true in connection uri's (for example _"tcp://localhost:61616?wireFormat.tcpNoDelayEnabled"_) has no effect:
> The sockets created in ActiveMQ do not have the TcpNoDelay flag set to true.
> You can verify this for example in the following way: insert the line _System.err.println(sock.getTcpNoDelay());_ at the end of the method
> _org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket_.
> Also you can try my test at http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html which makes latency appear if Nagle's algorithm is not disabled.
> This affects versions 4.0, 4.1.0, and 4.2.0 latest snapshot. I guess 4.0.2 is affected too.
> *B. Reason*
> After looking at the source code to understand how the options are set, i saw that in the method org.apache.activemq.transport.tcp.TcpTransportFactory.compositeConfigure the following line appears:
> _Map socketOptions = IntrospectionSupport.extractProperties(options, "socket.")_; 
> and also that the method to set the TcpNoDelay option in class _org.apache.activemq.transport.tcp.TcpTransport_ is called _setTcpNoDelay_ and not _setTcpNoDelayEnabled_
> Therefore, I tried to write _"socket.tcpNoDelay=true"_ instead of _"wireFormat.tcpNoDelayEnabled=true"_ and it *worked!* This is a *workaround*.
> But, _"wireFormat.tcpNoDelayEnabled"_ option is not refused (as _"wireFormat.tcpNoDelayTypoEnabled"_ would be). The option _"tcpNoDelay=true"_ is not refused either, but DOES NOT work either.
> *C. Fix*
> So, please, for the sake of the poor soul who's next going to try to disable Nagle's algorithm without noticing any effect, and will start looking for the problem elsewhere (and for the sake of consistency also):
> -Either change the documentation (http://www.activemq.org/site/tcp-transport-reference.html and http://www.activemq.org/site/configuring-wire-formats.html) to say that one should use the _socket.tcpNoDelay_ option, or
> -Change the code to obey the documentation (and make it refuse old options like just _"tcpNoDelay"_ who have no effect).
> Personally I would change the documentation ASAP so that people know about the _"socket.tcpNoDelay=true"_ workaround until next version, and then change the code to recognize the _"wireFormat.tcpNoDelayTypoEnabled"_ option. I'd like to point out that the own ActiveMQ test cases use _"wireFormat.tcpNoDelayTypoEnabled"_ .
> *D. Related issues*
> This is related to a previous post of mine: http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html
> Doing quick synchronized sends showed a 39ms latency if the broker is running in Linux, and a 200ms latency if the broker is in Windows (by the way, if someone knows the bottom reason for this exact latency times, please tell me). Putting the _"wireFormat.tcpNoDelayTypoEnabled"_ to true in order to disable Nagle's algorithm had no effect (because ActiveMQ does not recognize it).
> Very probably this is also related to issues https://issues.apache.org/activemq/browse/AMQ-1143 and https://issues.apache.org/activemq/browse/AMQ-1137 (in this one probably Helmutt tried to set the wireFormat.tcpNoDelayTypoEnabled without success because of this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AMQ-1156) option "wireFormat.tcpNoDelayEnabled=true" is ignored

Posted by "David Martín Clavo (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38819 ] 

David Martín Clavo commented on AMQ-1156:
-----------------------------------------

Indeed Helmut. When you set socket.tcpNoDelay=true on a client (producer or consumer) URI, the client's sockets have TCP_NODELAY properly set to true.
But when you try to do the same in activemq.xml for the broker's sockets, it doesn't work. You have to hard code it.
I found that setting TCP_NODELAY on the producer's sockets is the most important, but setting it on the broker's and consumer's sockets also eliminates many timeouts.

Thank you very much for the warning on tcp_abc. I am not using any of those kernels but it is good to know :)

> option "wireFormat.tcpNoDelayEnabled=true" is ignored
> -----------------------------------------------------
>
>                 Key: AMQ-1156
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1156
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Documentation, Test Cases, Transport
>    Affects Versions: 4.0, 4.1.0, 4.2.0
>         Environment: Any.
>            Reporter: David Martín Clavo
>
> *A. Description*
> Setting the wireFormat.tcpNoDelayEnabled flag to true in connection uri's (for example _"tcp://localhost:61616?wireFormat.tcpNoDelayEnabled"_) has no effect:
> The sockets created in ActiveMQ do not have the TcpNoDelay flag set to true.
> You can verify this for example in the following way: insert the line _System.err.println(sock.getTcpNoDelay());_ at the end of the method
> _org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket_.
> Also you can try my test at http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html which makes latency appear if Nagle's algorithm is not disabled.
> This affects versions 4.0, 4.1.0, and 4.2.0 latest snapshot. I guess 4.0.2 is affected too.
> *B. Reason*
> After looking at the source code to understand how the options are set, i saw that in the method org.apache.activemq.transport.tcp.TcpTransportFactory.compositeConfigure the following line appears:
> _Map socketOptions = IntrospectionSupport.extractProperties(options, "socket.")_; 
> and also that the method to set the TcpNoDelay option in class _org.apache.activemq.transport.tcp.TcpTransport_ is called _setTcpNoDelay_ and not _setTcpNoDelayEnabled_
> Therefore, I tried to write _"socket.tcpNoDelay=true"_ instead of _"wireFormat.tcpNoDelayEnabled=true"_ and it *worked!* This is a *workaround*.
> But, _"wireFormat.tcpNoDelayEnabled"_ option is not refused (as _"wireFormat.tcpNoDelayTypoEnabled"_ would be). The option _"tcpNoDelay=true"_ is not refused either, but DOES NOT work either.
> *C. Fix*
> So, please, for the sake of the poor soul who's next going to try to disable Nagle's algorithm without noticing any effect, and will start looking for the problem elsewhere (and for the sake of consistency also):
> -Either change the documentation (http://www.activemq.org/site/tcp-transport-reference.html and http://www.activemq.org/site/configuring-wire-formats.html) to say that one should use the _socket.tcpNoDelay_ option, or
> -Change the code to obey the documentation (and make it refuse old options like just _"tcpNoDelay"_ who have no effect).
> Personally I would change the documentation ASAP so that people know about the _"socket.tcpNoDelay=true"_ workaround until next version, and then change the code to recognize the _"wireFormat.tcpNoDelayTypoEnabled"_ option. I'd like to point out that the own ActiveMQ test cases use _"wireFormat.tcpNoDelayTypoEnabled"_ .
> *D. Related issues*
> This is related to a previous post of mine: http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html
> Doing quick synchronized sends showed a 39ms latency if the broker is running in Linux, and a 200ms latency if the broker is in Windows (by the way, if someone knows the bottom reason for this exact latency times, please tell me). Putting the _"wireFormat.tcpNoDelayTypoEnabled"_ to true in order to disable Nagle's algorithm had no effect (because ActiveMQ does not recognize it).
> Very probably this is also related to issues https://issues.apache.org/activemq/browse/AMQ-1143 and https://issues.apache.org/activemq/browse/AMQ-1137 (in this one probably Helmutt tried to set the wireFormat.tcpNoDelayTypoEnabled without success because of this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AMQ-1156) option "wireFormat.tcpNoDelayEnabled=true" is ignored

Posted by "Helmut Janknecht (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38797 ] 

Helmut Janknecht commented on AMQ-1156:
---------------------------------------

This TCP_NODELAY caused also my problem described in AMQ-1137.
Regardless of which of these options ("socket.tcpNoDelay=true;wireFormat.tcpNoDelayEnabled=true;tcpNoDelay=true") I set transactional messaging is slow under Linux.

I patched  the {{org.apache.activemq.transport.tcp.TcpTransport}} class and disbled TCP_NODELAY hard-coded like this:

{code:title=TcpTransport.java|borderStyle=solid}
  protected void initialiseSocket(Socket sock) throws SocketException {
    if (socketOptions != null) {
      IntrospectionSupport.setProperties(socket, socketOptions);
    }

    socket.setTcpNoDelay(true);  // disable TCP_NODELAY anyway
    socket.setReceiveBufferSize(socketBufferSize);
    socket.setSendBufferSize(socketBufferSize);

    sock.setTcpNoDelay(socket.getTcpNoDelay()); // disable TCP_NODELAY also for sock

    try {
      sock.setReceiveBufferSize(socketBufferSize);
      sock.setSendBufferSize(socketBufferSize);

    } catch (SocketException se) {
      log.warn("Cannot set socket buffer size = " + socketBufferSize);
      log.debug("Cannot set socket buffer size. Reason: " + se, se);
    }
    sock.setSoTimeout(soTimeout);

    if (keepAlive != null) {
      sock.setKeepAlive(keepAlive.booleanValue());
    }

    //    if (tcpNoDelay != null) {
    //      sock.setTcpNoDelay(tcpNoDelay.booleanValue());
    //    }

    if (!socketInitialized) {
      //      log.info("Initialized ACX version $Date: 2007/02/13 16:21 $ of TcpTransport with: sock.getTcpNoDelay=" + sock.getTcpNoDelay() + ", sock.getReceiveBufferSize=" + sock.getReceiveBufferSize() + ", sock.getSendBufferSize=" + sock.getSendBufferSize() + ", socket.getTcpNoDelay=" + socket.getTcpNoDelay()
      //          + ", socket.getReceiveBufferSize=" + socket.getReceiveBufferSize() + ", socket.getSendBufferSize=" + socket.getSendBufferSize());
      log.info("Initialized ACX patch revision A of TcpTransport with: tcpNoDelay=" + socket.getTcpNoDelay() + " and buffer sizes=" + socket.getReceiveBufferSize());
      socketInitialized = true;
    }
  }
{code}

> option "wireFormat.tcpNoDelayEnabled=true" is ignored
> -----------------------------------------------------
>
>                 Key: AMQ-1156
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1156
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Documentation, Test Cases, Transport
>    Affects Versions: 4.0, 4.1.0, 4.2.0
>         Environment: Any.
>            Reporter: David Martín Clavo
>
> *A. Description*
> Setting the wireFormat.tcpNoDelayEnabled flag to true in connection uri's (for example _"tcp://localhost:61616?wireFormat.tcpNoDelayEnabled"_) has no effect:
> The sockets created in ActiveMQ do not have the TcpNoDelay flag set to true.
> You can verify this for example in the following way: insert the line _System.err.println(sock.getTcpNoDelay());_ at the end of the method
> _org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket_.
> Also you can try my test at http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html which makes latency appear if Nagle's algorithm is not disabled.
> This affects versions 4.0, 4.1.0, and 4.2.0 latest snapshot. I guess 4.0.2 is affected too.
> *B. Reason*
> After looking at the source code to understand how the options are set, i saw that in the method org.apache.activemq.transport.tcp.TcpTransportFactory.compositeConfigure the following line appears:
> _Map socketOptions = IntrospectionSupport.extractProperties(options, "socket.")_; 
> and also that the method to set the TcpNoDelay option in class _org.apache.activemq.transport.tcp.TcpTransport_ is called _setTcpNoDelay_ and not _setTcpNoDelayEnabled_
> Therefore, I tried to write _"socket.tcpNoDelay=true"_ instead of _"wireFormat.tcpNoDelayEnabled=true"_ and it *worked!* This is a *workaround*.
> But, _"wireFormat.tcpNoDelayEnabled"_ option is not refused (as _"wireFormat.tcpNoDelayTypoEnabled"_ would be). The option _"tcpNoDelay=true"_ is not refused either, but DOES NOT work either.
> *C. Fix*
> So, please, for the sake of the poor soul who's next going to try to disable Nagle's algorithm without noticing any effect, and will start looking for the problem elsewhere (and for the sake of consistency also):
> -Either change the documentation (http://www.activemq.org/site/tcp-transport-reference.html and http://www.activemq.org/site/configuring-wire-formats.html) to say that one should use the _socket.tcpNoDelay_ option, or
> -Change the code to obey the documentation (and make it refuse old options like just _"tcpNoDelay"_ who have no effect).
> Personally I would change the documentation ASAP so that people know about the _"socket.tcpNoDelay=true"_ workaround until next version, and then change the code to recognize the _"wireFormat.tcpNoDelayTypoEnabled"_ option. I'd like to point out that the own ActiveMQ test cases use _"wireFormat.tcpNoDelayTypoEnabled"_ .
> *D. Related issues*
> This is related to a previous post of mine: http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html
> Doing quick synchronized sends showed a 39ms latency if the broker is running in Linux, and a 200ms latency if the broker is in Windows (by the way, if someone knows the bottom reason for this exact latency times, please tell me). Putting the _"wireFormat.tcpNoDelayTypoEnabled"_ to true in order to disable Nagle's algorithm had no effect (because ActiveMQ does not recognize it).
> Very probably this is also related to issues https://issues.apache.org/activemq/browse/AMQ-1143 and https://issues.apache.org/activemq/browse/AMQ-1137 (in this one probably Helmutt tried to set the wireFormat.tcpNoDelayTypoEnabled without success because of this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AMQ-1156) option "wireFormat.tcpNoDelayEnabled=true" is ignored

Posted by "David Martín Clavo (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38560 ] 

David Martín Clavo commented on AMQ-1156:
-----------------------------------------

Some more findings...
It seems that even the socket.tcpNoDelay option does nothing to set TCP_NODELAY on broker sockets, when written in the activemq.xml file, like for example:

  <broker name="broker" useJmx="true" persistent="false" xmlns="http://activemq.org/config/1.0" deleteAllMessagesOnStartup="true">
  
    <transportConnectors>
      <transportConnector uri="tcp://localhost:61616?socket.tcpNoDelay=true;wireFormat.tcpNoDelayEnabled=true;tcpNoDelay=true"/>
    </transportConnectors>
    
  </broker>

None of the options I put has any effect on the broker's sockets, but they all are accepted by the options parser without throwing an exception.
In some scenarios some delayed ACK timeouts were still appearing because of the broker's sockets having TCP_NODELAY = false even if the client sockets have TCP_NODELAY = true.

So, if you really want to disable Nagle's Algorithm in ActiveMQ without exception (broker and clients), one should go to the org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket method and add the following line at the end of the method:

sock.setTcpNoDelay(true);

> option "wireFormat.tcpNoDelayEnabled=true" is ignored
> -----------------------------------------------------
>
>                 Key: AMQ-1156
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1156
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Documentation, Test Cases, Transport
>    Affects Versions: 4.0, 4.1.0, 4.2.0
>         Environment: Any.
>            Reporter: David Martín Clavo
>
> *A. Description*
> Setting the wireFormat.tcpNoDelayEnabled flag to true in connection uri's (for example _"tcp://localhost:61616?wireFormat.tcpNoDelayEnabled"_) has no effect:
> The sockets created in ActiveMQ do not have the TcpNoDelay flag set to true.
> You can verify this for example in the following way: insert the line _System.err.println(sock.getTcpNoDelay());_ at the end of the method
> _org.apache.activemq.transport.tcp.TcpTransport.initialiseSocket_.
> Also you can try my test at http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html which makes latency appear if Nagle's algorithm is not disabled.
> This affects versions 4.0, 4.1.0, and 4.2.0 latest snapshot. I guess 4.0.2 is affected too.
> *B. Reason*
> After looking at the source code to understand how the options are set, i saw that in the method org.apache.activemq.transport.tcp.TcpTransportFactory.compositeConfigure the following line appears:
> _Map socketOptions = IntrospectionSupport.extractProperties(options, "socket.")_; 
> and also that the method to set the TcpNoDelay option in class _org.apache.activemq.transport.tcp.TcpTransport_ is called _setTcpNoDelay_ and not _setTcpNoDelayEnabled_
> Therefore, I tried to write _"socket.tcpNoDelay=true"_ instead of _"wireFormat.tcpNoDelayEnabled=true"_ and it *worked!* This is a *workaround*.
> But, _"wireFormat.tcpNoDelayEnabled"_ option is not refused (as _"wireFormat.tcpNoDelayTypoEnabled"_ would be). The option _"tcpNoDelay=true"_ is not refused either, but DOES NOT work either.
> *C. Fix*
> So, please, for the sake of the poor soul who's next going to try to disable Nagle's algorithm without noticing any effect, and will start looking for the problem elsewhere (and for the sake of consistency also):
> -Either change the documentation (http://www.activemq.org/site/tcp-transport-reference.html and http://www.activemq.org/site/configuring-wire-formats.html) to say that one should use the _socket.tcpNoDelay_ option, or
> -Change the code to obey the documentation (and make it refuse old options like just _"tcpNoDelay"_ who have no effect).
> Personally I would change the documentation ASAP so that people know about the _"socket.tcpNoDelay=true"_ workaround until next version, and then change the code to recognize the _"wireFormat.tcpNoDelayTypoEnabled"_ option. I'd like to point out that the own ActiveMQ test cases use _"wireFormat.tcpNoDelayTypoEnabled"_ .
> *D. Related issues*
> This is related to a previous post of mine: http://www.nabble.com/High-latency-for-small-messages-problem-t3159901.html
> Doing quick synchronized sends showed a 39ms latency if the broker is running in Linux, and a 200ms latency if the broker is in Windows (by the way, if someone knows the bottom reason for this exact latency times, please tell me). Putting the _"wireFormat.tcpNoDelayTypoEnabled"_ to true in order to disable Nagle's algorithm had no effect (because ActiveMQ does not recognize it).
> Very probably this is also related to issues https://issues.apache.org/activemq/browse/AMQ-1143 and https://issues.apache.org/activemq/browse/AMQ-1137 (in this one probably Helmutt tried to set the wireFormat.tcpNoDelayTypoEnabled without success because of this).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.