5.2.1Upgrading the binaries

 

Smile CDR can be deployed both dockerized, and non-dockerized. The process for upgrading the binaries differs between the deployment methods.

5.2.1.1Binary tarball upgrade

There are several folders which are relevant for updating the binaries on a Smile CDR server:

  • lib/
  • bin/
  • classes/
  • otel/

Within the Smile CDR installation directory, there is a directory called lib that contains all of the binaries for Smile CDR. It is generally possible to simply replace the contents of this directory with the new contents from a release.

The following example shows an in-place upgrade of a single Smile CDR server:

Whenever you are upgrading your Smile CDR installation, you should ensure that you have backups of your Smile CDR server folders (at a minimum, the `lib` directory), as well as a full database backup of the Cluster Manager and FHIR Repository databases (possibly multiple FHIR Repository databases, if you have more than one persistence module configured). You may also need to backup any other file system resources that your system uses, depending on how you have configured your installation. For example, if you are storing any FHIR resources in an external directory, or in a Cloud-based storage location, etc. All of your backups will be needed in the case where you cannot successfully upgrade the server and need to roll back to the pre-upgrade version.

Within the Smile CDR installation directory, there is a directory called lib that contains all the binary code for Smile CDR. It is generally possible to simply replace the contents of this directory with the new contents from a release.

The following example shows an in-place upgrade of a single Smile CDR process:

  1. Stop Smile CDR
cd smilecdr
bin/smilecdr stop
  1. Backup "lib/", "bin/" and "otel/" Directory Contents

Change the following commands to use a backup folder that works for your installation:

cp -R lib /path/to/your/backup/folder
cp -R bin /path/to/your/backup/folder
if [ -d otel ]; then cp -R otel /path/to/your/backup/folder; fi
  1. Backup Your Databases

With Smile CDR shut down, no new data will be entering the system, so this would be the time to perform a full database backup of all your applicable databases.

However, some installations have very large databases and cannot wait for a full backup to take place, so your situation may require taking a different approach. It may be acceptable in this scenario to use the most recent full backup, along with the latest transaction logs, in case you need to restore the database to this point-in-time, just before the Smile CDR upgrade takes place.

The exact instructions for this step will differ, depending on which database you have chosen to use with your installation. Please consult your DBA Team for assistance with ensuring that you have a full database backup to this point in time, which could be used if you decide to rollback this upgrade.

  1. Delete Previous "lib/" Directory Contents, Selected "bin/" Directory Files, and "otel/" Directory Contents
rm lib/*
rm bin/smilecdr
rm bin/smileutil
mv bin/setenv bin/setenv-2025.05.PRE.backup
rm -rf otel/*
  1. Extract the Smile CDR JAR Files
# The following command assumes you are currently in the root of your smilecdr
# installation, and will extract only the lib directory
tar --strip-components=1 -xvf /path/to/smilecdr-2025.05.PRE.tar.gz smilecdr/lib
  1. Extract the Smile CDR Binary Files
# The following command assumes you are currently in the root of your smilecdr
# installation, and will extract only the bin directory
tar --strip-components=1 -xvf /path/to/smilecdr-2025.05.PRE.tar.gz smilecdr/bin
  1. Extract the Smile CDR OpenTelemetry Files
# The following command assumes you are currently in the root of your smilecdr
# installation, and will extract only the otel directory
tar --strip-components=1 -xvf /path/to/smilecdr-2025.05.PRE.tar.gz smilecdr/otel
  1. Resolve bin/setenv Differences

In a previous step, we extracted a new setenv file and placed it in your bin/ folder, but some customers have made changes to that file to optimize the performance of Smile CDR in their environment. Therefore, you will need to examine the backup version of that file (bin/setenv-2025.05.PRE.backup), compare it to the new one (bin/setenv) and re-apply any manual changes that may have been made in previous versions of Smile CDR.

You can compare these files using the following command:

diff bin/setenv bin/setenv-2025.05.PRE.backup
  1. Check the cdr-config-Master.properties File For New Configuration Settings

Occasionally, we introduce a new configuration setting or module and it will be added to the default classes/cdr-config-Master.properties file in the new release. Users may choose to manage this file themselves, changing some of the default values to suit their needs, and sometimes using it in Properties Mode to force Smile CDR to use the configured values exclusively from the properties file. If this file is missing some new configuration value, it may not perform properly or it may cause problems during startup.

It is important to compare the old and new properties files to see whether any new configuration settings have been added, and add them to your local system as well, to remain up-to-date.

The process of adding new configuration properties to your local system will differ based on your server's node.propertysource configuration setting. Note that if you do not have this property in your configuration file, it will use the default value of DATABASE. More information is available here: Module Property Source

If you are currently using DATABASE mode for your properties:

  • Any new configuration values will have to be set using your server's Web Admin Console (except for the clustermgr module settings)
  • After applying your changes via the Web Admin Console, you can extract your System Configuration under the Help menu item and verify that the settings are correct by examining the included cdr-config-Master.properties file found inside your downloaded ZIP file

If you are NOT using DATABASE mode for your properties:

  • Any new configuration values will have to be put into your cdr-config-Master.properties file since ALL configuration properties will be read from this file each time the server starts up
  • You can verify your configuration settings using the Web Admin Console once the server is up and running

With all of this finished, we can now move on to migrating your database, via whichever database migration mechanism you have selected.