# 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.
  `protected int`
  `bufferPool`
  NioChannel pool size for the endpoint, this value is how many channels.
  `protected int`
  `bufferPoolSize`
  Buffer pool size in bytes to be cached.
  `protected boolean`
  `directBuffer`
  Enable/disable direct buffers for the network buffers.
  `protected boolean`
  `directSslBuffer`
  Enable/disable direct buffers for the network buffers for SSL.
  `protected int`
  `eventCache`
  Enable/disable poller event cache, this bounded cache stores PollerEvent objects to reduce GC for the poller
  `protected Boolean`
  `ooBInline`
  OOBINLINE option.
  `protected Integer`
  `performanceBandwidth`
  Performance preferences according to setPerformancePreferences All three performance attributes must be set or the JVM defaults will be used.
  `protected Integer`
  `performanceConnectionTime`
  Performance preferences according to setPerformancePreferences All three performance attributes must be set or the JVM defaults will be used.
  `protected Integer`
  `performanceLatency`
  Performance preferences according to setPerformancePreferences 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.
  `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 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.

    0 means no cache
    -1 means unlimited cached
    -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 setPerformancePreferences All three performance attributes must be set or the JVM defaults will be used.

  - ### performanceLatency

    protected Integer performanceLatency
    Performance preferences according to setPerformancePreferences All three performance attributes must be set or the JVM defaults will be used.

  - ### performanceBandwidth

    protected Integer performanceBandwidth
    Performance preferences according to setPerformancePreferences 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