Everything Else
Client Idle Timeout in Helix 7.0

A request frequently made by Client/Server administrators is the ability to disconnect a Client after a given period of inaction. Often this happens when a user is called away unexpectedly, or simply forgets to disconnect from the Server when leaving for the day.

Helix 7.0 adds an Client idle timeout value (in minutes), after which a Client that is idle is automatically logged out. Helix RADE contains new properties that allow the collection designer to control this value globally (for all users) or on a per user basis.

Some advantages of this new feature are:

  • Performance is enhanced, as the Server no longer has to send update information to the abandoned workstation.
  • Security is enhanced, as another user can not access the Server through the original user’s credentials simply by walking up to the abandoned workstation.
  • Servers that employ automated reporting or backup routines are no longer blocked or otherwise adversely impacted by abandoned workstations.

This technote describes how this new feature works in practice, and how the designer can customize their collections.

Client Idle Timeout: In Action

When a collection is upgraded to Helix 7.0, the Client idle timeout value is set to 60 minutes for all users. As long as the user continues to use Helix Client to enter, edit, or look up data, this timeout will never occur.

Client Idle Timeout Warning Dialog in 7.0.2 and later
Client Timed Out and Disconnected

Conversely, when a Helix Client workstation has been idle for 60 minutes*, whether because it has been put in the background and forgotten, or the user is no longer at their desk, Helix Client displays the dialog shown at left.

* The timeout value is adjustable by the collection designer, as described below.

The dialog explains how long the Client has been idle, and provides a countdown of one additional minute. If the user clicks the Stay Connected button before the dialog countdown reaches zero, the dialog is closed and the Client is not disconnected from the Server. Choosing Disconnect breaks the connection to the current Server and returns to the Connection Window. Choosing Quit breaks the connection and shuts down Helix Client.

While countdown is proceeding, Helix Client also bounces its icon in the macOS Dock, in an attempt to get the user’s attention. The bouncing persists until the dialog is dismissed, or the time expires.

When the time expires, the dialog is automatically dismissed, unentered data is discarded, the local connection document is saved, and all open windows are closed. A second dialog (at left) then appears, informing the user that their workstation has been disconnected because the idle time was exceeded. This dialog offers two options: Quit and Reconnect.

The Quit option needs no explanation, but Reconnect is more complicated. Clicking this button attempts to re-establish the connection with the Server by reopening the saved connection document. Since this is in every respect a new connection to the Server, the standard connection procedure is observed: the user authentication dialog is presented, and the user must re-enter their name and password (if required normally) to complete the re-connection.

Client Idle Timeout: Collection Design
Collection Icon Inspector Showing Collection Properties
User Icon Inspector Showing User Properties

When a collection is opened in Helix 7, the new Client idle timeout property appears in the Collection properties section of the Inspector, when the collection window is selected.* All new and updated collections are set with a 60 minute timeout. This value serves as a default for all user icons.

* To show the collection properties in the Inspector, bring the collection window to the front and deselect all icons. (The fastest way to do this is choose ‘Clear Selection’ from the ‘Edit’ menu.)

The Client idle timeout property also appears in the User properties section of the Inspector when a user icon is selected (or open). All users in new and updated collections are set to a timeout value of ‘-1’ which indicates that this user inherits the collection’s timeout value.

Users can inherit the timeout value, or be set to a different value on a case by case basis. There is no limitation on the number of unique timeout values used in a collection.

Legal values for the Client idle timeout property are 0 through 16,383 for the collection icon, and -1 through 16,383 for user icons. The meaning of these values is as follows:

  • -1: Inherit the timeout value set for the collection icon.
  • 0: No timeout. (Same as prior versions of Helix.)
  • 1–16,383: Number of minutes user is allowed to be idle before timing out. (Maximum: 11.38 days)

The initial settings for all new and updated collections is for all Clients to inherit a default timeout from the collection, with that default being 60 minutes. This means the idle timeout setting for all users can be changed with a single change to the collection’s Client idle timeout property.

Switching to a secondary user (formerly: a submenu) does not affect the user’s timeout value. Secondary user icons do not use the Client idle timeout value: it is disabled in the Inspector when a secondary user is being edited.

Client Idle Timeout: Protocol

When a Client connects, that Client’s idle timeout value is checked. If the value is 0 or greater, that value is used to set the idle timeout for that Client. If the value is -1, the collection’s idle timeout value is used instead. (The value is inherited from the collection.)

Timeouts are always connected directly to the current active user icon. If a workstation switches from one username to another, the new user’s timeout value is adopted.

Additional Notes
  • the notion of ‘value inheritance’ is a new concept in Helix. It is expected to appear in other areas in future releases.
  • The Client idle timeout property is accessible (read and write) via AppleScript and Apple events.
  • The Client idle timeout property will be applied to Apple Event processes in a future release.
  • The ‘Quit’ & ‘Disconnect’ buttons first appeared in the Stay Connected dialog in Helix 7.0.2.