Skip to main content

Introduction

This guide outlines the steps to take and points to check when upgrading your priint-bpm to a newer version.

Updating to version 4.8 from earlier versions​

If you are updating from a much older version, please keep in mind that priint-bpm 4.8 requires JVM 21 to run. Make sure such JVM is installed and used in your priint-bpm startup scripts.

Adjust the logging config​

priint-bpm uses logback for logging. You can configure it as described here.

Adjust and clean up the properties yaml​

Some properties used in previous versions are no longer used nor valid. Be sure to get rid of the ones that are no longer supported as it will ease future adjustments and troubleshooting. A list of properties we intend admins to modify is detailed below.

We highly recommend running priint-bpm with --spring.config.additional-location=file:"application.yml", as outlined in the installation descriptions. That way you only need to set things in your application.yml that differ from default values.

warning

Version 4.8 upgrades our BPMS engine. New versions require transaction isolation levels to be set in JDBC connection strings if you are using MySQL databases. An example is given below, notice the sessionVariables=transaction_isolation='READ-COMMITTED' declaration.

open-in-view property also needs to be set.

To make things easier, here is a complete set of supported properties that you can configure:

server:
port: ${SERVER_PORT:8888}

#logging:
# config: /logback.xml

management:
endpoint:
health:
show-details: ALWAYS
probes:
enabled: true
prometheus:
enabled: true
health:
livenessstate:
enabled: true
readinessstate:
enabled: true
endpoints:
web.exposure.include: health, prometheus

spring:
jpa:
open-in-view: false
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
datasource:
# for Oracle: jdbc:oracle:thin:${DB_USERNAME:priintadmin}/${DB_PASSWORD:Comet4}@${DB_ADDR:localhost}:${DB_PORT:1521}:orcl
# for MS SQL Server: jdbc:sqlserver://${DB_ADDR:localhost}:${DB_PORT:1433};databaseName=priint_420_beta_camunda
# for PostgreSQL: jdbc:postgresql://${DB_ADDR:localhost}:${DB_PORT:5432}/priint_bpm?loggerLevel=OFF
url: jdbc:mysql://${DB_ADDR:localhost}:${DB_PORT:43306}/priint_bpm?serverTimezone=Europe/Berlin&sessionVariables=transaction_isolation='READ-COMMITTED'
# for Oracle: oracle.jdbc.driver.OracleDriver
# for MS SQL Server: com.microsoft.sqlserver.jdbc.SQLServerDriver
# for PostgreSQL: org.postgresql.Driver
driver-class-name: com.mysql.cj.jdbc.Driver
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
liquibase:
database-change-log-lock-table: PRIINT_BPM_LIQUIBASE_LOCK
database-change-log-table: PRIINT_BPM_LIQUIBASE_LOG
change-log: classpath:liquibase-changeLog.xml
enabled: true

camunda.bpm:
generic-properties:
properties:
historyTimeToLive: P7D
generate-unique-process-engine-name: ${UNIQUE_PROCESS_ENGINE_NAME:false}
generate-unique-process-application-name: ${UNIQUE_PROCESS_APPLICATION_NAME:false}
authorization.enabled: true
job-execution.enabled: true
database.schema-update: true
webapp:
application-path: ${CIB7_WEBAPP_PATH:/webapp}
legacy-application-path: ${CAMUNDA_WEBAPP_PATH:/camunda}
metrics:
enabled: true
db-reporter-activate: true
history-level: audit

cibseven:
webclient:
engineRest:
# Default webclient config points to localhost:8080; keep it aligned with this app port.
url: ${CIB7_ENGINE_REST_URL:http://localhost:${SERVER_PORT:8888}}
path: ${CIB7_ENGINE_REST_PATH:/engine-rest}
authentication:
jwtSecret: best-not-overwrite-it-ask-priint-team-for this-if-you-need-it
tokenValidMinutes: 20
tokenProlongMinutes: 60

planner.engine:
url: http://localhost:40080/PlannerEngine/api/
# The user added here needs to be assigned to or have access to projects this priint-bpm 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: examplePa$$word

A suggested subset of parameters to actually set would be the URLs, driver classes and credentials. The rest can remain hidden with the use of --spring.config.additional-location=file:"application.yml" startup parameter.

During migration, make sure that the history-level configured in application.yml matches the value already stored in the database.

If the act_ge_property table contains a record with name_ = 'historyLevel' and its value does not match the history-level configured in application.yml, priint-bpm will fail to start with an error similar to the following:

org.camunda.bpm.engine.ProcessEngineException: historyLevel mismatch: configuration says HistoryLevelAudit(name=audit, id=2) and database says HistoryLevelFull(name=full, id=3)

In this case, you must either adjust the history-level in application.yml so that it matches the database value, or update the database entry so that it matches the value configured in application.yml.

The values in application.yml correspond to the numeric values in the database as follows: NONE = 0, ACTIVITY = 1, AUDIT = 2, FULL = 3.

For example, if your target configuration is AUDIT, you can update the database with the following SQL statement:

update act_ge_property
set value_ = 2
where name_ = 'historyLevel';

Update the rendering-service and the Rendering Servers​

Make sure that the Comet plugins installed with Adobe InDesign Server® are new (version 5.0 is a must). Their API has 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 embedded priint:pdf renderer, be sure to update all Comet pdf native libraries to the latest revision of version 5.0.

If you are using stand-alone/containerized priint:pdf renderer, fetch the latest image of it.

Update the application itself​

Make sure you have the latest revision of 4.8 priint-bpm.jar. Adjust any system services and scripts so that they point to a new app version and are named with version 4.8 to avoid future confusion.

Run and test the app. If you encounter any problems, please reach out to priint support team for additional help.