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:
- For a full list of Spring properties, refer to the Spring documentation.
- For more information, refer to the Spring embedded web server documentation.
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 property | What to do after migrating |
|---|---|
server.undertow.accesslog.enabled | Replace with server.tomcat.accesslog.enabled. |
server.undertow.accesslog.pattern | Replace with server.tomcat.accesslog.pattern. |
server.undertow.accesslog.dir | Replace with server.tomcat.basedir or a custom log directory. |
server.undertow.accesslog.prefix | Tomcat uses server.tomcat.accesslog.prefix. |
server.undertow.accesslog.rotate | Tomcat rotates differently → confirm desired behavior. |
Undertow Threading
| Undertow property | Tomcat equivalent |
|---|---|
server.undertow.threads.io. | server.tomcat.max-connections / connector customizer |
server.undertow.threads.worker | server.tomcat.max-threads |
server.undertow.buffer-size | Tomcat uses internal buffer sizes — no direct property |
server.undertow.direct-buffers | No 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:
TomcatServletWebServerFactoryTomcatConnectorCustomizer- 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 property | Description |
|---|---|
server.tomcat.accesslog.enabled | Enable Tomcat access log |
server.tomcat.accesslog.directory | Directory for logs |
server.tomcat.accesslog.pattern | Log format |
server.tomcat.accesslog.prefix | Filename prefix |
server.tomcat.accesslog.suffix | Filename suffix |
Tomcat rotates differently than Undertow. Verify log retention and file sizes.
Performance/threading
| Property | Description |
|---|---|
server.tomcat.max-connections | Max simultaneous connections |
server.tomcat.accept-count | Queue size for incoming connections |
server.tomcat.max-threads | Max request-processing threads |
server.tomcat.min-spare-threads | Minimum 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
| Property | Notes |
|---|---|
server.tomcat.connection-timeout | Defaults 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