Vor allem bei öffentlich zugänglichen DLE Installationen sollte eine Anfragedrosselung angedacht werden. Hintergrund dazu ist, dass eine DLE nur eine limitierte Anzahl an parallelen Web-Anfragen gleichzeitig bearbeiten kann. Wir diese Anzahl überschritten, so ist bis zur erneuten Unterschreitung der aktiven Anfragen die DLE nicht erreichbar. Siehe dazu ServerEigenschaften / MaxWorkers.
Grundsätzlich ist es empfehlenswert einen Reverse-Proxy vor die DLE zu schalten. Dieser kann eine Anfragedrosselung übernehmen.
Ab der DLE-Version 2.2.0 kann nun ein Request-Limiter-Filter direkt in Webapplikationen bzw. der web.xml eingebaut werden. Folgend eine Beispielkonfiguration in der web.xml einer Web-Applikation.
<filter>
<filter-name>RequestLimiterFilter</filter-name>
<filter-class>at.visionflow.dle.server.DLERequestThrottleFilter</filter-class>
<init-param>
<param-name>dle.noRequestDurationLimiting</param-name>
<param-value>true</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter>
<filter-name>RequestLimiterFilterLogin</filter-name>
<filter-class>at.visionflow.dle.server.DLERequestThrottleFilter</filter-class>
<init-param>
<param-name>maxRequestsPerSec</param-name>
<param-value>1</param-value>
</init-param>
<init-param>
<param-name>delayMs</param-name>
<param-value>3000</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>RequestLimiterFilterLogin</filter-name>
<url-pattern>*/vfxwps_login.brick</url-pattern>
<url-pattern>*/login.brick</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>RequestLimiterFilter</filter-name>
<url-pattern>*.brick</url-pattern>
<url-pattern>*/DLEClientCom</url-pattern>
</filter-mapping>