Package org.apache.tomcat.util.net

## Class SocketProperties

- java.lang.Object
- - org.apache.tomcat.util.net.SocketProperties

    public class SocketProperties
    extends Object

Properties that can be set in the <Connector> element in server.xml. All properties are prefixed with "socket." and are currently only working for the Nio connector

### Field Summary

Fields
`protected int` `appReadBufSize` The application read buffer size in bytes.
`protected int` `appWriteBufSize` The application write buffer size in bytes Default value is 8192
`protected int` `bufferPool` NioChannel pool size for the endpoint, this value is how many channels -1 means unlimited cached, 0 means no cache, -2 means bufferPoolSize will be used Default value is -2
`protected int` `bufferPoolSize` Buffer pool size in bytes to be cached -1 means unlimited, 0 means no cache Default value is based on the max memory reported by the JVM, if less than 1GB, then 0, else the value divided by 32.
`protected boolean` `directBuffer` Enable/disable direct buffers for the network buffers Default value is disabled
`protected boolean` `directSslBuffer` Enable/disable direct buffers for the network buffers for SSL Default value is disabled
`protected int` `eventCache` Enable/disable poller event cache, this bounded cache stores PollerEvent objects to reduce GC for the poller Default is 0 -1 is unlimited 0 is disabled >0 the max number of objects to keep in cache.
`protected Boolean` `ooBInline` OOBINLINE option.
`protected Integer` `performanceBandwidth` Performance preferences according to http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int) All three performance attributes must be set or the JVM defaults will be used.
`protected Integer` `performanceConnectionTime` Performance preferences according to http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int) All three performance attributes must be set or the JVM defaults will be used.
`protected Integer` `performanceLatency` Performance preferences according to http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int) All three performance attributes must be set or the JVM defaults will be used.
`protected int` `processorCache` Enable/disable socket processor cache, this bounded cache stores SocketProcessor objects to reduce GC Default is 0 -1 is unlimited 0 is disabled
`protected Integer` `rxBufSize` Socket receive buffer size in bytes (SO_RCVBUF).
`protected Boolean` `soKeepAlive` SO_KEEPALIVE option.
`protected Boolean` `soLingerOn` SO_LINGER option, paired with the `soLingerTime` value.
`protected Integer` `soLingerTime` SO_LINGER option, paired with the `soLingerOn` value.
`protected Boolean` `soReuseAddress` SO_REUSEADDR option.
`protected Integer` `soTimeout` SO_TIMEOUT option. default is 20000.
`protected Boolean` `tcpNoDelay` TCP_NO_DELAY option.
`protected long` `timeoutInterval` The minimum frequency of the timeout interval to avoid excess load from the poller during high traffic
`protected Integer` `txBufSize` Socket send buffer size in bytes (SO_SNDBUF).
`protected int` `unlockTimeout` Timeout in milliseconds for an unlock to take place.

### Constructor Summary

Constructors
`SocketProperties()`

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `getActualBufferPool​(int bufferOverhead)` Get the actual buffer pool size to use.
`int` `getAppReadBufSize()`
`int` `getAppWriteBufSize()`
`int` `getBufferPool()`
`int` `getBufferPoolSize()`
`boolean` `getDirectBuffer()`
`int` `getDirectBufferPool()`
`boolean` `getDirectSslBuffer()`
`int` `getEventCache()`
`boolean` `getOoBInline()`
`int` `getPerformanceBandwidth()`
`int` `getPerformanceConnectionTime()`
`int` `getPerformanceLatency()`
`int` `getProcessorCache()`
`int` `getRxBufSize()`
`boolean` `getSoKeepAlive()`
`boolean` `getSoLingerOn()`
`int` `getSoLingerTime()`
`boolean` `getSoReuseAddress()`
`int` `getSoTimeout()`
`boolean` `getTcpNoDelay()`
`long` `getTimeoutInterval()`
`int` `getTxBufSize()`
`int` `getUnlockTimeout()`
`void` `setAppReadBufSize​(int appReadBufSize)`
`void` `setAppWriteBufSize​(int appWriteBufSize)`
`void` `setBufferPool​(int bufferPool)`
`void` `setBufferPoolSize​(int bufferPoolSize)`
`void` `setDirectBuffer​(boolean directBuffer)`
`void` `setDirectBufferPool​(int directBufferPool)`
`void` `setDirectSslBuffer​(boolean directSslBuffer)`
`void` `setEventCache​(int eventCache)`
`void` `setOoBInline​(boolean ooBInline)`
`void` `setPerformanceBandwidth​(int performanceBandwidth)`
`void` `setPerformanceConnectionTime​(int performanceConnectionTime)`
`void` `setPerformanceLatency​(int performanceLatency)`
`void` `setProcessorCache​(int processorCache)`
`void` `setProperties​(ServerSocket socket)`
`void` `setProperties​(Socket socket)`
`void` `setProperties​(AsynchronousServerSocketChannel socket)`
`void` `setProperties​(AsynchronousSocketChannel socket)`
`void` `setRxBufSize​(int rxBufSize)`
`void` `setSoKeepAlive​(boolean soKeepAlive)`
`void` `setSoLingerOn​(boolean soLingerOn)`
`void` `setSoLingerTime​(int soLingerTime)`
`void` `setSoReuseAddress​(boolean soReuseAddress)`
`void` `setSoTimeout​(int soTimeout)`
`void` `setTcpNoDelay​(boolean tcpNoDelay)`
`void` `setTimeoutInterval​(long timeoutInterval)`
`void` `setTxBufSize​(int txBufSize)`
`void` `setUnlockTimeout​(int unlockTimeout)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### processorCache

    protected int processorCache

Enable/disable socket processor cache, this bounded cache stores SocketProcessor objects to reduce GC Default is 0 -1 is unlimited 0 is disabled

#### eventCache

    protected int eventCache

Enable/disable poller event cache, this bounded cache stores PollerEvent objects to reduce GC for the poller Default is 0 -1 is unlimited 0 is disabled >0 the max number of objects to keep in cache.

#### directBuffer

    protected boolean directBuffer

Enable/disable direct buffers for the network buffers Default value is disabled

#### directSslBuffer

    protected boolean directSslBuffer

Enable/disable direct buffers for the network buffers for SSL Default value is disabled

#### rxBufSize

    protected Integer rxBufSize

Socket receive buffer size in bytes (SO_RCVBUF). JVM default used if not set.

#### txBufSize

    protected Integer txBufSize

Socket send buffer size in bytes (SO_SNDBUF). JVM default used if not set.

#### appReadBufSize

    protected int appReadBufSize

The application read buffer size in bytes. Default value is 8192

#### appWriteBufSize

    protected int appWriteBufSize

The application write buffer size in bytes Default value is 8192

#### bufferPool

    protected int bufferPool

NioChannel pool size for the endpoint, this value is how many channels -1 means unlimited cached, 0 means no cache, -2 means bufferPoolSize will be used Default value is -2

#### bufferPoolSize

    protected int bufferPoolSize

Buffer pool size in bytes to be cached -1 means unlimited, 0 means no cache Default value is based on the max memory reported by the JVM, if less than 1GB, then 0, else the value divided by 32. This value will then be used to compute bufferPool if its value is -2

#### tcpNoDelay

    protected Boolean tcpNoDelay

TCP_NO_DELAY option. JVM default used if not set.

#### soKeepAlive

    protected Boolean soKeepAlive

SO_KEEPALIVE option. JVM default used if not set.

#### ooBInline

    protected Boolean ooBInline

OOBINLINE option. JVM default used if not set.

#### soReuseAddress

    protected Boolean soReuseAddress

SO_REUSEADDR option. JVM default used if not set.

#### soLingerOn

    protected Boolean soLingerOn

SO_LINGER option, paired with the `soLingerTime` value. JVM defaults used unless both attributes are set.

#### soLingerTime

    protected Integer soLingerTime

SO_LINGER option, paired with the `soLingerOn` value. JVM defaults used unless both attributes are set.

#### soTimeout

    protected Integer soTimeout

SO_TIMEOUT option. default is 20000.

#### performanceConnectionTime

    protected Integer performanceConnectionTime

Performance preferences according to http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int) All three performance attributes must be set or the JVM defaults will be used.

#### performanceLatency

    protected Integer performanceLatency

Performance preferences according to http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int) All three performance attributes must be set or the JVM defaults will be used.

#### performanceBandwidth

    protected Integer performanceBandwidth

Performance preferences according to http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int) All three performance attributes must be set or the JVM defaults will be used.

#### timeoutInterval

    protected long timeoutInterval

The minimum frequency of the timeout interval to avoid excess load from the poller during high traffic

#### unlockTimeout

    protected int unlockTimeout

Timeout in milliseconds for an unlock to take place.

### Constructor Detail

#### SocketProperties

    public SocketProperties()

### Method Detail

#### setProperties

    public void setProperties​(Socket socket)
                       throws SocketException

Throws:
  `SocketException`

#### setProperties

    public void setProperties​(ServerSocket socket)
                       throws SocketException

Throws:
  `SocketException`

#### setProperties

    public void setProperties​(AsynchronousSocketChannel socket)
                       throws IOException

Throws:
  `IOException`

#### setProperties

    public void setProperties​(AsynchronousServerSocketChannel socket)
                       throws IOException

Throws:
  `IOException`

#### getDirectBuffer

    public boolean getDirectBuffer()

#### getDirectSslBuffer

    public boolean getDirectSslBuffer()

#### getOoBInline

    public boolean getOoBInline()

#### getPerformanceBandwidth

    public int getPerformanceBandwidth()

#### getPerformanceConnectionTime

    public int getPerformanceConnectionTime()

#### getPerformanceLatency

    public int getPerformanceLatency()

#### getRxBufSize

    public int getRxBufSize()

#### getSoKeepAlive

    public boolean getSoKeepAlive()

#### getSoLingerOn

    public boolean getSoLingerOn()

#### getSoLingerTime

    public int getSoLingerTime()

#### getSoReuseAddress

    public boolean getSoReuseAddress()

#### getSoTimeout

    public int getSoTimeout()

#### getTcpNoDelay

    public boolean getTcpNoDelay()

#### getTxBufSize

    public int getTxBufSize()

#### getBufferPool

    public int getBufferPool()

#### getBufferPoolSize

    public int getBufferPoolSize()

#### getEventCache

    public int getEventCache()

#### getAppReadBufSize

    public int getAppReadBufSize()

#### getAppWriteBufSize

    public int getAppWriteBufSize()

#### getProcessorCache

    public int getProcessorCache()

#### getTimeoutInterval

    public long getTimeoutInterval()

#### getDirectBufferPool

    public int getDirectBufferPool()

#### setPerformanceConnectionTime

    public void setPerformanceConnectionTime​(int performanceConnectionTime)

#### setTxBufSize

    public void setTxBufSize​(int txBufSize)

#### setTcpNoDelay

    public void setTcpNoDelay​(boolean tcpNoDelay)

#### setSoTimeout

    public void setSoTimeout​(int soTimeout)

#### setSoReuseAddress

    public void setSoReuseAddress​(boolean soReuseAddress)

#### setSoLingerTime

    public void setSoLingerTime​(int soLingerTime)

#### setSoKeepAlive

    public void setSoKeepAlive​(boolean soKeepAlive)

#### setRxBufSize

    public void setRxBufSize​(int rxBufSize)

#### setPerformanceLatency

    public void setPerformanceLatency​(int performanceLatency)

#### setPerformanceBandwidth

    public void setPerformanceBandwidth​(int performanceBandwidth)

#### setOoBInline

    public void setOoBInline​(boolean ooBInline)

#### setDirectBuffer

    public void setDirectBuffer​(boolean directBuffer)

#### setDirectSslBuffer

    public void setDirectSslBuffer​(boolean directSslBuffer)

#### setSoLingerOn

    public void setSoLingerOn​(boolean soLingerOn)

#### setBufferPool

    public void setBufferPool​(int bufferPool)

#### setBufferPoolSize

    public void setBufferPoolSize​(int bufferPoolSize)

#### setEventCache

    public void setEventCache​(int eventCache)

#### setAppReadBufSize

    public void setAppReadBufSize​(int appReadBufSize)

#### setAppWriteBufSize

    public void setAppWriteBufSize​(int appWriteBufSize)

#### setProcessorCache

    public void setProcessorCache​(int processorCache)

#### setTimeoutInterval

    public void setTimeoutInterval​(long timeoutInterval)

#### setDirectBufferPool

    public void setDirectBufferPool​(int directBufferPool)

#### getUnlockTimeout

    public int getUnlockTimeout()

#### setUnlockTimeout

    public void setUnlockTimeout​(int unlockTimeout)

#### getActualBufferPool

    public int getActualBufferPool​(int bufferOverhead)

Get the actual buffer pool size to use.

Parameters:
  `bufferOverhead` - When TLS is enabled, additional network buffers are needed and will be added to the application buffer size
Returns:
  the actual buffer pool size that will be used