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.
If you are upgrading from old versions, please be aware of the following changes.
Search engine of DB Web Services is replaced with a new version. It requires multiple adjustments.
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:
|
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 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 distributed caching mechanism is removed from DB Web Services. Hazelcast configuration XML can be removed.
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.
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.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.
JChem Microservices requires Java 17 or newer.
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.