Class ConnectionLimit

All Implemented Interfaces:
EventListener, Connection.Listener, SelectorManager.AcceptListener, SelectorManager.SelectorManagerListener, LifeCycle

@Deprecated(forRemoval=true, since="12.0.24") @ManagedObject public class ConnectionLimit extends AbstractLifeCycle implements Connection.Listener, SelectorManager.AcceptListener
Deprecated, for removal: This API element is subject to removal in a future version.

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. This listener can be applied to an entire Server or to a specific Connector by adding it via Container.addBean(Object).

When the number of connections is exceeded, the idle timeout of existing connections is changed with the value configured in this listener (typically a shorter value).

Usage:


   Server server = new Server();
   server.addBean(new ConnectionLimit(5000,server));
   ...
   server.start();
 
See Also:
  • Constructor Details

    • ConnectionLimit

      public ConnectionLimit(@Name("maxConnections") int maxConnections, @Name("server") Server server)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • ConnectionLimit

      public ConnectionLimit(@Name("maxConnections") int maxConnections, @Name("connectors") Connector... connectors)
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Method Details

    • getIdleTimeout

      @ManagedAttribute("The endpoint idle timeout in ms to apply when the connection limit is reached") public long getIdleTimeout()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns:
      the endpoint idle timeout in ms to apply when the connection limit is reached
    • setIdleTimeout

      public void setIdleTimeout(long idleTimeout)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Sets the endpoint idle timeout in ms to apply when the connection limit is reached.

      A value less than or equal to zero will not change the existing idle timeout.

      Parameters:
      idleTimeout - 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()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setMaxConnections

      public void setMaxConnections(int max)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • getConnections

      @ManagedAttribute(value="The current number of connections", readonly=true) public int getConnections()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • getPendingConnections

      @ManagedAttribute(value="The current number of pending connections", readonly=true) public int getPendingConnections()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • doStart

      protected void doStart() throws Exception
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: AbstractLifeCycle
      Method to override to start the lifecycle
      Overrides:
      doStart in class AbstractLifeCycle
      Throws:
      Exception - If there was a problem starting. Will cause a transition to FAILED state
    • doStop

      protected void doStop() throws Exception
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: AbstractLifeCycle
      Method to override to stop the lifecycle
      Overrides:
      doStop in class AbstractLifeCycle
      Throws:
      Exception - If there was a problem stopping. Will cause a transition to FAILED state
    • limit

      protected void limit()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • unlimit

      protected void unlimit()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • onAccepting

      public void onAccepting(SelectableChannel channel)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: SelectorManager.AcceptListener
      Called immediately after a new SelectableChannel is accepted, but before it has been submitted to the SelectorManager.
      Specified by:
      onAccepting in interface SelectorManager.AcceptListener
      Parameters:
      channel - the accepted channel
    • onAcceptFailed

      public void onAcceptFailed(SelectableChannel channel, Throwable cause)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: SelectorManager.AcceptListener
      Called if the processing of the accepted channel fails prior to calling SelectorManager.AcceptListener.onAccepted(SelectableChannel).
      Specified by:
      onAcceptFailed in interface SelectorManager.AcceptListener
      Parameters:
      channel - the accepted channel
      cause - the cause of the failure
    • onAccepted

      public void onAccepted(SelectableChannel channel)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: SelectorManager.AcceptListener
      Called after the accepted channel has been allocated an EndPoint and associated Connection, and after the onOpen notifications have been called on both endPoint and connection.
      Specified by:
      onAccepted in interface SelectorManager.AcceptListener
      Parameters:
      channel - the accepted channel
    • onOpened

      public void onOpened(Connection connection)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      onOpened in interface Connection.Listener
    • onClosed

      public void onClosed(Connection connection)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      onClosed in interface Connection.Listener