Chapter 10: Shared Memory in Windows Terminal Server Environments


Adaptive Server shared memory when running on Windows Terminal Server environments

To accommodate Windows Terminal Server shared memory requirements, Adaptive Server version 12.5.4 introduces the new environment variable SYBASE_TS_MODE.

Windows Terminal Server is a feature of Microsoft Windows that allows multiple remote users to log into the Windows system at once. Each user connects from a local workstation to a central Windows server, and is then given a virtual windows environment which appears back on the local workstation. The Windows server keeps the memory spaces and other resource allocations of these terminal server sessions entirely separate, so that users are largely unaware of the existence of other terminal server sessions. In addition there can be a user logged in to the machine in the normal way, this is referred to as the 'console session'.

The Adaptive Server data server can be started in a terminal server session, or it may start as a windows service in which case it is regarded as part of the console session. Adaptive Server shared memory regions are normally not accessible from other terminal server sessions, and thus certain tools such as performance monitors, and Sybase’s internal diagnostic tool (sybmon) will not work unless started from the same session that owns the Adaptive Server, as they need to connect to the shared memory region of that server. If Adaptive Server is running as a service these tools only work if started from the console session.

Adaptive Server 12.5.4 looks for an environment variable SYBASE_TS_MODE, and if this is set to GLOBAL then Adaptive Server creates its shared memory so that it is available across all terminal server sessions. Similarly, changes made to the performance monitor and sybmon also look for this environment variable and connect to the shared memory globally if it is set to GLOBAL. In this way, you can configure a remote terminal session to monitor Adaptive Server running on the console session or on another terminal server session. SYBASE_TS_MODE should normally be created as a system environment variable and the Windows machine restarted to bring it into effect.

SYBASE_TS_MODE is not supported by Windows NT 4.0 Workstation and Server, and Windows 2000 Professional.

The default behavior of this variable if it is not set, is to create shared memory under the local terminal server session only.

WARNING! SYBASE_TS_MODE must not be set on a machine that does not support terminal services, as this causes shared memory creation to fail and Adaptive Server will not start.