Class ConnectionLimit
java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.server.ConnectionLimit
- All Implemented Interfaces:
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.
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:
-
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.StopExceptionNested 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 -
Constructor Summary
ConstructorsConstructorDescriptionConnectionLimit(int maxConnections, Connector... connectors) ConnectionLimit(int maxConnections, Server server) -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoStart()protected voiddoStop()intlongintintprotected voidlimit()voidonAccepted(SelectableChannel channel) voidonAcceptFailed(SelectableChannel channel, Throwable cause) voidonAccepting(SelectableChannel channel) voidonClosed(org.eclipse.jetty.io.Connection connection) voidonOpened(org.eclipse.jetty.io.Connection connection) voidsetIdleTimeout(long idleTimeout) Sets the endpoint idle timeout in ms to apply when the connection limit is reached.voidsetMaxConnections(int max) protected voidunlimit()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
-
Constructor Details
-
ConnectionLimit
-
ConnectionLimit
public ConnectionLimit(@Name("maxConnections") int maxConnections, @Name("connectors") Connector... connectors)
-
-
Method Details
-
getIdleTimeout
@ManagedAttribute("The endpoint idle timeout in ms to apply when the connection limit is reached") public long getIdleTimeout()- Returns:
- the endpoint idle timeout in ms to apply when the connection limit is reached
-
setIdleTimeout
public void setIdleTimeout(long idleTimeout) 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() -
setMaxConnections
public void setMaxConnections(int max) -
getConnections
@ManagedAttribute(value="The current number of connections", readonly=true) public int getConnections() -
getPendingConnections
@ManagedAttribute(value="The current number of pending connections", readonly=true) public int getPendingConnections() -
doStart
-
doStop
-
limit
protected void limit() -
unlimit
protected void unlimit() -
onAccepting
- Specified by:
onAcceptingin interfaceorg.eclipse.jetty.io.SelectorManager.AcceptListener
-
onAcceptFailed
- Specified by:
onAcceptFailedin interfaceorg.eclipse.jetty.io.SelectorManager.AcceptListener
-
onAccepted
- Specified by:
onAcceptedin interfaceorg.eclipse.jetty.io.SelectorManager.AcceptListener
-
onOpened
public void onOpened(org.eclipse.jetty.io.Connection connection) - Specified by:
onOpenedin interfaceorg.eclipse.jetty.io.Connection.Listener
-
onClosed
public void onClosed(org.eclipse.jetty.io.Connection connection) - Specified by:
onClosedin interfaceorg.eclipse.jetty.io.Connection.Listener
-