Hi, I would like to get some feedback on an idea I have for an improvement to ActiveMQ.
Currently ActiveMQ programmatically sizes the receive and send socket buffer sizes for the TCP transport according to the transport connector option transport.SocketBufferSize. The default is 64K. On Linux, however, once an application explicitly sets the size of a socket's buffers (via a call to setsockopt) the automatic tuning (owing to prevailing conditions) of a socket's buffers sizes is disabled. Therefore I am proposing the inclusion of a Boolean flag on the transport connector to disable explicit socket buffer sizing by the broker. The default would be false for backward compatibility. When this flag is true the kernel parameters net.ipv4.tcp_rmem and net.ipv4.tcp_wmem would govern how each socket's buffers would be dynamically sized at run-time. Thoughts? I am happy to create a JIRA ticket for it and supply the relevant patch if the community approves. Thanks, Paul