Introduction
When the SSDT installs a new version of the ODDEX application, it is normally done as a "rolling upgrade". Rolling upgrades allow the application to be upgraded without shutting down the entire application. The application is upgraded as users log off the previous version and are connected to the new version on their next login.
In layman terms, this means that the application is upgraded with minimal user disruption. However, occasionally, a small number of users will inconvenienced by being forcibly logged out, which requires the user to log back in unexpectedly. If you care to know why this happens, please read the remainder of this page.
Application Servers
The SSDT executes ODDEX on more than one application server simultaneously. This provides load-balancing across the servers. On login, each user is randomly assigned to one of the available application servers. For the length of the user's session, the load-balancer ensures the user will remain "connected" to the server where the session resides.
At the time of this writing up to three application servers are executing ODDEX at any given time.
Technical staff may consider this description as a "cluster". It is not true cluster since session and cache information is not shared between the servers. Each server executes an independent instance of the application.
Rolling Upgrade
When the SSDT installs an upgrade, each server is upgraded individually. The upgrade process is approximately:
- make a server unavailable to new sessions
- wait until all users on that server have logged or timed out
- upgrade the software on the server
- make the server available for new sessions
- repeat process for the next server
At all times, at least one server is available for new sessions, giving the appearance that the system was never shut down. As users log out of the previous version, they will be automatically connected to the new version.
Long Running Sessions
In practice, it often takes four to eight hours to complete a rolling upgrade. This is because a few users keep an active session for the entire business day. A single user can prevent the upgrade from proceeding by keeping a session active. For most upgrades, this is not an issue so the sessions are allowed to expire normally. However, for an important upgrade or bug fix, the SSDT may decide to speed up the process by forcibly terminating a few users. Whenever possible, we terminate sessions that have been inactive for at least 15 minutes but occasionally are forced to terminate more active sessions.
Therefore, if you are unexpectedly directed back to the login or expired page, it most likely means that an upgrade is in progress and you were the last user who was blocking the upgrade.