This web page catalogs the enhancements and fixes that are available in
currently supported versions of the product. While running the most recent
maintenance level is always recommended, if you are not currently experiencing
one of the problems that is fixed in a more recent release, you may not need to
upgrade the version of the product you are currently running on an urgent basis.
Newer versions of the product, unless specifically noted otherwise,
incorporate all fixes from previous versions. If you are running the most current
version of the NTSMF collection agent, you are always assured of having the most current and up-to-date
version available.
Note: the Fix number below denotes the version number where the fix was first
available and the fix number for that version. This list applies to maintenance
and fixes on the collection agent only.
Version 2.4.10
Available on March 29, 2006.
Fix # |
Problem Description |
Notes |
| 2.4.10.2 |
No SQL Server 2000 performance data is available immediately
after a re-boot of the system.
During Performance SeNTry startup, unresponsive perflibs are given a further
chance to respond during Cycle Data Ready interval -- which is currently one
minute long. The SQL Server perflib may not complete its own initialization
prior to the initialization of the Performance SeNTry collection agent.
Consequently, the collection agent retries the Open and Collect procedures
of unresponsive Perflib's several times during the Cycle Data Ready
interval.
|
This problem was fixed by closing & unloading all
unresponsive perflibs during the Cycle Data Ready interval, then reloading
them and retrying their Open and Collect procedures. |
| 2.4.10.1 |
Some Perflibs are mis-identified as Version 0.0.0.0 in the
Information Message with Event ID: 109 that documents the Installed
Performance Libraries written at the beginning of each collection cycle. |
|
| 2.4.9.1
***Hot fix*** |
DEP (Data Execution Protection) support was added.
Note that dmperfss.sdb is added to the list of files required to run the
collection agent to support DEP.
The collector would not run on machines with DEP enabled.
On machines with DEP enabled, an error message similar to the following is encountered
for each Perflib that the collector attempts to load:
08/27/05-14:05:14 -
Event ID: 209, Category: Discovery, Severity: Error
The Open Procedure for service "PerfDisk (PerfDisk)" in DLL "perfdisk.dll"
failed.
The system error was "Win32 exception, 0xC0000005, encountered at
location 0x0274192A
Write attempt at location 0x0274192A".
Performance data for this service will not be available.
The Event Viewer (source Perflib) may have more details
The 0xC0000005 Win32 exception that is thrown is due to
DEP being enabled on the machine.
Ultimately, an Event ID 107 Error message will indicate
the collection service is suspended on a machine with DEP enabled.
08/27/05-14:08:17 - Event ID: 107, Category: Initialization,
Severity: Warning
The Performance SeNTry service is suspended with error code,
0xC00200D1
|
Hardware-enforced Data Execution Prevention (DEP) is a
feature of both Intel and AMD hardware that is supported beginning with
Windows Server 2003 Service Pack 1 and Windows XP Service Pack 2. , See this Technical Note from Microsoft on the DEP support that was added to the
OS for more information. DEP is enabled if the machine is booted in /PAE mode on Windows Server 2003, whether or not the hardware protection feature is installed.
Prior to this fix, a work-around was available. It is
possible to exclude the Performance SeNTry collection service from DEP
enforcement, as discussed in this Technical
Note.
Note: dmperfss.sdb is added to the list of files required to run the
collection agent to support DEP. |
| 2.4.8.3 |
MSSQL Database records are not written correctly when the SQL
Transactions/sec Filter is enabled. The first set of records that all belong
to the same parent SQL Server instance, are reported with the an incorrect
Object Name, while subsequent records are written correctly, but not
filtered correctly. |
This problem occurs only when named instances of SQL Server
were defined and the SQL Server:Databases filter was enabled. |
| 2.4.8.2
***Hot fix*** |
The DmPerfss.exe process has unusually high CPU Utilization
indicating a collection thread in an infinite loop.
The problem occurs when attempting to close a performance library. The
collector routinely tries to close all Performance library DLL at Cycle End,
but will also try to close a Perflib DLL that is not responsive or otherwise
not being used at the start of a collection cycle.
The following messages, together with high CPU
utilization, are the usual symptoms of this problem.
08/18/05-03:03:04 - Event ID: 2201,
Category: Collection, Severity: Warning
"<Performance Key Name (Display Name)>, "<Perflib Pathname>"" could not be
closed because the thread was busy processing another operation
08/18/05-03:03:04 - Event ID: 2201,
Category: Collection, Severity: Warning
DTSThread::UnrealizeStop(): thread <thread id> could not be destroyed
because the thread was busy processing another operation. State = Cancelled
|
This looping problem was associated with gathering data for
.NET CLR performance Objects from the mscoree.dll Common Language Runtime,
which also serves as a Perflib. As a workaround, mscoree.dll was
added to the list of Excluded perflibs in the standard version of dmperfss.cfg that was available in prior versions.
With this fix, it is now safe to gather .NET CLR performance
Objects. Please edit your current version of dmperfss.cfg to remove
the mscoree.dll entry from the Perflib Exclude list or replace your
current version of dmperfss.cfg with the version that ships with this
release.
|
| 2.4.8.1
***Hot fix*** |
DMPerfss would
Stop when it encountered a corrupt perfc009.dat file. Typical symptoms
include the following messages issued during the Discovery phase at the
beginning of each collection cycle
11/10/05-14:32:43 - Event ID: 96, Category:
N/A, Severity: Error
Invalid counter sequence in name table following counter <number>
11/10/05-14:32:43 - Event ID: 96, Category: N/A, Severity: Error
PSSDataSet::IsSQLServer2000Object(): failed to realize PerfText
followed by a Stop Code Error message.
|
Originally, the collection agent was designed to cease data
collection whenever it found severe errors in the perfc009.dat Name
table. The perfc009.dat file, which is stored at \%root\system32\,
contains the names of all installed objects and counters. The Name table can
become corrupted during installation of new or modified Counter definitions
using the lodctr utility.
Even though Microsoft enhanced the procedure to rebuild a
damaged perfc009.dat file in Windows Server 2003 (see KB
300956) and these problems typically impact all consumers of performance
counters, the collection agent was modified to recover from severe damage to
the perfc009.dat that it finds during Discovery and to continue
processing. |
Version 2.4.7.5
Available on July 1, 2005.
Fix # |
Problem Description |
Notes |
| 2.4.7.4.1 |
Enhancement.
Added Support
For Account@Domain Format. |
The Account
parameter in both DmPerfss and DmCmd now accept either Domain\Account or
Account@Domain format for Account names. |
| 2.4.7.5.1
***Hot fix*** |
DMPerfss
Discovery (Warning) Event ID: 210 Message at Cycle Start: e.g.,
Could not load the Performance Library, "C:\WINDOWS\system32\inetsrv\w3ctrs.dll",
for service "World Wide Web Publishing Service" (W3SVC). The system error
was "The specified module could not be found (126)". Performance data for
this service will not be available. |
The problem was that the collection agent was unable to find
and load any Performance library DLLs in directories not located in the
Windows root directory, the Windows root\system32 directory, or a directory
in the PATH environment variable. |
Version 2.4.7.3
Available on April 11, 2005. For feature list, click here.
Fix # |
Problem Description |
Notes |
| 2.4.7.3.1 |
Native IA-64 support in the
collection agent |
Requires a separate
executable. |
| 2.4.7.3.2 |
Cycle End Command launches
Windows Scripting Host (WSH) scripts that use either VBscript or Javascript
incorrectly. |
When the WSH script is not launched correctly, the
following error message occurs:
04/02/05-11:53:08 - Event ID: 1401, Category: Cycle
End, Severity: Warning The following cycle end command failed to start using
account The system cannot find the path specified (3). |
| 2.4.7.3.3 |
Data files created between
Midnight and the Cycle Hour migrate one day late. |
If the Cycle Hour is 3:00 AM, and a machine reboot
that initiates writing a new .smf file occurs between midnight and the Cycle
Hour, that data file was not migrated to the \Previous folder until
the Cycle end for the following day. |
| 2.4.7.3.4 |
Some Base Counter Names end
with a redundant “Base” in the CounterName. |
Some of the MSSQL:Cache
Manager Base (or denominator) counters were not named properly. |
| 2.4.7.3.5 |
When present, the Performance
Library for the MSExchangeActiveSyncNotify object, "E:\Exchsvr\bin\sinkperf.dll",
version 6.5.7226.0, causes a Warning message that indicates that the
collector's working set memory protection has failed. |
The collector's working set
memory protection function is designed to preserve the program's working set
between collection intervals and reduce the impact of the collector in those
environments where RAM is in short supply. The presence of the Exchange
Server sinkperf.dll exposed a problem with this function. |
| 2.4.7.3.6 |
The collection agent does not
recognize that the following MSSQL performance objects are available:
MSSQL$<instancename>:Buffer Manager
MSSQL$<instancename>:Buffer Partition
MSSQL$<instancename>:Access Methods
MSSQL$<instancename>:User Settable
MSSQL$<instancename>:Replication Agents |
Only impacts environments
where named instances of SQL Server 2000 are installed. |
| 2.4.7.3.7 |
Performance counters for
Outlook are skipped during discovery when they incorrectly return
an invalid object ID.
When the OpenCollect routine
for the Outlook client Performance Library dll, MSSAPI32.DLL version
11.0.6361.0, returns an invalid object ID, the collector skips the Perflib
without a notification that identifies the problem. |
The collection agent was
modified to report the details of the invalid performance data buffer (Event
ID 1303) and to identify the problem Perflib as one that is being skipped
during this collection cycle (Event ID 213).
Event ID 1303 is a new
Warning message. |
| 2.4.7.3.8 |
Event ID 109 Information
message that lists the installed Performance Library DLLs may also
mistakenly report the presence of the collection agent executable,
dmperfss.exe. |
|
| 2.4.7.2.1 |
The collection agent
mistakenly assumes that a request for a Performance Data Buffer larger than
1 MB is an error and terminates. Terminal server machines running large numbers of
processes and threads can generate requests for a Performance Data Buffer
larger than 1 MB. |
The limit of the maximum
acceptable buffer size was raised to 1.5 MB. |
| 2.4.7.2.2 |
New feature:
the collection agent records the name and version of each Performance
Library that is found installed on the system. |
|
| 2.4.7.1.1 |
The collection agent crashes
on AMD 64-bit processors with an L2 cache size of 1MB or greater. |
|
| 2.4.7.2.2 |
Due to a
mistaken date calculation, data files created prior to Midnight, but after
the GMT midnight, migrate one day late. |
|
| 2.4.7.2.3 |
When specific
versions of Perflibs are Excluded in the dmperfss.cfg file, all versions of
the Perflib are excluded by mistake. |
|
| 2.4.7.2.4 |
The
Performance SeNTry service terminates with service-specific error 3222275655
(an Event ID 7024 message) when RPD output is enabled. |
RPD output is
a special collection agent debugging option enabled through a Registry
setting that provides details of the Performance Data Buffers delivered by
the Perflibs. |
| 2.4.7.2.5 |
Type 6 and 7
Format records for MSSQL objects are not being written. |
|
| 2.4.7.2.6 |
Faulty
pointers in the performance buffer causes the collection agent to terminate
due to an unhandled exception. |
The
performance data associated with the Perflib that is causing the problem is
skipped for that collection interval. |
| 2.4.7.2.7 |
The DTS,CPU
Logical Processor configuration record no longer reports null fields for
known values. |
This change
was made to maintain consistency in the way null fields are used elsewhere
in the collection file to indicate that a counter exists, but is not
currently selected for data collection. |
Version 2.4.7
Available on September 9, 2004.
Fix # |
Problem Description |
Notes |
| 2.4.7.0.1 |
New feature:
Logical and Physical Processor Configurations records are now provided |
|
| 2.4.7.0.2 |
New feature:
new Registry value ActiveDataPath in the \Services\Dmperfss\Control\ subkey
documents the location of the \data\ folder. |
|
| 2.4.7.0.3 |
Win32 exception when an attempt to gather data for the
Processor object fails. This problem triggers an Event ID 97 Error message,
along with a stack trace similar to the following:
07/25/04-04:55:55 - Event ID: 97, Category: N/A, Severity:
Error Win32 exception, 0xC0000005, encountered at location 0x0045614F Read
attempt at location 0x0000000C
Module List: <module list removed
for brevity>
Stack Trace (ThreadId 880):
dmperfss.exe:
PSSPerfObject::BufferInfo::FindPreviousObjectInstanceCounter + 84 bytes E:\DmPerfss
2.4.6\Collector\PSSPerfObject.cpp, Line 2717 + 6 bytes
dmperfss.exe:
PSSPerfObject::BufferInfo::InitForInstance + 57 bytes E:\DmPerfss
2.4.6\Collector\PSSPerfObject.cpp, Line 2916 + 7 bytes dmperfss.exe:
PSSPerfLocalCounter::Evaluate + 106 bytes E:\DmPerfss 2.4.6\Collector\PSSPerfLocalCounter.cpp,
Line 518
<remainder
of Stack Trace removed for brevity> |
|