Package org.apache.tomcat.util.net

## Class SocketProperties

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

    public class SocketProperties
    extends java.lang.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 txBufSize
`protected int` `bufferPool` NioChannel pool size for the endpoint, this value is how many channels -1 means unlimited cached, 0 means no cache Default value is 500 TODO: The default should be changed in Tomcat 10, actually it should be bufferPoolSize / (appReadBufSize + appWriteBufSize), assuming the SSL buffers are ignored (that would be logical), and the value would be 6400.
`protected int` `bufferPoolSize` Buffer pool size in bytes to be cached -1 means unlimited, 0 means no cache Default value is 100MB (1024*1024*100 bytes) TODO: The default value to be used could rather be based on the JVM max heap, otherwise it could be a problem in some environments.
`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 500 -1 is unlimited 0 is disabled >0 the max number of objects to keep in cache.
`protected java.lang.Boolean` `ooBInline` OOBINLINE option.
`protected java.lang.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 java.lang.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 java.lang.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 500 -1 is unlimited 0 is disabled TODO: The default will be changed to 0 in Tomcat 10
`protected java.lang.Integer` `rxBufSize` Socket receive buffer size in bytes (SO_RCVBUF).
`protected java.lang.Boolean` `soKeepAlive` SO_KEEPALIVE option.
`protected java.lang.Boolean` `soLingerOn` SO_LINGER option, paired with the `soLingerTime` value.
`protected java.lang.Integer` `soLingerTime` SO_LINGER option, paired with the `soLingerOn` value.
`protected java.lang.Boolean` `soReuseAddress` SO_REUSEADDR option.
`protected java.lang.Integer` `soTimeout` SO_TIMEOUT option. default is 20000.
`protected java.lang.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 java.lang.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` `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​(java.net.ServerSocket socket)`
`void` `setProperties​(java.net.Socket socket)`
`void` `setProperties​(java.nio.channels.AsynchronousServerSocketChannel socket)`
`void` `setProperties​(java.nio.channels.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 500 -1 is unlimited 0 is disabled TODO: The default will be changed to 0 in Tomcat 10

#### eventCache

    protected int eventCache

Enable/disable poller event cache, this bounded cache stores PollerEvent objects to reduce GC for the poller Default is 500 -1 is unlimited 0 is disabled >0 the max number of objects to keep in cache. TODO: The default will be changed to 0 in Tomcat 10

#### 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 java.lang.Integer rxBufSize

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

#### txBufSize

    protected java.lang.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 rxBufSize

#### appWriteBufSize

    protected int appWriteBufSize

The application write buffer size in bytes Default value is txBufSize

#### bufferPool

    protected int bufferPool

NioChannel pool size for the endpoint, this value is how many channels -1 means unlimited cached, 0 means no cache Default value is 500 TODO: The default should be changed in Tomcat 10, actually it should be bufferPoolSize / (appReadBufSize + appWriteBufSize), assuming the SSL buffers are ignored (that would be logical), and the value would be 6400. So the default value will be changed to a new default value like -2 to set a dynamic value based on bufferPoolSize in that case.

#### bufferPoolSize

    protected int bufferPoolSize

Buffer pool size in bytes to be cached -1 means unlimited, 0 means no cache Default value is 100MB (1024*1024*100 bytes) TODO: The default value to be used could rather be based on the JVM max heap, otherwise it could be a problem in some environments. Big servers also need to use a much higher default, while small cloud based ones should use 0 instead. Possible default value strategy: heap inf 1GB: 0 heap sup 1GB: heap / 32

#### tcpNoDelay

    protected java.lang.Boolean tcpNoDelay

TCP_NO_DELAY option. JVM default used if not set.

#### soKeepAlive

    protected java.lang.Boolean soKeepAlive

SO_KEEPALIVE option. JVM default used if not set.

#### ooBInline

    protected java.lang.Boolean ooBInline

OOBINLINE option. JVM default used if not set.

#### soReuseAddress

    protected java.lang.Boolean soReuseAddress

SO_REUSEADDR option. JVM default used if not set.

#### soLingerOn

    protected java.lang.Boolean soLingerOn

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

#### soLingerTime

    protected java.lang.Integer soLingerTime

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

#### soTimeout

    protected java.lang.Integer soTimeout

SO_TIMEOUT option. default is 20000.

#### performanceConnectionTime

    protected java.lang.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 java.lang.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 java.lang.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​(java.net.Socket socket)
                       throws java.net.SocketException

Throws:
  `java.net.SocketException`

#### setProperties

    public void setProperties​(java.net.ServerSocket socket)
                       throws java.net.SocketException

Throws:
  `java.net.SocketException`

#### setProperties

    public void setProperties​(java.nio.channels.AsynchronousSocketChannel socket)
                       throws java.io.IOException

Throws:
  `java.io.IOException`

#### setProperties

    public void setProperties​(java.nio.channels.AsynchronousServerSocketChannel socket)
                       throws java.io.IOException

Throws:
  `java.io.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)