Views:

Summary



Connecting to syncese or ssjobhnd sort helper from an active Windows master server returns error codes 12104 or 12127. To resolve this issue, increase the Windows memory allocation for the given service (in this case, the CMAGENT service).

Symptoms



Connecting to syncese or ssjobhnd sort helper from an active Windows master server returns error code 12104 or 12127.



Resolution



To resolve this issue, increase the Windows memory allocation for the given service (in this case, the CMAGENT service).

Memory allocation of the Windows service (that runs under the local system account) can be affected by modifying the service behavior between "Allow the service to interact with the desktop" and "Do not allow the service to interact with the desktop."

By default, if the service is set to "Allow the service to interact with the desktop," Windows allocates more memory to the service. On a busy BEX/DPX Windows master server, set the CMAGENT service to run with this option.

See Microsoft knowledge base article 184802 at support.microsoft.com/kb/184802 for additional information.

This option can also be enabled through a registry change.

This solution requires a reboot of the machine.

  1. Verify the key below:
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\SubSystems
  2. Change the SharedSection value within this key from 1024,3072,512 to a) 1024,3072 or b) 1024,3072,3072

Background

Desktop heap is allocated by Windows User32.dll when a process is in need of user objects. BEX/DPX application is dependent on User32.dll and therefore it consumes desktop heap.

The key below controls the heap utilization:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\SubSystems

%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

The first SharedSection value (1024KB) is the shared heap size common to all desktops.

The second SharedSection value (3072KB) is the size of the desktop heap for each desktop that is associated with the "interactive" window station WinSta0.

The third SharedSection value (512KB) is the size of the desktop heap for each desktop that is associated with a "noninteractive" window station.

All services executed under the LocalSystem account with "Allow service to interact with the desktop" not selected share the desktop heap of the "Default" desktop in the "noninteractive" service windows station. If the third value is not present, the size of the desktop heap for "noninteractive" window stations is the same as the size specified for "interactive" window stations (the second SharedSection value). Note that if the SharedSection values in the registry are modified, the system must be restarted before the changes take effect.

Alternatively, by selecting the check box "Allow service to interact with desktop," you move the service from "noninteractive" to "interactive" and therefore increase memory from 512KB to 3072KB, since all services that are executed under the LocalSystem account with the "Allow Service to Interact with Desktop" startup option selected use "Winsta0\Default".

There are no known negative effects for "Allow service to interact with desktop", and it is applicable for WinNT, Win2K, WinXP.

Since the option "Allow service to interact with desktop" is available only for the local system account, it is not clear if a problem would exist if CMAGENT service were started under some other account, which you might do in some cases as a result of a permission problem or for setup of SQL or EXCH. However, this is a rare case for the master server.

See Microsoft knowledge base article 184802 at support.microsoft.com/kb/184802 for additional information.