Article ID: 948603 - View products that this article applies to.
Consider the following scenario:
The progress that the defragmentation task makes before this error output occurs depends on the size of the database and on the server configuration. Smaller databases may not experience this problem.
File maintenance: compact to <target> Opening database [Current]. Executing Command: C:\WINDOWS\system32\esentutl.exe /d"<source>\ntds.dit" /t"<target>\ntds.dit" /p /o Initiating DEFRAGMENTATION mode... Database: <source>\ntds.dit Temp. Database: <target>\ntds.dit Defragmentation Status (% complete) 0 10 20 30 40 50 60 70 80 90 100 |----|----|----|----|----|----|----|----|----|----| ....................... Operation terminated with error -1011 (JET_errOutOfMemory, Out of Memory) after 1431.78 seconds. Spawned Process Exit code 0xfffffc0d(-1011)
In this scenario, you do not run out of virtual memory, and there is enough physical memory installed. It does not matter whether you are running the defragmentation task together with the /3GB switch in the Boot.ini file.
Note This problem does not occur on 64-bit systems.
This problem occurs if the Windows Server 2003-based computer has more than 3 gigabytes (GB) of physical memory. In this case, the Esentutl.exe utility gives incorrect cache size hints to the database engine. Therefore, the database engine experiences a cache allocation error, and it stops the offline defragmentation.
This problem does not occur on 64-bit systems because the cache calculation of the Esentutl.exe utility differs significantly on these systems.
To resolve this problem, follow these steps:
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.