PBS: Phone Book Server Performance Counters Missing (183176)
The information in this article applies to:
- Microsoft Commercial Internet System 1.0, when used with:
- Microsoft Phone Book Server
This article was previously published under Q183176 SYMPTOMS
The Phone Book Server (PBS) performance monitor object, PBServer Monitor,
is missing when you monitor a Phone Book Server remotely with performance
monitor (perfmon).
Note: The counters do show up when perfmon is run locally.
CAUSE
This problem has to do with the fact that PBS is a dynamic service. PBS is
a dynamic service in that Pbserver.dll loads when the first client requests
a list of phone numbers for its region. For this problem to occur, at least
one instance of perfmon must be running against the server before PBS
loads. If Pbserver.dll is not loaded, then the PBS counters will be
missing; this is expected.
The following list contains the events that cause the PBS counters to be
missing:
- Performance monitor is run remotely against a server where PBS is
installed, but not yet running. In other words, Pbserver.dll has not
been loaded.
- The first remote instance of perfmon is not shutdown.
- PBS is subsequently started when a client requests a list of regional
phone numbers.
- Another remote instance of perfmon is run against the server.
- The perfmon counters are missing from the new instance of perfmon, even
though Pbserver.dll is now loaded.
When perfmon is run remotely against a server, Winlogon on the server only
loads one instance of the performance counter DLL for that remote instance
of perfmon and all subsequent remote instances of perfmon. This means that
the open function is only called once when the initial remote instance of
perfmon connects. For the open function to be called again requires the
close function to be called. The close function is only called when all
remote instances of perfmon are closed.
Running perfmon locally against a server is very different from running it
remotely on the server. Each instance of perfmon that is run locally loads
its own instance of each performance counter DLL. This means the open
function for each DLL is called for each instance of perfmon. The open
function sets up what is needed to collect the perfmon counter data.
RESOLUTION
Code was added to the Pbsmon.dll collection routine to check to see if a
semaphore exists that is created when Pbserver.dll is loaded. If the
semaphore exists, then the pbsmon collection routing calls the open
routine.
STATUS
Microsoft has confirmed this to be a problem in the Microsoft products
listed at the beginning of this article.
A supported fix is now available, but has not been fully regression-tested
and should be applied only to systems experiencing this specific problem.
Unless you are severely impacted by this specific problem, Microsoft
recommends that you wait for the next Service Pack that contains this fix.
Contact Microsoft Technical Support for more information.
Modification Type: | Minor | Last Reviewed: | 9/22/2005 |
---|
Keywords: | kbHotfixServer kbQFE kbbug kbfix KB183176 |
---|
|