Acurcl hangs when starting too many sessions

0 Likes

This article describes how to work around the fact that Microsoft Windows doesn't allow more than 68 runtime sessions at a time.

Problem:

acurcl appears to "hang" when users attempt to start more than 68 runtime processes at the same time using Micro Focus Thin Client version 7.2.2 on Windows 2000.

Resolution:

Investigation revealed that this problem is the result of a Microsoft Windows limitation. A Microsoft Knowledge Base article, #814802, describes this issue. The article provides information about modifying the registry to allow more runtimes to run.  However, this modification may adversely affect other services running on a server, so we strongly suggest that users read and understand that article before attempting to modify the registry entry.

The registry entry to modify is

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems

and the value to modify is "Windows".

The default value of this entry is:

%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows
SharedSection=1024,3072,512 Windows=On SubSystemType=Windows
ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3
ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off
MaxRequestThreads=16

and the relevant part of this entry is "SharedSection=1024,3072,512".  


  • If the value is changed from "512" to "1024", only approximately 33 thin clients will be able to start.
  • If, instead, the "512" is reduced to "128", tests ran out of memory before they could not start a new child runtime (about 230 children).

 Note that the server must be rebooted before the new settings take effect.  Also note that modifying the registry is inherently dangerous and should be done with caution.

There is a way to detect whether you have reached this limitation:  When the Windows version of acurcl starts a new child runtime, it will wait a short while (50 milliseconds) to see if the child stops. If the child stops, that fact will be reflected in the trace file, along with the exit code of the child.  An exit code of 128 is the magic value that says that this limitation of Windows has been encountered.  (This test was introduced in ECN-AC050.)

Incident Number: 99-015708 and 2260289

Old KB# 14110
Comment List
Related
Recommended