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
Modifier and Type
Field
Description
`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 Boolean`
`ooBInline`
OOBINLINE option.
`protected Integer`
`performanceBandwidth`
Performance preferences according to https://docs.oracle.com/javase/8/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 https://docs.oracle.com/javase/8/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 https://docs.oracle.com/javase/8/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 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
Constructor
Description
`SocketProperties()`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### 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 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 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 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 https://docs.oracle.com/javase/8/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 https://docs.oracle.com/javase/8/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 https://docs.oracle.com/javase/8/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 Details

### SocketProperties

public SocketProperties()

## Method Details

### 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)