Symptoms ccmlocator.exe CPU utilization is consistently high
client computers show an error message when booting to run a Pre-OS job
Occasionally, typically due to an improper configuration, problems arise with the Pre-OS Locator service.
How it works...
The "Symantec LiveState Pre-OS Locator" service and its predecessor, the "CCM Pre-OS Locator" service, both perform the same function. These services accept requests from client computers as they boot.
In an environment configured for LiveState Delivery or iCommand, as client computers boot, the DHCP scope settings indicate whether the client computers should download what we call our "boot overlay" file. The DHCP scope options determine whether, and from where, the boot overlay file is downloaded by client computers as they boot. The boot overlay is a small executable file which the client computer downloads via TFTP. It runs in memory on the client computers, and its purpose is to contact the LiveState Delivery or iCommand server which manages the client computer. If the DHCP scope options do specify a Pre-OS Locator server, then all clients managed under that DHCP scope direct their initial requests to the computer running the Pre-OS Locator service.
The Pre-OS Locator service attempts to map each client computer, based on its MAC address, to its configuration server (the LiveState Delivery or iCommand server which manages the client computer). The Pre-OS Locator service reads a file %SME_ROOT%\dbin\ccmlocator.lst, which is configured with the name or IP address of each LiveState Delivery and iCommand server in a network, and it caches the client MAC addresses for each server in its list. Once the correct configuration server is located, the client's request is forwarded to that server, and it responds to the client computer's request with instructions regarding any Pre-OS jobs which are assigned to the client computer (such as partitioning, formatting, and scripted OS installations). If no Pre-OS jobs are configured, or they are complete, then the client computer proceeds to boot normally.
As mentioned above, the Pre-OS Locator service reads a file %SME_ROOT%\dbin\ccmlocator.lst. It periodically contacts each server in this list to update its cache. Any time a client computer contacts the Pre-OS Locator service and the client's MAC address is not listed in the cache, the Pre-OS Locator service in turn attempts to contact each server in its list to query for a match. If a match is found, the client's request is redirected to its configuration server. If no match is found, then the Pre-OS Locator service responds to the client computer with an error message indicating that no configuration server could be found, that message is displayed on the client's screen, and the client should boot normally.
Following are some suggestions for troubleshooting the Pre-OS Locator service...
Check the %SME_ROOT%\log\ccmlocator.log file for errors:
If necessary, edit %SME_ROOT%\dbin\ccmlocator.cfg, uncomment the ";LogLevel" line by removing the leading ';' and raise its value higher to record more details. The, restart the Pre-OS Locator service.
Check the %SME_ROOT%\dbin\ccmlocator.lst file:
If server names are listed, verify that you can ping the server by name from the computer running the Pre-OS Locator service.
Look for outdated or invalid server entries.
If the ccmlocator.lst file contains any uncommented entries in the [CCMASD] section, then question whether they are valid, because this section is only for very old CCM 4.x servers. Entries for iCommand and LiveState Delivery servers belong in the [JAVADB] section, one entry per line, with no other characters on each line other than the server name or IP address.
Check the %SME_ROOT%\dbin\ccmlocator.cfg file:
Verify that the UDPCCMPort value is correct. Typically, UDPCCMPort=484 for servers which are not running the "Pre-OS" service in addition to the "Pre-OS Locator" service. However, UDPCCMPort=485 for servers which are running both the "Pre-OS" and "Pre-OS Locator" services.
The default settings of the locator service are to retrieve updates from the other servers every 10 minutes. If the timestamps in the log file show that updates are not occurring every 10 minutes, one suggestion is an increase in that interval.
If you feel that the Pre-OS Locator service is consuming too much of the CPU time or the time interval is too short, edit %SME_ROOT%\dbin\ccmlocator.cfg, uncomment the ";UpdateTime" line by removing the leading semi-colon (;) and raise its value higher (perhaps to 30 or 60). The, restart the locator service.
Check that each server listed in the %SME_ROOT%\dbin\ccmlocator.lst file is responding:
One way to check the functionality of the Pre-OS Locator service on each server is to use the tool %SME_ROOT%\utilities\ccmlocatoradmin.exe. From a Command Prompt you can run various options such as:
ccmlocatoradmin -V (show version info)
ccmlocatoradmin -servers (lists the servers from ccmlocator.lst)
ccmlocatoradmin -cache (show list of servers and their clients)