Automatic Updates

Automatic server updates are currently available for use in cases where there is a single installation of the software on the server. Installation is designed to occur during off-hours periods after all employees have logged off but before any nighttime maintenance is performed such as End of Day and database backups. This topic does not apply to our cloud-hosted customers. Cloud-hosted customers are incrementally installed by our hosting team after release.

Notice

On-premise customers who use automatic upgrades should be aware that we have decided to incrementally roll-out software updates with release 12.10.11 and later. This means that even if your company normally installs the latest update right away (no delay days), there now may be a delay of several days before you receive the release. Each day after release, we will incrementally increase the number of downloads permitted.

Why are we doing this? There are a number of reasons. One concern is the large number of on-premise customers who upgrade immediately after release. Secondly, we used to reserve large feature and enhancements for a yearly major update; however, updates throughout the year can now contain significant changes. Just to be safe, we want to minimize the impact of any possible issues that might arise after release.

Automatic upgrades were initially restricted to be used on only non-terminal services sites but recent changes have allowed them to be deployed with Remote Desktop Services (aka. Terminal Services) sites also. For these cases, support personnel need to setup an automated start of the client software on the Remote Desktop Services machine via a Windows scheduled task. As of December 2017, automatic upgrades are currently running on approximately 180 on-premise servers.

Setup

The setup of automatic upgrades requires support personnel involvement. Automatic update options are located on the Setup and Software tab of the Parameters form (Maintenance, Database menu). The "Enable Auto Upgrades" check box indicates whether automatic updates have been enabled.

Main Menu > Maintenance > Database > Parameters, Setup and Software Tab

Software Parameters: Automated Updates

Two (2) additional parameters are provided related to automatic updates:

Wait Days

"Wait days" is the number of days after a new version has been released before the software update should be installed. For example, if a new version is made available on a Monday and the option for wait days is set to 3 then the upgrade will take place on Thursday of that week. Given this same example, but the wait days is set to four (4), the upgrade will not take place until the following Sunday (automatic upgrades don't currently run on Fridays or Saturdays). In addition to these restrictions, we don't install automated updates on dates where the billing process is scheduled.

Start At (Time)

The "start at" time is the time each day to check for and install any upgrades for the Spruce system. This time is currently restricted to the period between 10:00 PM and 7:00 AM (based on the server's time zone).

ECi Support personnel will monitor your first automatic update to ensure that there aren't any permissions or other issues that would cause a problem going forward.

Updates requiring Manual Installation

Occasionally, updates need to be installed manually. We set a flag on releases indicating whether they allow automatic updates. Yearly major (full) releases, usually available in January of each year, must be installed manually, for example. If for some reason, a release requires manual installation, a message is sent to the system administrator the following morning as notification.

Automated_Update_ManualReqdMessage

Pre-check Process

Each day, at the time specified in Parameters, a series of checks are made by services to see if an automatic upgrade is required. These checks and the download of the installer are managed by ECI Software Solutions, Inc. Services. First, the latest update version is retrieved from a remote database. For companies who are beta sites, we retrieve the current beta version.

1. The update version is compared with your version of the Spruce software.

2. If the versions match, no update is needed. In this case, the automated upgrade process stops and an entry is made in a status table on the database that the Spruce software is up-to-date.

3.Otherwise, we verify with the remote database to see if the newer version is enabled for download. We disable a release during the time we are posting new releases as well as when a problem is found after release and the R&D department determines that a version should not be installed until a patch is made. If the update has been disabled, the automated upgrade process stops and an entry is made in the status table indicating that the update is disabled.

4.At this point, we check to see if automated upgrades are allowed for the update. As noted previously, there are situations where a manual installation is required (such as the yearly major release). If the version does not automated updates, the process stops and an entry is made in the status table indicating that automated updates are not allowed for the current version. A notification message is sent to the system administrator user notifying them that the release requires manual installation.

5.If your company is on support hold (according to our licensing database), automatic updates will be prevented.

6.If the system parameter "Bypass Suspend Trans Check on S/W Upgrade" (SPUpgradeIgnoreSuspends) has been set, we won't prevent updates when suspended transactions exist; however, if not, the automated upgrade won't run until suspended transactions no longer exist. The parameter can only be set by support personnel and is only done upon request. If done, suspended transactions will not be available after the update in most cases.

7.If the upgrade represents a change in the "major" version (typically more significant software changes), automatic upgrades are prevented intentionally except by request.

8.The number of wait days has passed since the date the version (update) was uploaded for distribution to customers.

9.Automated upgrades won't run on a Friday, Saturday, or Sunday.

10.The final check before the installer is downloaded, determines whether the current date and time is within 24 hours either before or after your company's next scheduled Billing Cycle. If your billing process is scheduled to occur within this time frame, the automated update waits one (1) additional day before attempting the update. If no billing cycles are scheduled, we assume that your company is not yet "live" on the Spruce software and the update is allowed to proceed.

If all of the checks (listed above) have passed, a download of the UpgradeInstaller.msi file is started. The UpgradeInstaller.msi file is downloaded to a new folder under the server's SpruceDeploy directory with the Spruce version number being the name of the folder. After the download completes and before installation, a series of tests are performed on the downloaded installer file. These are done to make sure that it downloaded successfully and that there was no corruption to the installer file during the transfer.

A notification, text, or Email is sent to the system administrator which states that the system is now downloading the new version. The message indicates that if a second "success" confirmation is not received in the next 60 minutes that a call should be placed to ECI Support the following business day during regular support hours. In most cases, failure of an automated update is not an emergency and won't prevent users from using the Spruce software the following day. Off-hours calls to support are billable in addition to regular support and licensing. The initial message that the download was initiated will be similar to the text shown below:

"Downloading UpgradeInstaller for version: 1.10.2.0. If this message is not followed in 60 minutes by a success confirmation, contact support during regular support hours the following business day."

At this point, a one-time Windows scheduled task is created. The task scheduled to begin the installation five (5) minutes after the current time. The downloaded installer file is installed by the scheduled task. ECI Services does not actually install the update (since application Services are also reinstalled).

Once installation has completed a confirmation notification, text, or Email is sent to your company's designated system administrator user. An example similar to the confirmation message is shown below:

"Automatic Upgrade Completed at 2/15/2015 9:40:32 PM"

Future Considerations

Automatic updates are performed using the same Microsoft® installer that the application has always used. We cannot guarantee that Microsoft won't restrict Microsoft Installer (.msi) files being run automatically at some point in the future.