On Microsoft Windows XP, Windows 2000, Windows 2003 or Windows NT 4.0 32 bit systems, IBM Rational ClearCase processes are dying unexpectedly. This technote describes some of the symptoms related to this problem as well as a possible solution.
Note: The information in this technote only applies to Microsoft Windows XP, Windows 2000, Windows 2003 or Windows NT 4.0 32 bit systems.
The corresponding errors in the logs which may be related to this problem are as follows:
albd_server(896): Error: Albd(896): Error: Server view_server.exe (pid=6340)
on "d:\ClearCase_Storage\views\view1.vws" died on startup; marking it as
albd_server(896): Server view_server.exe(6340) exited with status
12809/14/2005 01:45:18 PM albd_server(896): Error: Albd(896): Error: Server
admin_server.exe (pid=5100) on "" died on startup; marking it as
"down".09/14/2005 01:45:18 PM albd_server(896): Server
admin_server.exe(5100) exited with status 128
albd_server(896): Error: Albd(896): Error: Server shipping_server.exe
(pid=7012) on "" died on startup; marking it as "down".
09/14/2005 01:45:18 PM albd_server(896): Server shipping_server.exe(7012)
exited with status 128
albd_server(896): Server db_server.exe(6344) exited with status 128
albd_server(896): Error: Albd(896): Error: Server vobrpc_server.exe (pid=6488) on "d:\ClearCase_Storage\VOBs\vob.vbs" died on startup; marking
it as "down".
albd_server(896): Error: Albd(896): Error: Server db_server.exe (pid=5796)
on "" died on startup; marking it as "down".
albd_server(896): Error: Albd(896): Error: Server credmap_server.exe
(pid=5696) on "" died on startup; marking it as "down".
view_server.exe(3812): Error: Unexpected value (128) returned by type
Error: view_server.exe(5536): Error: already running as pid 65535
The cause of this problem is known to relate to the Windows desktop heap setting.
On Microsoft Windows operating systems, the desktop heap is reserved for interactive windows stations and non-interactive windows stations.
An active Windows station would be a graphical user interface that a user is running on the desktop.
A non-interactive station is a process that is running without a graphical user interface.
This is for all Windows-based applications that are running on a Windows system. The desktop heap is used for all objects (windows, icons, menus, etc....).
For ClearCase, an example of an interactive station would be working in a view in Windows Explorer or in ClearCase Explorer. The interactive desktop process would be either explorer.exe or clearexplorer.exe.
The non-interactive windows station would be the view_server.exe running on the client machine. In the case of a remote Windows view server and Windows VOB server, all view processes (view_server.exe) and VOB server processes (vob_server.exe, vobrpc_server.exe, db_server.exe) would be running in the non-interactive desktop heap.
Setting the value too high can cause "Out of Memory" errors when too many applications are running on the system (review KB article 126962 for more details:
Conversely, setting the heap too low can prevent applications from creating new desktops as needed. Review the below KB articles for more details:
As there are no precise rules to resolve desktop heap issues (Microsoft has no exact guidelines) and every application running on Windows uses desktop heap, it is a balancing act achieved by monitoring and adjusting as needed.
It really depends on the applications installed on the system and what size they need the non-interactive desktop heap to be in order to function correctly.
For example, in order for some backup software to run on the system, the non-interactive heap must be set to 3072 due to the fact it needs that size based on the number of hooks, menus, strings, and windows that are required for the desktop of its application. This decreases the number of desktops that can be created on the system. However, having a web server application on the system may fail as the clients need a smaller setting in order to create a larger number of desktops that need fewer hooks, menus, strings and windows.
Resolving the problem
The only current workaround is to adjust the non-interactive desktop heap limit. It is very important to be sure to read the Microsoft Knowledge Base reference articles below carefully before proceeding with any changes to your registry.
Note: This solution contains information about modifying the system registry. Before making any modifications to the Microsoft® Registry Editor, it is strongly recommended that you make a backup of the existing registry. For more information describing how to back up the registry, refer to the Microsoft Knowledge Base article 256986.
To change the setting perform the following procedure:
- Click Start > Run > type: Regedit
- Navigate within the Registry editor to the key:
- Double-click the value Windows
- Scroll within the value and find SharedSection=
Note: Review the below section for more details on what each number in the SharedSection means.
- Edit the section of the string that may read SharedSection=1024,3072,512 to the following:
Note: The third value can be larger than 2048, depending on how many VOBs and views are on your server. Review technote 1150076 for tips on setting up Performance Monitor to help keep track of the desktop heap. Remember, there is no exact formula to set the correct value, it is merely by trial and error. You need to monitor and adjust as needed. Read below about the fourth value.
- Restart the server
The first SharedSection value (1024) defines the heap size common to all desktops. This includes the global handle table (Window handles are unique machine wide) and shared system settings (such as SystemMetrics). It is unlikely that you would ever need to change this value.
The second SharedSection value (3072) controls the size of the desktop heap (used for Windows objects). This static value is used to prevent ill-behaved applications from consuming too many resources. Because the desktop heap is mapped into each process' address space, this value should not be set to an arbitrarily high value, as it will decrease performance, but should only be increased sufficiently to allow all the desired applications to run.
The third value defines the desktop heap size for non-interactive desktops.
Refer to Microsoft Knowledge Base Article 184802 User32.dll or Kernel32.dll fails to initialize for further information.
Note that 512KB of desktop heap space is roughly enough for 90 service processes to run in a single desktop which is where we begin to see issues. The "90" desktop is derived from the 48 MB limit minus 3 MB increments divided by 512 KB.
(49152 KB - 3072 KB) / 512 KB = 90
Note: 49152 KB = 48 MB & 3072 KB = 3 MB
A desktop is defined as the space to which Windows applications run their service processes. In other words you can have approximately 90 non-interactive desktops running at 512KB, with each of those desktops running approximately 90 service processes.
Note: If you were to raise the 3rd number to 3072, the result would be.
(49152 KB - 3072 KB) / 3072 KB = 15
Hence you would then be able to run approximately 15 non-interactive desktops; however, the number of service processes per desktop could increase to approximately 540.
Note: The above example is an approximation only as desktop usage varies from application to application, which is why there are no specific guidelines supplied by Microsoft.
There is the possibility of a fourth value: SharedSection=xxxx,yyyy,zzzz,aaaa where the value aaaa is related to the Windows Terminal Services heap size. A new fourth value is only needed if you are running terminal services on the server.
Any wiki or blog references in this document are being provided for reference purposes only and any opinions posted are provided by the individual authors and do not represent the positions or policies of IBM. IBM is not providing services of any kind for the information provided therein and provides no warranty of any kind. IBM WILL NOT BE LIABLE FOR ANY ACTUAL, DIRECT, SPECIAL, INCIDENTAL, OR INDIRECT DAMAGES, OR FOR ANY ECONOMIC CONSEQUENTIAL DAMAGES (INCLUDING LOST PROFITS OR SAVINGS), EVEN IF IBM, OR ITS RESELLER, HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Additional Reference Information
Additional reference information about the desktop heap can be found in the following blog:
|Software Development||Rational ClearCase||Operating System Configurations|