diff --git a/src/java/org/jivesoftware/multiplexer/ConnectionManager.java b/src/java/org/jivesoftware/multiplexer/ConnectionManager.java index a3e49e3..b8625b7 100644 --- a/src/java/org/jivesoftware/multiplexer/ConnectionManager.java +++ b/src/java/org/jivesoftware/multiplexer/ConnectionManager.java @@ -11,7 +11,9 @@ package org.jivesoftware.multiplexer; +import org.apache.mina.common.ByteBuffer; import org.apache.mina.common.ExecutorThreadModel; +import org.apache.mina.common.SimpleByteBufferAllocator; import org.apache.mina.filter.SSLFilter; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.transport.socket.nio.SocketAcceptor; @@ -249,6 +251,12 @@ } // Start process that checks health of socket connections SocketSendingTracker.getInstance().start(); + // Check if we need to configure MINA to use Direct or Heap Buffers + // Note: It has been reported that heap buffers are 50% faster than direct buffers + if (JiveGlobals.getBooleanProperty("xmpp.socket.directBuffer", false)) { + ByteBuffer.setUseDirectBuffers(false); + ByteBuffer.setAllocator(new SimpleByteBufferAllocator()); + } // Start the port listener for clients startClientListeners(localIPAddress); // Start the port listener for secured clients