Skip to main content
Version: 8.9 (unreleased)

Components update 8.8 to 8.9

The following sections explain which adjustments must be made to migrate from Camunda 8.8.x to 8.9.x.

Web Modeler

Cluster configuration

Logging framework changed

Web Modeler's restapi component now uses Apache Log4j 2 for logging.

See the migration guide to learn about the changes you may need to make if you are using a custom Logback configuration.

Logging configuration

The default logging configuration is included inline for quick reference.

The default layout displays time only, thread name, MDC context, log level, logger name, and message.

Example pattern

%d{HH:mm:ss.SSS} [%t] %notEmpty{[%X] }%-5level %logger{36} - %msg%n

See Logging for advanced settings and more details.

Embedded web server

Web Modeler now uses Apache Tomcat as an embedded web server instead of Undertow.

If you are using a custom Undertow configuration, you will need to migrate it.

You should consider the following when upgrading:

info

Undertow-specific properties (remove/replace)

If you have anything defined under:

server.undertow.*

These properties will not work once you switch to Tomcat. Below you can find a list of the most important propeties from the Camunda perspective.

Undertow access log
Undertow propertyWhat to do after migrating
server.undertow.accesslog.enabledReplace with server.tomcat.accesslog.enabled.
server.undertow.accesslog.patternReplace with server.tomcat.accesslog.pattern.
server.undertow.accesslog.dirReplace with server.tomcat.basedir or a custom log directory.
server.undertow.accesslog.prefixTomcat uses server.tomcat.accesslog.prefix.
server.undertow.accesslog.rotateTomcat rotates differently → confirm desired behavior.
Undertow Threading
Undertow propertyTomcat equivalent
server.undertow.threads.io.server.tomcat.max-connections / connector customizer
server.undertow.threads.workerserver.tomcat.max-threads
server.undertow.buffer-sizeTomcat uses internal buffer sizes — no direct property
server.undertow.direct-buffersNo equivalent (Tomcat uses NIO buffers differently)
Undertow builder/handler customizations

Most of the following properties have no direct Tomcat property and must be implemented via:

  • TomcatServletWebServerFactory
  • TomcatConnectorCustomizer
  • or left out if not needed
server.undertow.eager-filter-init
server.undertow.allow-encoded-slash
server.undertow.decode-url
server.undertow.max-http-post-size
server.undertow.no-request-timeout

More information on handling large payloads can be found here.

Tomcat-specific properties (add/review)

If you have anything defined under:

server.tomcat.*

These properties now become more relevant. Review the following subset of properties.

Access logs
Tomcat propertyDescription
server.tomcat.accesslog.enabledEnable Tomcat access log
server.tomcat.accesslog.directoryDirectory for logs
server.tomcat.accesslog.patternLog format
server.tomcat.accesslog.prefixFilename prefix
server.tomcat.accesslog.suffixFilename suffix
note

Tomcat rotates differently than Undertow. Verify log retention and file sizes.

Performance/threading
PropertyDescription
server.tomcat.max-connectionsMax simultaneous connections
server.tomcat.accept-countQueue size for incoming connections
server.tomcat.max-threadsMax request-processing threads
server.tomcat.min-spare-threadsMinimum idle threads

Tomcat uses a standard blocking I/O thread model, unlike Undertow’s worker and IO threads.

MBean registry

Tomcat disables the MBean registry by default:

server.tomcat.mbeanregistry.enabled=true

Enable this if you need Java Management Extensions (JMX) metrics.

Additional Tomcat options
PropertyNotes
server.tomcat.connection-timeoutDefaults differ compared to Undertow.

Review behavioral differences (not just properties)

Review the following, in addition to the properties as described above.

Large payload handling

Review Undertow’s max-http-post-size because Tomcat uses:

spring.servlet.multipart.max-file-size
spring.servlet.multipart.max-request-size
server.tomcat.max-swallow-size