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 (903002)



The information in this article applies to:

  • Microsoft SQL Server 2000 (all editions)

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:

Modification Type:MajorLast Reviewed:9/8/2006
Keywords:kbnetwork kbDatabase kbtshoot kbprb KB903002 kbAudDeveloper kbAudITPRO