Skip to main content
Version: 8.9 (unreleased)

Upgrade Camunda components from 8.8 to 8.9

note

This page is a work in progress for Camunda 8.9 and will be updated as upgrade requirements are finalized.

Review component-level actions that may be required when upgrading a Camunda 8 Self-Managed deployment from 8.8.x to 8.9.x.

Use this page with the deployment upgrade guide for your environment. Start with the Upgrade Camunda 8 overview, then apply any component-specific steps that match your setup.

Web Modeler

Cluster configuration

Logging framework

Web Modeler restapi now uses Apache Log4j 2 instead of Logback.

If you use a custom Logback configuration, migrate it to Log4j 2.
See the Log4j migration guide for details.

Default logging configuration

The default logging configuration is included here for reference.

The default layout displays:

  • time (hours, minutes, seconds, milliseconds)
  • thread name
  • MDC context (if present)
  • log level
  • logger name
  • message

Example pattern

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

For advanced configuration options, see Logging.

Embedded web server

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

If you use a custom Undertow configuration, review and migrate it.

Refer to:

Remove or replace Undertow properties

If your configuration includes:

server.undertow.*

These properties no longer apply when you switch to Tomcat, and must be removed or replaced.

Access log properties
Undertow propertyReplacement or action
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.rotateReview rotation behavior; Tomcat rotates differently
Threading properties
Undertow propertyTomcat equivalent or action
server.undertow.threads.ioUse server.tomcat.max-connections or a connector customizer
server.undertow.threads.workerReplace with server.tomcat.max-threads
server.undertow.buffer-sizeNo direct equivalent; Tomcat uses internal buffer sizes
server.undertow.direct-buffersNo direct equivalent; Tomcat uses NIO buffers differently
Builder and handler customizations

The following properties do not have direct Tomcat equivalents and must be implemented programmatically or removed if not required:

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

Implement customizations using:

  • TomcatServletWebServerFactory
  • TomcatConnectorCustomizer

More information on handling large payloads can be found here.

Review Tomcat properties

If you already define:

server.tomcat.*

Review these settings for correctness.

Access logs
Tomcat propertyDescription
server.tomcat.accesslog.enabledEnable Tomcat access logs
server.tomcat.accesslog.directoryLog directory
server.tomcat.accesslog.patternLog format
server.tomcat.accesslog.prefixFile name prefix
server.tomcat.accesslog.suffixFile name suffix
note

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

Performance and threading
PropertyDescription
server.tomcat.max-connectionsMaximum concurrent connections
server.tomcat.accept-countQueue size for incoming connections
server.tomcat.max-threadsMaximum 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:

Enable it if you require Java Management Extensions (JMX) metrics:

server.tomcat.mbeanregistry.enabled: true
Additional Tomcat settings
PropertyNotes
server.tomcat.connection-timeoutReview default values; they differ from Undertow

Review behavioral differences

When migrating configuration, also review behavioral differences between Undertow and Tomcat.

Large payload handling

Undertow used server.undertow.max-http-post-size.

Tomcat uses:

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

Review these settings if your deployment handles large uploads.