Skip to main content

I’m trying to update FME Flow from version 2023.1 to 2024.2. Upgrading In Place, On the Same Machine.

I want to use the encryption key from the previous FME Flow installation so I could restore the previous configuration in the new installation. This means I also want to update my FME Flow Database password in fmeDatabaseConfig.txt.

Before starting the newly installed FME Flow, the encryptConfigSetting.sh script works and outputs the password in the format of DB_PASSWORD=fme_enc:xxx.

After I’ve started the FME Flow, the script does not work anymore:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/digest/DigestUtils
        at COM.safe.fmeserver.encryption.FMEEncryptionKeyFileUtils.computeChecksum(FMEEncryptionKeyFileUtils.java:22)
        at COM.safe.fmeserver.encryption.FMEEncryptionKeyAccessorFile.calculateChecksum(FMEEncryptionKeyAccessorFile.java:86)
        at COM.safe.fmeserver.encryption.FMEEncryptionKeyAccessorFile.loadKeys(FMEEncryptionKeyAccessorFile.java:159)
        at COM.safe.fmeserver.encryption.FMEEncryptionKeyAccessorFile.<init>(FMEEncryptionKeyAccessorFile.java:74)
        at COM.safe.fmeserver.encryption.FMEEncryptionKeyAccessorFile.<init>(FMEEncryptionKeyAccessorFile.java:54)
        at COM.safe.installer.EncryptConfigSetting.main(EncryptConfigSetting.java:41)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.digest.DigestUtils
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)

        ... 6 more

Also in the previous installation encryptConfigSetting.sh script worked and outputted the password in the format of DB_PASSWORD=fme_enc2:xxx.

What could be the issue? Could the startup of FME Flow change some java paths, or could it be something related to user permissions?

Hi ​@jakes3,

 

This is a recently discovered bug, a fix is scheduled for 2025.0. There is a third hidden parameter that references the configuration file. The database settings were recently moved into fmeDatabaseConfig.txt but the script is still pointing to the old location. You’ll need to add the third parameter in like so:   .\encryptConfigSetting.ps1 DB_PASSWORD yourPassword 'C:\Program Files\FMEFlow\Server\fmeDatabaseConfig.txt

 

That should fix the issue!

-Dylan


This seems to do the trick, thank you!
This way, the script outputs the password in the format of DB_PASSWORD=fme_enc:xxx.

 

I’m wondering, what is the difference between fme_enc:xxx and fme_enc2:xxx that the script of my previous installation would generate? 

 

Previous installation had DB_PASSWORD=fme_enc:xxx in fmeDatabaseConfig.txt.

The script of the previous installation would generate a password as fme_enc2:xxx.

Both passwords worked when used in fmeDatabaseConfig.txt. Why does the script now generate the password as fme_enc:xxx and not as fme_enc2:xxx?


Reply