Article ID: 253738 - View products that this article applies to.
This article was previously published under Q253738
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 56553 (SQLBUG_70)
Different SQL Server components that query the registry for information in a cluster environment may cause a memory leak on the server. The problem occurs on both Active/Passive and Active/Active cluster configurations. The different components that have shown this problem include the SQLAgent application, Transactional Replication Agents and the SQLMaint utility.
The SQLAgent application has a memory leak when it performs scheduled jobs in a clustered environment. This is easily observed with a job that is scheduled to run every minute, which causes the "private bytes" perfmon counter to increase continuously.
Transactional replication agents (Logread.exe and Distrib.exe) leak memory when run on a clustered SQL Server. The Distrib.exe file leaks memory at a much greater rate than the Logread.exe file. The Distrib.exe file, on limited hardware, has demonstrated that it can consume 180 MB of virtual memory within an hour. The consumption of virtual memory eventually results in problems that include failover of the virtual server and replication throughput degradation.
The SQLMaint Dump tasks query the registry and looks for a list of tape devices for every run of the backup task. Because the SQLMaint utility uses various extended procs to accomplish this, you see the memory leak in the SQL Server address space.
The leak may occur when an application is run on the cluster that accesses the registry through the Vdvapi32.dll file. The leak occurs at a greater rate when the requested key does not exist.
An example of this is when you try to open the ODBC compatibility keys. Unless the odbccmpt utility has been run these keys will not exist.
HKEY_LOCAL_MACHINE SOFTWARE Microsoft MSSQLServer$VirtualServerName Client ODBCAppCompat
HKEY_LOCAL_MACHINE SOFTWARE Microsoft MSSQLServer$VirtualServerName Client ODBCQIBehavior
A supported fix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Apply it only to computers that are experiencing this specific problem. This fix may receive additional testing. Therefore, if you are not severely affected by this problem, Microsoft recommends that you wait for the next SQL Server service pack that contains this hotfix.
To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMSNOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The typical support costs will apply to additional support questions and issues that do not qualify for the specific update in question.
The English version of this fix should have the following file attributes or later:
NOTE: Due to file dependencies, the most recent hotfix or feature that contains the preceding files may also contain additional files.
Version File name Platform ---------------------------------- 7.00.745 s70745i.exe x86
Be aware that any time SQL Server is un-clustered for any reason, the hotfix files must be removed.
There are two way to work around this:
For Replication, use one of these workarounds: