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 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
Constructor
Description
`SocketProperties()`

## Method Summary

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

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

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