From the series "random things that happen", and hopefully of use to someone else, these are the lessons from updating one system from 12.2.0+hf2 to 12.2.1-2019-02-02.
This was an old-style update, since we don't do ZDU for the time being. The manual was found to be lacking severely in clarity. The chapter on Hotfix updates (whether applicable here or not) seems to have gotten truncated between 12.1 and 12.2 a lot (effectively improving it), but overall the procedures remains very unclear. After being severely puzzled and some fruitless discussion, we had to ditch the manual and went with a plain "shut down, update files, update db and bring it back up" approach.
Some small findings:
- when ucybdbld says
U00038127 Loading in upgrade mode is not possible while the system is running.
after shutting down the system, this means you needed to stop all clients. You do not need to empty EH (i.e. stop all activities), although Automic has recommended that in the past. But do stop all clients BEFORE you bring down the system or you won't be able to update the database. - it appears, at least for us, the 12.2.0 SQL agent in Service Mode is not compatible with 12.2.1. We needed to update to the latest SQL agent to get it to register with the engine after the update.
The rest was smooth sailing.
If you do string manipulation with Automic Script, you may also want to know that "STR_SUBSTITUTE" works differently now. While there is a brief changelog entry (01103382), this may not be very obvious.
The third parameter, if left blank, used to default to en empty string. Many users used this to remove substrings from a strings, such as in filenames:
:set &basename# = STR_SUBSTITUTE("payments.txt", ".txt")
In the old releases, this would result in the string "payments". In the new release, the third parameter, if left blank, defaults to a "space" character. So in 12.2.1. and beyond, the result is now "payments ".
While this does serve to bring the script behavior in line with the documentation, we are struggling to understand why the decision was to change the way the function works, thus needlessly breaking backwards compatibility, over adjusting the manual instead. Besides breaking jobs, this also leads to an unintuitive situation, because the amount of script languages that treat empty parameters as an explicit space (or "blank") vs. those that threat them as an empty string, nil or null value is probably negligible.