7.29. Running multiple client instances simultaneously¶
After a standard installation of the IDERI note client, a single instance of the client is configured to run on the user’s desktop. This single client instance will try to connect to a single IDERI note server and - in tandem with its associated ticker instance - will only show messages that originate from the server that it is connected to. However, some organizations have deployed multiple IDERI note servers and hence need to run multiple clients that each connect to a different IDERI note server on some users’ desktops. The following paragraphs will outline how to configure a client computer in such a way that it is capable of starting the client in different configurations simultaneously for that purpose.
7.29.1. How the default client instance is started¶
After installation, the client (inotecln.exe) will run with the default instance, i.e. the connection settings that have been supplied at installation time. This encompasses the IDERI note server name or the method to find it, the protocol to use (TCP or named pipes), an optional port number and much more. All these settings ultimately result in a command line as documented in section 9.1 that is eventually passed to the client. The command line setting for the default client configuration can be found in the “DefaultCommandLine” REG_SZ registry value under the registry key HKEY_LOCAL_MACHINE\SOFTWARE\ideri\inotecln. However, in order for inotecln.exe to be started with the command line supplied with the “DefaultCommandLine” registry value, some other process must read this value and start inotecln.exe at some point. It is clientlaunch.exe that does this. The default settings after installation of the client will add the invocation of clientlaunch.exe into the “ideriClient” REG_SZ value in the registry key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run (see section 2.1), so clientlaunch.exe will be launched by explorer.exe that acts as the user shell in Windows after login. But clientlaunch.exe is not only responsible for launching the default client instance, it also acts as the central hub for launching additional client instances if configured appropriately. This is what the remainder of this chapter is all about.
7.29.2. Starting secondary client instances from within clientlaunch.exe¶
Secondary clients are configured using the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\ideri\inotecln\SecondaryClients.
For the remainder of this section, this subkey will be referred to as the “secondary clients registry key”. This key does not exist after a standard installation and thus must be created manually or via a client management product. Since this key is not created by the IDERI note client installer, the uninstall process will also not delete it during uninstall. This also means, that this key will not be touched when updating the IDERI note client to a new version, where an uninstallation of the previous version is by nature a necessary part of the overall update process. So any settings made under this key will survive a client update. For each instance of a secondary client, a separate subkey under this key must be devised. The name of the subkey is unimportant to a certain extent, but it must contain the registry values in table Registry Values for secondary Clients in order for the client to be started successfully:
Value name | Value Type | Explanation |
---|---|---|
Server | REG_SZ | The name of the IDERI note server. |
HistoryMenuItem (optional) | REG_SZ | The menu item string to appear in the client context menu for the connection’s history application (optional). |
PollingInterval | REG_DWORD | The client polling interval in ms. |
TCP | REG_DWORD | If this value is non-zero, the client connects via a dedicated TCP port to its server, otherwise named pipes are used. |
Port | REG_DWORD | The TCP port number to be used for the client connection if TCP is used as the connection protocol. |
However, this does not mean that a secondary client instance gets started automatically by clientlaunch.exe with these registry values configured correctly. In order for the secondary client to be started, its subkey name (with the values from table Registry Values for secondary Clients in it) must be enabled first. This is done via the REG_MULTI_SZ value “ClientsToStart” in the secondary clients registry key. Only if this multi-string value contains the name of the subkey under the secondary clients registry key, the client launch parameters from table Registry Values for secondary Clients will be evaluated by clientlaunch.exe and the secondary client will be started.