]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-7435 add sonar.ce.javaOpts and sonar.ce.javaAdditionalOpts
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Tue, 15 Mar 2016 13:04:41 +0000 (14:04 +0100)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Mon, 21 Mar 2016 15:44:05 +0000 (16:44 +0100)
also enforce some JVM parameters

server/sonar-process/src/main/java/org/sonar/process/ProcessProperties.java
sonar-application/src/main/assembly/conf/sonar.properties
sonar-application/src/main/java/org/sonar/application/App.java

index d2312154872ae781f69c0c45b87a779600a0fdf3..0f1efd0ce6fa6004f4a2a7ea5d153c5d7b9c6ca6 100644 (file)
@@ -60,6 +60,9 @@ public class ProcessProperties {
   public static final String WEB_JAVA_OPTS = "sonar.web.javaOpts";
   public static final String WEB_JAVA_ADDITIONAL_OPTS = "sonar.web.javaAdditionalOpts";
 
+  public static final String CE_JAVA_OPTS = "sonar.ce.javaOpts";
+  public static final String CE_JAVA_ADDITIONAL_OPTS = "sonar.ce.javaAdditionalOpts";
+
   /**
    * Used by Orchestrator to ask for shutdown of monitor process
    */
@@ -74,6 +77,8 @@ public class ProcessProperties {
     // jruby is slow with java 8: https://jira.sonarsource.com/browse/SONAR-6115
     "-Djruby.compile.invokedynamic=false";
 
+  public static final String CE_ENFORCED_JVM_ARGS = "-Djava.awt.headless=true -Dfile.encoding=UTF-8";
+
   private ProcessProperties() {
     // only static stuff
   }
@@ -111,6 +116,8 @@ public class ProcessProperties {
 
     defaults.put(ProcessProperties.WEB_JAVA_OPTS, "-Xmx768m -Xms256m -XX:MaxPermSize=160m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true");
     defaults.put(ProcessProperties.WEB_JAVA_ADDITIONAL_OPTS, "");
+    defaults.put(ProcessProperties.CE_JAVA_OPTS, "-Xmx768m -Xms256m -XX:MaxPermSize=160m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true");
+    defaults.put(ProcessProperties.CE_JAVA_ADDITIONAL_OPTS, "");
     defaults.put(ProcessProperties.JDBC_URL, "jdbc:h2:tcp://localhost:9092/sonar");
     defaults.put(ProcessProperties.JDBC_MAX_ACTIVE, "60");
     defaults.put(ProcessProperties.JDBC_MAX_IDLE, "5");
index 905c626599abccc75abf1c7618bb8dd0c923613a..ae765e33d982a8ba8636199b436ca611d445bdf9 100644 (file)
 # COMPUTE ENGINE
 # The Compute Engine is responsible for processing background tasks.
 
+# Compute Engine is executed in a dedicated Java process. By default heap size is 768Mb.
+# Use the following property to customize JVM options.
+#    Recommendations:
+#
+#    The HotSpot Server VM is recommended. The property -server should be added if server mode
+#    is not enabled by default on your environment: http://docs.oracle.com/javase/7/docs/technotes/guides/vm/server-class.html
+#
+#sonar.ce.javaOpts=-Xmx768m -Xms256m -XX:MaxPermSize=160m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true
+
+# Same as previous property, but allows to not repeat all other settings like -Xmx
+#sonar.ce.javaAdditionalOpts=
+
 # The number of workers in the Compute Engine.
 # Use the following property to configure 1 or more workers. Value must be >= 1. Default value is 1.
 # By default the Compute Engine uses a single worker and therefor processes tasks one at a time.
index c66b5fade3865133ea3e4b5204afc733c62821a0..7067d122d11905b0b904d644c5446582c2bd53f7 100644 (file)
@@ -107,6 +107,9 @@ public class App implements Stoppable {
   private static JavaCommand createCeServerCommand(Props props, File homeDir) {
     JavaCommand webServer = new JavaCommand("ce", CESERVER_PROCESS_INDEX)
       .setWorkDir(homeDir)
+      .addJavaOptions(ProcessProperties.CE_ENFORCED_JVM_ARGS)
+      .addJavaOptions(props.nonNullValue(ProcessProperties.CE_JAVA_OPTS))
+      .addJavaOptions(props.nonNullValue(ProcessProperties.CE_JAVA_ADDITIONAL_OPTS))
       .setClassName("org.sonar.ce.app.CeServer")
       .setArguments(props.rawProperties())
       .addClasspath("./lib/common/*")