Introduction
This guide outlines the steps to take and points to check when upgrading your rendering-service to a newer version.
Updating to version 4.6 from earlier versions
If you are updating from a much older version, please keep in mind that rendering-service 4.6 requires JVM 17 to run. Make sure such JVM is installed and used in your rendering-service startup scripts.
Be sure to migrate the documents and files to object-storage as this version of the rendering-service relies on files being hosted there.
Adjust the worker configuration JSON
We strongly recommend setting the lockDuration property in your worker configs to 60000. The latest version of our rendering-service is automatically extending camunda locks if the task it is working on takes longer. Unless you really need to change that initial value, the 1-minute default should do fine now.
Adjust the logging config
Note that our rendering-service uses logback for logging. You can configure it as described here.
priint:pdf renderer setups
Each priint:pdf renderer Instance can output its logs separately. You obtain this by configuring separate logger and appender pairs, like so:
<appender name="PDF-RENDERER-INSTANCE-1" class="ch.qos.logback.core.FileAppender">
<file>C:\comet\log\pdf-renderer-1.log</file>
<encoder>
<pattern>%d %p %c{1} [%t] %m%n</pattern>
</encoder>
</appender>
<logger name="com.priint.comet.renderer.pdf.Instance1" level="INFO" additivity="false">
<appender-ref ref="PDF-RENDERER-INSTANCE-1"/>
</logger>
Adobe InDesign Server® setups
There used to be a way of configuring an additional appender and logger in the rendering-service logback file that would get sent over to InDesign Instances. Please remove those entries from your rendering-service logback config files. We recommend setting the logging configuration for InDesign Instance directly at that Instance (with the startup parameters). If controlling those setups from the rendering-service is really needed, you can set the additional yaml parameters in the rendering-service, like this:
priint:
indesign:
# This whole section is only used if working with Adobe InDesign Server, not the PDF Renderer.
# The following allows the rendering-service to override logging configuration of the rendering-server when connecting to each instance.
# All logging properties below need to be set and non-blank (even if the threshold_level is set to OFF)
# for the configuration to be considered complete and sent over to the rendering-server.
logging:
# Minimal log command level that should make it to the log files. Type OFF to set InDesign Server logging off.
# Other allowed values include: ERROR, WARN, INFO, DEBUG, TRACE.
threshold_level: TRACE
# File path perceived by the rendering-server where the log files should be placed.
# Use $INSTANCE_NAME as a placeholder for instance ids, eg. C:/comet/log/testlog-$INSTANCE_NAME.log
file_pattern: C:/comet/log/testlog-$INSTANCE_NAME.log
# Logback style encoder-pattern to format each log entry, eg. "%d %p %c{1} [%t] %m%n"
message_pattern: "%d %p %c{1} [%t] %m%n"
Adjust and clean up the properties yaml
A lot of properties are no longer used or valid, especially in the priint/rendering section. Be sure to get rid of the ones that are no longer supported as it will ease future adjustments and troubleshooting. To make things easier, here is a complete set of supported properties that you can configure:
server:
# the port on which this application will wait for incoming web traffic
port: 8880
management:
metrics:
distribution:
percentiles-histogram:
"rendering.service.timer": true
# minimum-expected-value:
# "rendering.service.timer": 100
# maximum-expected-value:
# "rendering.service.timer": 10000
endpoint:
health:
show-details: ALWAYS
probes:
enabled: true
health:
livenessstate:
enabled: true
readinessstate:
enabled: true
endpoints:
web.exposure.include: health, prometheus
priint:
app-name: "renderingservice1"
comet:
bridge:
# Comet-bridge url/user/password are used to make the rendering-server (PDF Renderer or Adobe InDesign Server) connect to the pubserver.
# Please remember that the URL provided here needs to be resolvable by the rendering-server from its machine!
url: http://localhost:40082/CometBridge/Comet3Service
user: admin
password: somePassw0rd
# List of comma-separated project identifiers. Provide all projects you expect this rendering-service to process tasks for.
# This list is used on application startup to connect to comet bridge on pubserver. A connection is created for each project.
# That way you can get instant feedback if the connection fails, the rendering-service does not need to wait for a first task to arrive.
# Warnings are issued to logs if tasks from projects not listed here arrive as the application tries to recover and provide
# additional connections in such cases. It is best however to list the projects here in advance and keep this list up-to-date.
projects: DefaultProject,someOtherProject
planner-engine:
url: http://localhost:40080/PlannerEngine/api
# The user added here needs to be assigned to or have access to projects this rendering-service will process. Make sure you either
# explicitly configure this account to take part in projects or grant it a role that enables it to access any project.
user: admin
password: somePlannerEnginePassw0rd
# how often will the rendering-service report to pubserver
heartbeat-idle-millis: 60000
heartbeat-busy-millis: 5000
# Settings below control the HTTP client used to connect to the planner-engine. Default timeouts are 30s each.
connect-timeout-millis: 30000
read-timeout-millis: 30000
write-timeout-millis: 30000
objectstore:
minio:
endpoint: http://127.0.0.1:9000
access-key: minioadmin
secret-key: someMinioPassw0rd
# region to use for configuring the S3-compatible-service client
region: us-east-1
camunda:
externalclient:
base-url: http://localhost:8888/engine-rest/
password: someCamundaPassw0rd
user: admin
backoff-time: 600
# Leave empty to handle all processes. Provide a comma-separated list of process keys to process only those processes.
handled-processes:
pdfrenderer:
# this whole section is only needed if working with a PDF Renderer, not the Adobe InDesign Server
pdfr_native_library_path: C:/PubServer460/rendering-worker-service/native/win
# config folder with pdf profiles, color profiles and licences
pdfr_config_path: C:/PubServer460/rendering-worker-service/config
# this is where the rendering service jar is placed
installation_path: C:/PubServer460/rendering-worker-service
indesign:
# This whole section is only used if working with Adobe InDesign Server, not the PDF Renderer.
# The following allows the rendering-service to override logging configuration of the rendering-server when connecting to each instance.
# All logging properties below need to be set and non-blank (even if the threshold_level is set to OFF)
# for the configuration to be considered complete and sent over to the rendering-server.
logging:
# Minimal log command level that should make it to the log files. Type OFF to set InDesign Server logging off.
# Other allowed values include: ERROR, WARN, INFO, DEBUG, TRACE.
threshold_level: TRACE
# File path perceived by the rendering-server where the log files should be placed.
# Use $INSTANCE_NAME as a placeholder for instance ids, eg. C:/comet/log/testlog-$INSTANCE_NAME.log
file_pattern: C:/comet/log/testlog-$INSTANCE_NAME.log
# Logback style encoder-pattern to format each log entry, eg. "%d %p %c{1} [%t] %m%n"
message_pattern: "%d %p %c{1} [%t] %m%n"
rendering:
# This determines the resolution of preview files generated along with document metadata during rendering
document_preview_resolution: 120.0
# This is the time needed for Adobe InDesign Server lock files to disappear once a document gets unlocked
document_closing_timeout_seconds: 10
# The auto-conversion flags can be either true or false (and are treated as true if they are not provided).
# If false, no conversion will take place when trying to open a document.
# This is used for regular document opening:
rendered_document_auto_conversion: true
# Another auto-conversion flag. This determines, if auto-conversion should be turned on for grid element preview document openings.
preview_document_template_auto_conversion: true
spring:
profiles:
# set to indesign-server if working with Adobe InDesign Server, pdf-renderer otherwise
active: pdf-renderer
Update the Rendering Servers
Make sure that the Comet plugins installed with Adobe InDesign Server® are new (version 5.0 is a must). Their API changed and the rendering-service will not be able to fully communicate with them unless you use this new version.
If, on the other hand, you are using priint:pdf renderer, be sure to update all Comet pdf native libraries to the latest revision of version 5.0.
Update the application itself
Make sure you have the latest version of 4.6 rendering-service.jar.
Adjust any system services and scripts so that they point to a new app version and are named with version 4.6 to avoid future confusion.
Run and test the app. It should be able to process camunda tasks now. If you enounter any problems, please reach out to priint support team for additional help.