Upgrade Guide

    Upgrade process

    Upgrade is the same process as installation.

    The content of the config folders and the data folder of the DB Web Services module will not be overwritten.

    However, special care must be taken in case of DB Web Services.

    If the data structure version number of the new DB Web Services is higher than that of the existing old DB Web Services, the updateMode configuration parameter controls how the upgrade will be performed when DB Web Services service is started:

    updateMode: EXIT|DROP|REINDEX

    The available options are as follows.

    • EXIT: the service start process exits if any change is detected. Afterwards updateMode parameter must be set to DROP or REINDEX to start, or you should migrate back to the previous version.

    • DROP: the existing table and index data will be dropped.

    • REINDEX: the existing tables will be reindexed.

    Upgrading from old versions

    If you are upgrading from old versions, please be aware of the following changes.

    Since 25.3.0

    Search engine of DB Web Services is replaced with a new version. It requires multiple adjustments.

    Application properties update

    Application properties of DB Web Services, Task Manager and Gateway modules need to be aligned according to the tables below. Unless explicitly stated, you do not have to modify the value of the properties, only their names.

    DB Web Services

    application.properties Necessary change
    if you have properties with both of these prefixes:
    • com.chemaxon.zetor.settings.crdb.
    • com.chemaxon.zetor.settings.gcrdb.
    Check the value of the com.chemaxon.zetor.settings.scheme property. That property specifies which of these prefixes were actually used by the application. Change the properties with that prefix according to the following rows in this table, and remove the ones with the other prefix.
    com.chemaxon.zetor.settings.scheme Rename to chemaxon.microservices.db.migration.scheme
    com.chemaxon.zetor.settings.indexDir Rename to chemaxon.microservices.db.datasource.h2.dir
    com.chemaxon.zetor.settings.crdb.isSingleTable
    or
    com.chemaxon.zetor.settings.gcrdb.isSingleTable
    Rename to chemaxon.microservices.db.migration.is-single-table
    com.chemaxon.zetor.settings.crdb.singleTableName
    or
    com.chemaxon.zetor.settings.gcrdb.singleTableName
    Rename to chemaxon.microservices.db.migration.single-table-name
    com.chemaxon.zetor.settings.crdb.sqlBuilderProvider
    or
    com.chemaxon.zetor.settings.gcrdb.sqlBuilderProvider
    Rename to chemaxon.microservices.db.datasource.dialect
    com.chemaxon.zetor.settings.crdb.jdbcUrl
    or
    com.chemaxon.zetor.settings.gcrdb.jdbcUrl
    Rename to chemaxon.microservices.db.datasource.url
    com.chemaxon.zetor.settings.crdb.user
    or
    com.chemaxon.zetor.settings.gcrdb.user
    Rename to chemaxon.microservices.db.datasource.username
    com.chemaxon.zetor.settings.crdb.password
    or
    com.chemaxon.zetor.settings.gcrdb.password
    Rename to chemaxon.microservices.db.datasource.password
    com.chemaxon.zetor.types* Rename to chemaxon.microservices.db.types*
    zetor.indexing.timeoutDifferenceInMilliseconds Rename to chemaxon.microservices.db.timeout.stop-earlier
    search.wallTimeLimitSeconds Remove
    any other properties which start with com.chemaxon.zetor.settings. Remove
    any other properties which start with com.chemaxon.zetor.additional. Remove
    com.chemaxon.webservices.db.import_export.dbExportStrategy Rename to chemaxon.microservices.db.import-export.strategy
    com.chemaxon.webservices.db.import_export.s3BuckeBasetUrl Rename to chemaxon.microservices.db.import-export.s3-bucket-base-url
    com.chemaxon.webservices.db.import_export.dir Rename to chemaxon.microservices.db.import-export.dir
    com.chemaxon.webservices.db.import_export.importBatchSize Rename to chemaxon.microservices.db.import-export.import-batch-size
    cloud.aws.region.static Rename to spring.cloud.aws.region.static
    cloud.aws.region.auto Remove
    cloud.aws.stack.auto Remove
    spring.cloud.gateway.httpclient.response-timeout Rename to spring.cloud.gateway.server.webflux.httpclient.response-timeout
    initOnStart Only INIT and AUTO values are supported. OPEN and OPEN_OR_INIT_ONLY are now deprecated and work as AUTO

    Task Manager

    application.properties Necessary change
    com.chemaxon.webservices.db.import.dbImportStrategy Rename to chemaxon.microservices.db.import-export.strategy
    com.chemaxon.webservices.db.import.s3BuckeBasetUrl Rename to chemaxon.microservices.db.import-export.s3-bucket-base-url
    com.chemaxon.webservices.db.import_export.dir Rename to chemaxon.microservices.db.import-export.dir
    com.chemaxon.webservices.db.import_export.importBatchSize Rename to chemaxon.microservices.db.import-export.import-batch-size

    Gateway

    application.properties Necessary change
    spring.cloud.gateway.httpclient.response-timeout Rename to spring.cloud.gateway.server.webflux.httpclient.response-timeout
    spring.cloud.gateway.httpclient.connect-timeout Rename to spring.cloud.gateway.server.webflux.httpclient.connect-timeout
    spring.cloud.gateway.httpclient.pool.type Rename to spring.cloud.gateway.server.webflux.httpclient.pool.type
    spring.cloud.gateway.httpclient.pool.max-connections Rename to spring.cloud.gateway.server.webflux.httpclient.pool.max-connections
    spring.cloud.gateway.httpclient.pool.acquire-timeout Rename to spring.cloud.gateway.server.webflux.httpclient.pool.acquire-timeout

    Resource requirement changes

    Resource requirement of DB Web Services has been changed. JChem Engines cache and memory calculator can be used to calculate memory requirements and necessary config changes.

    Hazelcast removal

    Hazelcast distributed caching mechanism is removed from DB Web Services. Hazelcast configuration XML can be removed.

    Config service connection change

    spring.config.import property is updated in application.properties:

    spring.config.import=optional:configserver:${CONFIG_SERVER_URI:http\://localhost\:8888}

    In standalone mode it is not necessary to remove spring.config.import anymore only spring.cloud.config.enabled should be set to false.

    Timeout handling changes

    There are multiple changes regarding timeout handling. Details can be found here.

    Important notes:

    • /rest-v1/db/additional/upload and /rest-v1/db/additional/{tableName}/batchInsert endpoints stop inserting structures when a timeout occurs and do not finish process in the background.
    • New parameters and attributes should be used to manage timeout situation when inserting a large data set.

    Tautomerization handling mode naming changes

    Following tautomer handling mode naming changes are made in molecule types.

    Original tautomer handling mode name New tautomer handling mode name
    OFF OFF
    GENERIC GENERIC
    CANONIC_GENERIC_HYBRID and
    NORMAL_CANONIC_GENERIC_HYBRID
    NORMAL_CANONICAL_GENERIC_HYBRID
    NORMAL_CANONIC_NORMAL_GENERIC_HYBRID NORMAL_CANONICAL_NORMAL_GENERIC_HYBRID

    Original names can still be used in molecule types of application.properties but /rest-v1/moleculeType endpoint converts original names and return with new versions.

    Since 23.4

    JChem Microservices requires Java 17 or newer.

    Since 22.9

    Standalone application mode of all modules is configured differently.

    up to version 22.2.0

    spring.cloud.config.failFast=false and spring.cloud.config.enabled=false in bootstrap.properties file

    from version 22.9.0

    set spring.cloud.config.enabled=false and comment out line spring.config.import= in application.properties file.