Terminal Server and Communicare

The Communicare client can be installed on a Terminal Server.

Note: As of Windows Server 2008 R2, Terminal Services / Terminal Server have been renamed to Remote Desktop Services / Remote Desktop Server. This article will continue to refer to them as Terminal Services / Terminal Server.

Install the client in the usual way from the Communicare Server Install share (i.e. \\\\CCAREXYZ\\Install).

Upgrading the Communicare Client on a Terminal Server

Because of the way Terminal Servers are used to serve applications to multiple users concurrently, there are some peculiarities with how applications must be installed and upgraded. The server must be put into "Install Mode" before installing a program, and then must be returned to "Execute Mode" afterwards.

This also applies to installing and upgrading Communicare. Most importantly, the upgrade MUST BE PERFORMED MANUALLY - say NO to any invitation to upgrade to the new version and cancel the Communicare log-on.

Instead, use Windows Explorer to browse to the install share - \\\\CCAREXYZ\\Install\\CCare (where CCAREXYZ is the name or IP address of the Communicare Server) and run the file setup.exe, accepting all the defaults. Windows Server should recognize the file name as an installer and will automatically put the system into Install Mode while it is running. It will also change it back afterwards.

Alternatively, you can install using Control Panel > Add/Remove Programs and browse to the location. This is guaranteed to put the server into Install Mode.

Automatically Upgrade using Batch Script

The following script can be used to automatically install Communicare on a Terminal Server. Copy and paste this into a text file, and save as AutoUpgradeCommunicare.cmd on the server desktop. Make sure CCAREXYZ is replaced with the name or IP address of the Communicare Server before running the script.

The script will show the task manager so that any users currently logged on (or who have not disconnected properly) can be notified and logged off. The script will temporarily stop users from being able to log-on during the upgrade (to prevent them from using incorrect configurations), and will put the server in Install Mode. Communicare will be installed silently using the current configuration. Once installed, the server is returned to Execute Mode.
@echo off

echo.
echo ##########################################################################
echo #                                                                        #
echo #  IMPORTANT: Check that no-one has an active session on the system.     #
echo #             Use task manager to send them a message and log them off.  #
echo #                                                                        #
echo ##########################################################################
echo.
taskmgr

:: Stop any new connections to the server.
change logon /disable

:: Put server into install mode.
change user /install

echo Installing Communicare...
:: Install the latest version of Communicare from the server.
"\\CCAREXYZ\Install\CCare\Setup.exe" /silent

:: Put server back into normal execute mode.
change user /execute

:: Allow connections again.
change logon /enable

echo.
echo Done!


pause

Configuration Notes

Communicare can use between 32MB to 256MB RAM. It also requires at least 512KB in Session Heap RAM. Old terminal servers like 2000 and 2003 might allocate only 512KB of Heap RAM per Window Station. We recommend 1MB per Window Station in Session Heap. This can be modified using the Windows registry.

This setting is controlled by CurrentControlSet/Control/Session Manager/SubSystem. The actual value is Windows and should contain something like this:
... SharedSection=1024,3072,512 ...
The 3rd value is the session heap and it should be changed to at least 768. Recommended value is 1024.
... SharedSection=1024,3072,1024 ...