Class ConnectionLimit

  • All Implemented Interfaces:
    java.util.EventListener, org.eclipse.jetty.io.Connection.Listener, org.eclipse.jetty.io.SelectorManager.AcceptListener, org.eclipse.jetty.io.SelectorManager.SelectorManagerListener, org.eclipse.jetty.util.component.LifeCycle

    @ManagedObject
    public class ConnectionLimit
    extends org.eclipse.jetty.util.component.AbstractLifeCycle
    implements org.eclipse.jetty.io.Connection.Listener, org.eclipse.jetty.io.SelectorManager.AcceptListener

    A Listener that limits the number of Connections.

    This listener applies a limit to the number of connections, which when exceeded results in a call to AbstractConnector.setAccepting(boolean) to prevent further connections being received. It can be applied to an entire server or to a specific connector by adding it via Container.addBean(Object)

    Usage:

       Server server = new Server();
       server.addBean(new ConnectionLimit(5000,server));
       ...
       server.start();
     
    See Also:
    LowResourceMonitor, Connection.Listener, SelectorManager.AcceptListener
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopException
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.io.Connection.Listener

        org.eclipse.jetty.io.Connection.Listener.Adapter
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

        org.eclipse.jetty.util.component.LifeCycle.Listener
    • Field Summary

      • Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        FAILED, STARTED, STARTING, STOPPED, STOPPING
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void check()  
      protected void doStart()  
      protected void doStop()  
      int getConnections()  
      long getIdleTimeout()  
      int getMaxConnections()  
      protected void limit()  
      void onAccepted​(java.nio.channels.SelectableChannel channel)  
      void onAcceptFailed​(java.nio.channels.SelectableChannel channel, java.lang.Throwable cause)  
      void onAccepting​(java.nio.channels.SelectableChannel channel)  
      void onClosed​(org.eclipse.jetty.io.Connection connection)  
      void onOpened​(org.eclipse.jetty.io.Connection connection)  
      void setIdleTimeout​(long idleTimeout)  
      void setMaxConnections​(int max)  
      protected void unlimit()  
      • Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        addEventListener, getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, setEventListeners, start, stop, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ConnectionLimit

        public ConnectionLimit​(@Name("maxConnections")
                               int maxConnections,
                               @Name("server")
                               Server server)
      • ConnectionLimit

        public ConnectionLimit​(@Name("maxConnections")
                               int maxConnections,
                               @Name("connectors")
                               Connector... connectors)
    • Method Detail

      • getIdleTimeout

        @ManagedAttribute("The endpoint idle timeout in ms to apply when the connection limit is reached")
        public long getIdleTimeout()
        Returns:
        If >= 0, the endpoint idle timeout in ms to apply when the connection limit is reached
      • setIdleTimeout

        public void setIdleTimeout​(long idleTimeout)
        Parameters:
        idleTimeout - If >= 0 the endpoint idle timeout in ms to apply when the connection limit is reached
      • getMaxConnections

        @ManagedAttribute("The maximum number of connections allowed")
        public int getMaxConnections()
      • setMaxConnections

        public void setMaxConnections​(int max)
      • getConnections

        @ManagedAttribute("The current number of connections ")
        public int getConnections()
      • doStart

        protected void doStart()
                        throws java.lang.Exception
        Overrides:
        doStart in class org.eclipse.jetty.util.component.AbstractLifeCycle
        Throws:
        java.lang.Exception
      • doStop

        protected void doStop()
                       throws java.lang.Exception
        Overrides:
        doStop in class org.eclipse.jetty.util.component.AbstractLifeCycle
        Throws:
        java.lang.Exception
      • check

        protected void check()
      • limit

        protected void limit()
      • unlimit

        protected void unlimit()
      • onAccepting

        public void onAccepting​(java.nio.channels.SelectableChannel channel)
        Specified by:
        onAccepting in interface org.eclipse.jetty.io.SelectorManager.AcceptListener
      • onAcceptFailed

        public void onAcceptFailed​(java.nio.channels.SelectableChannel channel,
                                   java.lang.Throwable cause)
        Specified by:
        onAcceptFailed in interface org.eclipse.jetty.io.SelectorManager.AcceptListener
      • onAccepted

        public void onAccepted​(java.nio.channels.SelectableChannel channel)
        Specified by:
        onAccepted in interface org.eclipse.jetty.io.SelectorManager.AcceptListener
      • onOpened

        public void onOpened​(org.eclipse.jetty.io.Connection connection)
        Specified by:
        onOpened in interface org.eclipse.jetty.io.Connection.Listener
      • onClosed

        public void onClosed​(org.eclipse.jetty.io.Connection connection)
        Specified by:
        onClosed in interface org.eclipse.jetty.io.Connection.Listener