This ticket documents a number of configuration changes made to Confluence for version 7.12.0.
Database Configuration
Confluence now takes advantage of the JDBC4 isValid method to check if a database connection is alive prior to use. Previously a validation query could be set manually to enable this functionality. By using the isValid method, the driver will now determine the best way to check a connection. This results in a small performance improvement, but is mainly about simplifying config.
The new configuration is defined out of the box, and existing customers configurations will be updated with an upgrade task to save you some time
# Removed <property name="hibernate.c3p0.preferredTestQuery">SELECT 1</property> # Added <property name="hibernate.c3p0.validate">true</property>
Java Configuration and Setenv.sh Changes
The setenv.sh file is used to configure Java and environment options. With this change, the setenv.sh file is now broken into segments with the most commonly modified options in easy to change setting blocks. Hopefully this will make configuration easier, and make moving configuration changes between Confluence versions simpler.
In addition to this change, we've updated the default Java configuration shipped with Confluence
The following items were removed as they're configured by the JVM as defaults
- -XX:+UseCodeCacheFlushing
- -XX:-PrintGCDetails
- -XX:-PrintTenuringDistribution
- -XX:+PrintGCCause
We also removed a configuration that forced TLSv1.1/1.2 that was used to mitigate a bug in Java 11. The removal of this workaround was enabled by the JDK fixing the relevant bugs. The JDK will now negotiate the appropriate TLS version at runtime.
Finally, we've added the following configuration
- -XX:+ExplicitGCInvokesConcurrent
- Large to Enterprise Scale Configuration Options
#CATALINA_OPTS="-XX:ReservedCodeCacheSize=384m ${CATALINA_OPTS}" #CATALINA_OPTS="-XX:+PrintTenuringDistribution ${CATALINA_OPTS}" #CATALINA_OPTS="-XX:+PrintGCDetails -XX:+PrintGCTimeStamps ${CATALINA_OPTS}" #CATALINA_OPTS="-Dconfluence.upgrade.recovery.file.enabled=false ${CATALINA_OPTS}"${CATALINA_OPTS}"
With the addition of -XX:+ExplicitGCInvokesConcurrent, we recommend the removal of -XX:+DisableExplicitGC. This change was made to reduce the chance of OutOfMemoryError occurring in certain native memory operations.
The Large to Enterprise Scale Configuration Options block contains settings we recommend for our largest customers. These options will not benefit our smaller customers, but should allow easier configuration when required.
Windows Configurations
Finally, we attempted to bring Windows and Linux configurations into alignment as detailed in CONFSERVER-53524: Service.sh and setenv.bat files set different Java options. The Windows service now installs with the same configurations as Windows and Linux run scripts.
As part of this work, we identified an additional bug with regards to Java 11 Garbage Collection logging. It is currently tracked at CONFSERVER-61415: Java 11 Garbage Collection Logging Settings Are Not Correctly Applied on Confluence Start. Once we are able to resolve this issue, we'll be able to close both tickets.
- relates to
-
CONFSERVER-53524 Service.sh and setenv.bat files set different Java options
-
- Closed
-
-
CONFSERVER-61415 Java 11 Garbage Collection Logging Settings Are Not Correctly Applied on Confluence Start
-
- Closed
-
- mentioned in
-
Page Failed to load
-
Page Failed to load
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
A fix for this issue is available to Server and Data Center customers in Confluence 7.12.0
Upgrade now or check out the Release Notes to see what other issues are resolved.