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

    • 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.

    • 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.

      Default value is 500
      0 means no cache
      -1 means unlimited cached

    • bufferPoolSize

      protected int bufferPoolSize
      Buffer pool size in bytes to be cached.

      Default value is 100MB (1024*1024*100 bytes)
      -1 means unlimited
      0 means no cache

    • 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()
      Creates a new instance of SocketProperties with default values.
  • Method Details

    • setProperties

      public void setProperties(Socket socket) throws SocketException
      Applies socket properties to the given Socket.
      Parameters:
      socket - the socket to configure
      Throws:
      SocketException - if a socket error occurs
    • setProperties

      public void setProperties(ServerSocket socket) throws SocketException
      Applies socket properties to the given ServerSocket.
      Parameters:
      socket - the server socket to configure
      Throws:
      SocketException - if a socket error occurs
    • setProperties

      public void setProperties(AsynchronousSocketChannel socket) throws IOException
      Applies socket properties to the given AsynchronousSocketChannel.
      Parameters:
      socket - the asynchronous socket channel to configure
      Throws:
      IOException - if an I/O error occurs
    • setProperties

      public void setProperties(AsynchronousServerSocketChannel socket) throws IOException
      Applies socket properties to the given AsynchronousServerSocketChannel.
      Parameters:
      socket - the asynchronous server socket channel to configure
      Throws:
      IOException - if an I/O error occurs
    • getDirectBuffer

      public boolean getDirectBuffer()
      Returns whether direct buffers are used for network buffers.
      Returns:
      true if direct buffers are enabled
    • getDirectSslBuffer

      public boolean getDirectSslBuffer()
      Returns whether direct buffers are used for SSL network buffers.
      Returns:
      true if direct SSL buffers are enabled
    • getOoBInline

      public boolean getOoBInline()
      Returns the OOBINLINE socket option value.
      Returns:
      the OOBINLINE value
    • getPerformanceBandwidth

      public int getPerformanceBandwidth()
      Returns the performance preference for bandwidth.
      Returns:
      the bandwidth preference value
    • getPerformanceConnectionTime

      public int getPerformanceConnectionTime()
      Returns the performance preference for connection time.
      Returns:
      the connection time preference value
    • getPerformanceLatency

      public int getPerformanceLatency()
      Returns the performance preference for latency.
      Returns:
      the latency preference value
    • getRxBufSize

      public int getRxBufSize()
      Returns the socket receive buffer size in bytes.
      Returns:
      the receive buffer size
    • getSoKeepAlive

      public boolean getSoKeepAlive()
      Returns the SO_KEEPALIVE socket option value.
      Returns:
      the keep-alive value
    • getSoLingerOn

      public boolean getSoLingerOn()
      Returns whether SO_LINGER is enabled.
      Returns:
      true if SO_LINGER is enabled
    • getSoLingerTime

      public int getSoLingerTime()
      Returns the SO_LINGER timeout value in seconds.
      Returns:
      the linger timeout value
    • getSoReuseAddress

      public boolean getSoReuseAddress()
      Returns the SO_REUSEADDR socket option value.
      Returns:
      the reuse address value
    • getSoTimeout

      public int getSoTimeout()
      Returns the SO_TIMEOUT value in milliseconds.
      Returns:
      the socket timeout value
    • getTcpNoDelay

      public boolean getTcpNoDelay()
      Returns the TCP_NODELAY socket option value.
      Returns:
      the TCP no delay value
    • getTxBufSize

      public int getTxBufSize()
      Returns the socket send buffer size in bytes.
      Returns:
      the send buffer size
    • getBufferPool

      public int getBufferPool()
      Returns the NioChannel pool size.
      Returns:
      the buffer pool size
    • getBufferPoolSize

      public int getBufferPoolSize()
      Returns the buffer pool size in bytes to be cached.
      Returns:
      the buffer pool byte size
    • getEventCache

      public int getEventCache()
      Returns the poller event cache size.
      Returns:
      the event cache size
    • getAppReadBufSize

      public int getAppReadBufSize()
      Returns the application read buffer size in bytes.
      Returns:
      the application read buffer size
    • getAppWriteBufSize

      public int getAppWriteBufSize()
      Returns the application write buffer size in bytes.
      Returns:
      the application write buffer size
    • getProcessorCache

      public int getProcessorCache()
      Returns the socket processor cache size.
      Returns:
      the processor cache size
    • getTimeoutInterval

      public long getTimeoutInterval()
      Returns the minimum frequency of the timeout interval in milliseconds.
      Returns:
      the timeout interval
    • getDirectBufferPool

      public int getDirectBufferPool()
      Returns the direct buffer pool size.
      Returns:
      the direct buffer pool size
    • setPerformanceConnectionTime

      public void setPerformanceConnectionTime(int performanceConnectionTime)
      Sets the performance preference for connection time.
      Parameters:
      performanceConnectionTime - the connection time preference value
    • setTxBufSize

      public void setTxBufSize(int txBufSize)
      Sets the socket send buffer size in bytes.
      Parameters:
      txBufSize - the send buffer size
    • setTcpNoDelay

      public void setTcpNoDelay(boolean tcpNoDelay)
      Sets the TCP_NODELAY socket option.
      Parameters:
      tcpNoDelay - the TCP no delay value
    • setSoTimeout

      public void setSoTimeout(int soTimeout)
      Sets the SO_TIMEOUT value in milliseconds.
      Parameters:
      soTimeout - the socket timeout value
    • setSoReuseAddress

      public void setSoReuseAddress(boolean soReuseAddress)
      Sets the SO_REUSEADDR socket option.
      Parameters:
      soReuseAddress - the reuse address value
    • setSoLingerTime

      public void setSoLingerTime(int soLingerTime)
      Sets the SO_LINGER timeout value in seconds.
      Parameters:
      soLingerTime - the linger timeout value
    • setSoKeepAlive

      public void setSoKeepAlive(boolean soKeepAlive)
      Sets the SO_KEEPALIVE socket option.
      Parameters:
      soKeepAlive - the keep-alive value
    • setRxBufSize

      public void setRxBufSize(int rxBufSize)
      Sets the socket receive buffer size in bytes.
      Parameters:
      rxBufSize - the receive buffer size
    • setPerformanceLatency

      public void setPerformanceLatency(int performanceLatency)
      Sets the performance preference for latency.
      Parameters:
      performanceLatency - the latency preference value
    • setPerformanceBandwidth

      public void setPerformanceBandwidth(int performanceBandwidth)
      Sets the performance preference for bandwidth.
      Parameters:
      performanceBandwidth - the bandwidth preference value
    • setOoBInline

      public void setOoBInline(boolean ooBInline)
      Sets the OOBINLINE socket option.
      Parameters:
      ooBInline - the OOB inline value
    • setDirectBuffer

      public void setDirectBuffer(boolean directBuffer)
      Sets whether direct buffers are used for network buffers.
      Parameters:
      directBuffer - true to enable direct buffers
    • setDirectSslBuffer

      public void setDirectSslBuffer(boolean directSslBuffer)
      Sets whether direct buffers are used for SSL network buffers.
      Parameters:
      directSslBuffer - true to enable direct SSL buffers
    • setSoLingerOn

      public void setSoLingerOn(boolean soLingerOn)
      Sets whether SO_LINGER is enabled.
      Parameters:
      soLingerOn - true to enable SO_LINGER
    • setBufferPool

      public void setBufferPool(int bufferPool)
      Sets the NioChannel pool size.
      Parameters:
      bufferPool - the buffer pool size
    • setBufferPoolSize

      public void setBufferPoolSize(int bufferPoolSize)
      Sets the buffer pool size in bytes to be cached.
      Parameters:
      bufferPoolSize - the buffer pool byte size
    • setEventCache

      public void setEventCache(int eventCache)
      Sets the poller event cache size.
      Parameters:
      eventCache - the event cache size
    • setAppReadBufSize

      public void setAppReadBufSize(int appReadBufSize)
      Sets the application read buffer size in bytes.
      Parameters:
      appReadBufSize - the application read buffer size
    • setAppWriteBufSize

      public void setAppWriteBufSize(int appWriteBufSize)
      Sets the application write buffer size in bytes.
      Parameters:
      appWriteBufSize - the application write buffer size
    • setProcessorCache

      public void setProcessorCache(int processorCache)
      Sets the socket processor cache size.
      Parameters:
      processorCache - the processor cache size
    • setTimeoutInterval

      public void setTimeoutInterval(long timeoutInterval)
      Sets the minimum frequency of the timeout interval in milliseconds.
      Parameters:
      timeoutInterval - the timeout interval
    • setDirectBufferPool

      public void setDirectBufferPool(int directBufferPool)
      Sets the direct buffer pool size.
      Parameters:
      directBufferPool - the direct buffer pool size
    • getUnlockTimeout

      public int getUnlockTimeout()
      Returns the unlock timeout in milliseconds.
      Returns:
      the unlock timeout
    • setUnlockTimeout

      public void setUnlockTimeout(int unlockTimeout)
      Sets the unlock timeout in milliseconds.
      Parameters:
      unlockTimeout - the unlock timeout value (must be positive)