diff --git a/src/main/com/mongodb/DBPort.java b/src/main/com/mongodb/DBPort.java index 29d3d0f855a..5167c9bcce4 100644 --- a/src/main/com/mongodb/DBPort.java +++ b/src/main/com/mongodb/DBPort.java @@ -223,7 +223,7 @@ void _open() throws IOException { _socket.setTcpNoDelay( ! USE_NAGLE ); _socket.setKeepAlive( _options.socketKeepAlive ); _socket.setSoTimeout( _options.socketTimeout ); - _in = new BufferedInputStream( _socket.getInputStream() ); + _in = new BufferedInputStream( _socket.getInputStream(), MongoConnectionPool.BUFFERSIZE ); _out = _socket.getOutputStream(); successfullyConnected = true; } diff --git a/src/main/com/mongodb/MongoConnectionPool.java b/src/main/com/mongodb/MongoConnectionPool.java index 44236da2bf5..93f1ae03e61 100644 --- a/src/main/com/mongodb/MongoConnectionPool.java +++ b/src/main/com/mongodb/MongoConnectionPool.java @@ -22,7 +22,16 @@ */ class MongoConnectionPool extends DBPortPool implements MongoConnectionPoolMXBean { + static final int BUFFERSIZE = Integer.valueOf(System.getProperty("mongodb.buffersize", "8192")); + MongoConnectionPool(ServerAddress addr, MongoOptions options) { super(addr, options); + Bytes.LOGGER.warning("ConnectionPool configured with "+BUFFERSIZE+" bytes, change with -Dmongodb.buffersize" ); + } + + @Override + public int getConfiguredBufferSize() { + return BUFFERSIZE; + } } diff --git a/src/main/com/mongodb/MongoConnectionPoolMXBean.java b/src/main/com/mongodb/MongoConnectionPoolMXBean.java index 6d4d5829a38..6498b920633 100644 --- a/src/main/com/mongodb/MongoConnectionPoolMXBean.java +++ b/src/main/com/mongodb/MongoConnectionPoolMXBean.java @@ -59,4 +59,9 @@ public interface MongoConnectionPoolMXBean { * @return the connection pool statistics */ ConnectionPoolStatisticsBean getStatistics(); + + /** + * returns the currently active buffer size for buffered input streams + */ + int getConfiguredBufferSize(); }