Necessary Actions When Updating/Upgrading to 4.12

Necessary Actions When Updating/Upgrading

This page describes the actions that you must manually execute when updating from version x.y.z to a newer version. It also lists things that you must pay special attention to. An update to a new version that skips some previous versions is possible and doesn’t require updating to each version in between. However, in this case you must carry out all the actions from your previous version to the target version in the order listed here.

  • 2018-04-25 --> 4.0

    • You can only upgrade from version 2018-04-25. 
    • Before upgrading to version 4.0, you must complete the following steps. 
      • You must update to version 2018-04-25. Important information about installing updates in 3.x can be found here.
      • You must complete the migration of the schema and data.
  • 4.0 --> 4.1

    • In the file <service-manager>\config\servicewatcher-sw.yml add the following line after the line starting with "eureka.instance.preferIpAddress": eureka.instance.prefer-ip-address: true
    • Replace the contents of <service-manager>\apps\structureservice with the contents of the structureservice-4.0.x.zip file from the setups folder


  • 4.1 --> 4.2

    • Replace the contents of <service-manager>\apps\structureservice with the contents of the structureservice-4.0.x.zip file from the setups folder


  • 4.2 --> 4.3

    • Replace the contents of <service-manager>\apps\structureservice with the contents of the structureservice-4.1.x.zip file from the setups folder


  • 4.3 --> 4.5

    • Replace the contents of <service-manager>\apps\structureservice with the contents of the structureservice-4.1.x.zip file from the setups folder

    • If you have changed the default location of the renditiion-plus log files, you will have to set these settings after the update of rendition-plus to version 4.0.0 again.
    • If there are problems with process model defaults
      From this version a clean installation of enaio ensures that the default model id actually exists in the model group (this property is ensured at the database level). Previously, this was not checked and you could store a default model id of a model that no longer exists. This led to errors in the visualization of management studio.
      Since an automated update action is a bit risky, it is not necessary to create this "Foreign Key Constraint" automatically for existing systems. However, a warning is displayed in the management studio that there are differences in the definition and the Database. In order to provide the foreign key constraint in an existing database, an administrator can add the constraint (from the install.sql). If that works for the database everything is ok, if not it has to be looked up in detail, which data are inconsistent. In this case you would first have to remove the faulty DefaultModelIds and then install the constraint.


  • 4.5 --> 4.6

    • Replace the contents of <service-manager>\apps\structureservice with the contents of the structureservice-4.2.x.zip file from the setups folder

    • With this version the "icas-provideradapter" was replaced by the "archiveservice". If you were using the icas-provideradapter service the following steps need to be done to adapt the configuration to the new archiveservice:

      • In the file <service-manager>\config\servicewatcher-sw.yml change the name of the icas-provideradapter section to archiveservice.
        Also change the path Parameter from "${appBase}/icas-provideradapter/icas-provideradapter-app.jar" to "${appBase}/archiveservice/archiveservice-app.jar"

      • In the folder <service-manager>\config rename the file icas-provideradapter-prod.yml to archive-prod.yml.
        Then edit the file and add a new top-level element "archives:" to the yml-structure. It should look like the following example afterwards (pay attention to the indentation - it should be 2 spaces for each level):

        archive-prod.yml
        archives:
          iternity:
            profiles:
              default:
                userName: userName
                userPassword: password
                endpoint: https://127.0.0.1/iTernity/iTernity.asmx
                cscMode: SNSN  
      • Start the service-manager and navigate to the media-configuration in the management-studio as shown in the below pictures. Make sure that the archive-set that is used for the icas archive does not use the old servicename within the service-url. If it does, change it to use the new servicename or the ip-address.


  • 4.6 --> 4.8

    • Replace the contents of <service-manager>\apps\structureservice with the contents of the structureservice-4.3.x.zip file from the setups folder


  • 4.8 --> 4.10

    • Replace the contents of <service-manager>\apps\structureservice with the contents of the structureservice-4.4.x.zip file from the setups folder

    • In the gateway route configuration in <service-manager>\config\gateway-prod.yml, the status service route has to be added.

      - name: 'status'
        url: 'http://status/api/v1'
    • A new microservice "Status-Service" was introduced in this release. The setup will create the service-files in the <service-manager>\apps\ folder. To enable it add the following lines to the <service-manager>\config\service-watcher.yml file:

      - name: statusservice
        type: microservice
        profiles: prod,cloud,mq
        instances: 1
        memory: 128M
        port: 7470
        path: ${appBase}/statusservice/statusservice-app.jar


  • 4.10 --> 4.12

    • With this version all setups switch from Oracle JDK to OpenJDK. Please make sure to always copy and use the jdk/jre zip files delivered with this release.

    • Please run the elasticsearch_hotfix.exe Setup to update elasticsearch (for OpenJDK). (The elasticsearch_setup.exe will only work for new installations.)
    • Replace the contents of <service-manager>\apps\structureservice with the contents of the structureservice-4.4.x.zip file from the setups folder

    • Rendition-Plus was updated to use OpenJDK 1.8.0u181. It is not possible to update older versions, instead you have to backup data and configuration, uninstall version < 4.1.0 and install 4.1.0 by following these steps:
      1. Backup all configuration files:

        • <rendition-plus>\conf\logging.properties

        • <rendition-plus>\webapps\renditionplus\WEB-INF\classes\config\*

        • <rendition-plus>\webapps\renditionplus\WEB-INF\classes\log4j.properties

        • <rendition-plus>\webapps\osrenditioncache\WEB-INF\classes\config\*

        • <rendition-plus>\webapps\osrenditioncache\WEB-INF\classes\log4j.properties.
      2. Backup all changes made via the <rendition-plus>\bin\enaio_red_rendition-plusw.exe.

      3. Backup custom converters and their configuration from <rendition-plus>\renditionplus\bin\custom\*
      4. Backup the data directory containing cache,db,jobs,temp folders if it is located inside the rendition-plus installation directory
      5. Uninstall the existing rendition-plus installation. 

      6. Install the new rendition-plus version (>= 4.1.0) to the same path as before.

      7. Restore the backed up configurations, custom convertes and the data folder (if it applies)
    • A new JVM option needs to be added to the dms-service by the following steps:
      1. Open the dms-service-wrapper configuration GUI by double clicking <dms-service>\bin\enaio_red_dms-servicew.exe
      2. Open the "Java" tab
      3. Add the following line to the end of the "Java Options":
        • -Djdk.crypto.KeyAgreement.legacyKDF=true
      4. Acknowledge with "OK"
    • A new JVM option needs to be added to the enterprise-manager by the following steps:
      1. Edit the <enterprise-manager>\launcher.cfg file
      2. Add the following option in line 2 before " -splash:" 
        • -Djdk.crypto.KeyAgreement.legacyKDF=true
    • Edit <elasticsearch>\config\elasticsearch.yml and add
      "script.max_compilations_per_minute": 300
      as a new line. Then (re)start elasticsearch.

    • The following changes where made to the client-side formscript api. Please update your scripts accordingly: 
      • The syntax for resetting field error has been changed from 'delete scope.model.fieldname.error' to 'model.fieldname.error = null' 
      • The user settings are available via scope.api.session.getuser().attribute now
      • New technical processname convention: Now only characters that cause no problem in javascripts are allowed. Therefore your processes may have to be updated to correct technical names. Let all processes with old convention be finished before updating.