From e00d795537664f2aabe03bb0e764dadc73f00df3 Mon Sep 17 00:00:00 2001 From: Arnaud Simon Date: Tue, 13 May 2008 15:46:23 +0000 Subject: QPID-1006: Don't use tcp-nodelay as default and set socket buffer size only when the corresponding property is set. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@655923 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpidity/transport/network/mina/MinaHandler.java | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'java/common/src') diff --git a/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java b/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java index 32b0d1ffd7..3021184842 100644 --- a/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java +++ b/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaHandler.java @@ -54,7 +54,7 @@ import org.apache.qpidity.transport.network.OutputHandler; //RA making this public until we sort out the package issues public class MinaHandler implements IoHandler { - private static final int DEFAULT_BUFFER_SIZE = 64 * 1024; + private static final int MAX_FRAME_SIZE = 64 * 1024 - 1; /** Default buffer size for pending messages reads */ private static final String DEFAULT_READ_BUFFER_LIMIT = "262144"; /** Default buffer size for pending messages writes */ @@ -206,10 +206,17 @@ public class MinaHandler implements IoHandler IoServiceConfig acceptorConfig = connector.getDefaultConfig(); acceptorConfig.setThreadModel(ThreadModel.MANUAL); SocketSessionConfig scfg = (SocketSessionConfig) acceptorConfig.getSessionConfig(); - scfg.setTcpNoDelay("true".equalsIgnoreCase(System.getProperty("amqj.tcpNoDelay", "true"))); - scfg.setSendBufferSize(Integer.getInteger("amqj.sendBufferSize", DEFAULT_BUFFER_SIZE)); - scfg.setReceiveBufferSize(Integer.getInteger("amqj.receiveBufferSize", DEFAULT_BUFFER_SIZE)); - + scfg.setTcpNoDelay(Boolean.getBoolean("amqj.tcpNoDelay")); + Integer sendBufferSize = Integer.getInteger("amqj.sendBufferSize"); + if (sendBufferSize != null && sendBufferSize > 0) + { + scfg.setSendBufferSize(sendBufferSize); + } + Integer receiveBufferSize = Integer.getInteger("amqj.receiveBufferSize"); + if (receiveBufferSize != null && receiveBufferSize > 0) + { + scfg.setReceiveBufferSize(receiveBufferSize); + } connector.setWorkerTimeout(0); ConnectFuture cf = connector.connect(address, handler); cf.join(); @@ -270,9 +277,7 @@ public class MinaHandler implements IoHandler { // XXX: hardcoded max-frame return new Connection - (new Disassembler(new OutputHandler(sender), - Math.min(DEFAULT_BUFFER_SIZE, Integer.getInteger("amqj.sendBufferSize", DEFAULT_BUFFER_SIZE)) - 1), - delegate); + (new Disassembler(new OutputHandler(sender), MAX_FRAME_SIZE), delegate); } public Receiver receiver(Connection conn) -- cgit v1.2.1