IDM

Jetty thread settings

In IDM 7.3.2 and later, the embedded Jetty web server supports Jetty 12. Future releases of IDM 7.3.x are only compatible with Java 17. Jetty 12 requires this change.

When serving SSL requests, Jetty 12 checks that the incoming host header matches the server certificate’s subject and returns a 400 Bad Request error on a mismatch. If you’re upgrading to IDM 7.3.2 or later, you must ensure your IDM server certificate subject matches the host name used by your deployment.

Learn more in What’s new.

To change the Jetty thread pool settings, add the following excerpt to your project’s conf/config.properties file:

# Jetty maxThreads (default 200)
org.ops4j.pax.web.server.maxThreads=${org.ops4j.pax.web.server.maxThreads}
# Jetty minThreads (default 8)
org.ops4j.pax.web.server.minThreads=${org.ops4j.pax.web.server.minThreads}
# Jetty idle-thread timeout milliseconds (default 60000)
org.ops4j.pax.web.server.idleTimeout=${org.ops4j.pax.web.server.idleTimeout}

To override these defaults, set a corresponding OPENIDM_OPTS variable when you start IDM. For example:

export OPENIDM_OPTS="-Xmx1024m -Xms1024m -Dorg.ops4j.pax.web.server.maxThreads=768" /path/to/openidm/startup.sh
Executing ./startup.sh...
Using OPENIDM_HOME:   /path/to/openidm
Using PROJECT_HOME:   /path/to/openidm
Using OPENIDM_OPTS:   -Xmx1024m -Xms1024m -Dorg.ops4j.pax.web.server.maxThreads=768
Using LOGGING_CONFIG: -Djava.util.logging.config.file=/path/to/openidm/conf/logging.properties
-> OpenIDM version "8.0.0" (revision: unknown)
OpenIDM ready

You cannot use property substitution to set these properties.

You cannot adjust Jetty’s thread settings in the conf/jetty.xml file. If you uncomment the excerpt of jetty.xml that starts with <!--<Arg name="threadpool">..., errors display in the IDM log.