Microsoft KB Archive/903002

From BetaArchive Wiki
Knowledge Base


A "Failed to reserve contiguous memory" error message may be logged in the SQL Server error log when users connect to an instance of SQL Server by using a network packet size that is larger than 8,060 bytes

Article ID: 903002

Article Last Modified on 3/15/2007



APPLIES TO

  • Microsoft SQL Server 2000 Standard Edition




SYMPTOMS

In Microsoft SQL Server 2000, when users connect to an instance of SQL Server by using a network packet size that is larger than 8,060 bytes, an error message that is similar to the following may be logged in the SQL Server error log:

WARNING: Failed to reserve contiguous memory of Size= <allocation_size>. ... Dynamic Memory Manager: Stolen=xx OS Reserved=<reserved pages> OS Committed=<committed pages> OS In Use=<in use pages>

This problem occurs when <allocation_size> is larger than or equal to 65,536 and <reserved pages>, <committed pages>, and <in use pages> are larger than 100 MB.

CAUSE

This problem occurs because network packet sizes that are larger than 8,060 bytes require SQL Server to allocate memory from a region of memory that uses a size of 384 MB.

Note By default, the Microsoft .NET Framework Data Provider for SQL Server sets the network packet size to 8,192 bytes.

RESOLUTION

To resolve this problem, specify a network packet size that is smaller than 8,060 bytes. For example, for a .NET Framework Data Provider for SQL Server connection, add the following property to your connection string:

Packet Size=4096

MORE INFORMATION

The network packet size of a client connection can be determined by monitoring the Audit Login event or the ExistingConnection event in SQL Profiler. The Integer Data data column contains the network packet size.

For more information about how to monitor events by using SQL Profiler, visit the following Microsoft Developer Network (MSDN) Web site:


Additional query words: SQL2000

Keywords: kbnetwork kbdatabase kbtshoot kbprb KB903002