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