]> source.dussan.org Git - sonarqube.git/commitdiff
feat: support configuration of the tomcat keepAliveTimeout
authorjason.damour <jason.damour@five9.com>
Thu, 10 Mar 2022 02:01:34 +0000 (18:01 -0800)
committersonartech <sonartech@sonarsource.com>
Fri, 11 Mar 2022 10:30:55 +0000 (10:30 +0000)
server/sonar-docs/src/pages/setup/sonar-properties.md
server/sonar-process/src/main/java/org/sonar/process/ProcessProperties.java
server/sonar-webserver/src/main/java/org/sonar/server/app/TomcatConnectors.java
sonar-application/src/main/assembly/conf/sonar.properties

index 6073c4edc3635bb26609a1d4665f9e32d92c65e3..6d7ab42c30830e9640b02676ee8722e812262e39 100644 (file)
@@ -93,6 +93,9 @@ The minimum number of threads always kept running. The default value is 5.
 **`SONAR_WEB_HTTP_ACCEPTCOUNT=25`**  
 The maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full will be refused. The default value is 25.
 
+**`SONAR_WEB_HTTP_KEEPALIVETIMEOUT=60000`**  
+The number of milliseconds this Connector will wait for another HTTP request before closing the connection. Use a value of -1 to indicate no (i.e. infinite) timeout. The default value is 60000 (ms).
+
 **`SONAR_AUTH_JWTBASE64HS256SECRET=`**  
 By default users are logged out and sessions closed when server is restarted. If you prefer keeping user sessions open, a secret should be defined. Value is HS256 key encoded with base64. It must be unique for each installation of SonarQube. Example of command-line:  
 echo -n "type_what_you_want" | openssl dgst -sha256 -hmac "key" -binary | base64
index 364de2a624d5286c236bf1ff7e3eac3b3ba01156..03b636d284ce78f85f6d7094e1668108d07e6f72 100644 (file)
@@ -96,6 +96,7 @@ public class ProcessProperties {
     WEB_HTTP_MIN_THREADS("sonar.web.http.minThreads"),
     WEB_HTTP_MAX_THREADS("sonar.web.http.maxThreads"),
     WEB_HTTP_ACCEPT_COUNT("sonar.web.http.acceptCount"),
+    WEB_HTTP_KEEP_ALIVE_TIMEOUT("sonar.web.http.keepAliveTimeout"),
     WEB_SESSION_TIMEOUT_IN_MIN("sonar.web.sessionTimeoutInMinutes"),
     WEB_SYSTEM_PASS_CODE("sonar.web.systemPasscode"),
     WEB_ACCESSLOGS_ENABLE("sonar.web.accessLogs.enable"),
index 7f335c17bfe389b639725ee9717462231de99b92..cd002d02adc3e648e9e645acb48d53fc21960544 100644 (file)
@@ -29,6 +29,7 @@ import static org.sonar.process.ProcessProperties.Property.WEB_HOST;
 import static org.sonar.process.ProcessProperties.Property.WEB_HTTP_ACCEPT_COUNT;
 import static org.sonar.process.ProcessProperties.Property.WEB_HTTP_MAX_THREADS;
 import static org.sonar.process.ProcessProperties.Property.WEB_HTTP_MIN_THREADS;
+import static org.sonar.process.ProcessProperties.Property.WEB_HTTP_KEEP_ALIVE_TIMEOUT;
 
 /**
  * Configuration of Tomcat connectors
@@ -82,6 +83,7 @@ class TomcatConnectors {
     connector.setProperty("minSpareThreads", String.valueOf(props.valueAsInt(WEB_HTTP_MIN_THREADS.getKey(), 5)));
     connector.setProperty("maxThreads", String.valueOf(props.valueAsInt(WEB_HTTP_MAX_THREADS.getKey(), 50)));
     connector.setProperty("acceptCount", String.valueOf(props.valueAsInt(WEB_HTTP_ACCEPT_COUNT.getKey(), 25)));
+    connector.setProperty("keepAliveTimeout", String.valueOf(props.valueAsInt(WEB_HTTP_KEEP_ALIVE_TIMEOUT.getKey(), 60000)));
   }
 
   private static void configureCompression(Connector connector) {
index bedc8e9af88a75ee86de93eeda8c09d9dc37aca2..34287b4730939d872c35204697454b46dd6fb122 100644 (file)
 # The default value is 25.
 #sonar.web.http.acceptCount=25
 
+# The number of milliseconds this Connector will wait for another HTTP request before closing the 
+# connection. The default value is to use the value that has been set for the connectionTimeout 
+# attribute. Use a value of -1 to indicate no (i.e. infinite) timeout.
+# The default value is 25.
+#sonar.web.http.keepAliveTimeout=60000
+
 # By default users are logged out and sessions closed when server is restarted.
 # If you prefer keeping user sessions open, a secret should be defined. Value is
 # HS256 key encoded with base64. It must be unique for each installation of SonarQube.