You have a computer that is running Windows Server 2003 R2 Service Pack 2 (SP2).
This computer is part of a replication group. This computer replicates one or more replicated folders together with its replication partners.
You install Distributed File System (DFS) Replication on this computer.
In this scenario, the DFS Replication service exits unexpectedly. An instance of the following system event ID 7031 is logged in the Application log:
EventID 7031 Source: Service Control Manager: The DFS Replication service terminated unexpectedly. It has done this 1 time(s). The following corrective action will be taken in 300000 milliseconds: Restart the service.
If you use Performance Monitor or Task Manager to monitor the memory usage of the DFS Replication service, you find that the DFS Replication service consumes up to 2 gigabyte (GB) of memory before the service exits.
This self-termination issue occurs on only the x86-based platforms because of the limited address space.
The memory consumption issue may occur on the x64-based platforms.
You cannot work around this issue by using the /3GB switch because DFS Replication is not a "large address space"-aware service.
This issue occurs because the Extensible Storage Engine (also known as ESE) database used by DFS Replication consumes too much virtual memory (paged pool). Therefore, DFS Replication cannot allocate more memory for other operations, and the DFS Replication service exits.
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing the problem described in this article. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
To apply this hotfix, your computer must be running Windows Server 2003 Service Pack 2 (SP2).
For more information about how to obtain a Windows Server 2003 service pack or a Windows XP Professional x64 Edition service pack, click the following article number to view the article in the Microsoft Knowledge Base:
889100 How to obtain the latest service pack for Windows Server 2003
After you apply this hotfix, define a memory limit for the ESE database cache of DFS Replication. The value of this limit is specified by the number of 8-KB pages that might be used. To set the memory limit, follow the steps in the following "Preparation" section and "Configuration" section.
Check the DFS Replication database size per volume. To perform this check, follow these steps:
The DFS Replication database (Dfsr.db) is located on every volume configured for DFS Replication at the following location:
\System Volume Information\DFSR\database_<GUID>\
Note To obtain a list of volumes that are configured for DFS Replication, at a command prompt, type the following command, and then press ENTER:
C:\>wmic /namespace:\\root\microsoftdfs path DfsrVolumeInfo get VolumePath,VolumeGuid
The following is a sample of the output that is generated when you run this command:
By default, only the Local System account has access to this directory structure. However, you can give the administrator access to the folders. Therefore, use one of the following methods to access this directory structure:
To run the console session in the Local System account context on a computer that is running Windows Server 2003, at a command prompt, type the following command, and then press ENTER:
PSEXEC –S CMD.EXE
Note To run the console session in the Local System account context by using a remote desktop connection to the computer, at a command prompt, type the following command, and then press ENTER:
To access this directory structure by using the Administrator account, enable the "Read" permissions of the hidden files and the system files in the System Volume Information folder that is located in the root of the volume. To do this, add "Read" permissions for the Administrator account to the folder. After you do this, you can view the System Volume Information folder. Make sure that you restore the permissions after you complete the following step.
Note The "System Volume Information" folder uses ACL to prevent access by all accounts except the Local System account. Therefore, any attempt to access the directory results in an "Access Denied" message. To avoid this, add "Read" permissions to the Administrator account for the folder.
Run the following command against every volume. From the output, remember the database size per volume. At a command prompt, type the following command, and then press ENTER:
DIR /S <Volume>\System Volume Information\DFSR\database_<GUID>\DFSR.DB
Note The GUID is the globally unique identifier of the database.
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.
Apply the appropriate configuration. To apply the configuration, create the registry items that are mentioned in the appropriate scenario for your environment. The following is a list of scenarios:
The sizes of the DFS Replication ESE databases on all volumes that host the replicated folders are the same. In this scenario, specify a common memory utilization limit for the ESE database cache for all volumes. This limit applies to the DFS Replication ESE databases that are located on all volumes of the computer. To do this, create the follow registry entry:
You have three volumes that host replicated folders on a computer.
You want the ESE database cache of the DFS Replication to use a maximum of 1.2 GB of memory on this computer.
You want to distribute this limit equally between the DFS Replication ESE databases that are located on all three volumes.
Calculate the number of 8-KB pages that make up 1.2 GB of memory. 1.2 GB of memory is 1258291.2 KB or approximately 1258000 KB that is equal to approximately 157250 8-KB pages. Therefore, the maxDbCacheSizeInPages data has to be set to a value of 157250 decimal. This number represents the number of pages that will be equally distributed across all three volumes. This equal distribution of 8-KB pages is 52416 8-KB pages per volume.
The sizes of the DFS Replication ESE databases on all volumes that host replicated folders are not the same. In this scenario, specify a different memory utilization limit for the ESE database cache for each volume. To do this, create the following maxDbCacheSizeInPages registry value under the existing volume-specific key:
Note The placeholder “Volume GUID” is a placeholder for one of the corresponding volume GUIDs that you found in the "Preparation" section.
For example, assume that you have the following drives, and the following corresponding DFS Replication database sizes:
Volume F that has a database size of 0.8 GB
Volume G that has a database size of 2.2GB
Volume H that has a database size of 1.0 GB
The total size of all databases is 4.0 GB.
In this example, assume that you want the ESE database cache of the DFS Replication to use a maximum of 1.2 GB of memory on this computer. For distributing 157250 8-KB pages (approximately 1.2 GB), set the following values for the maxDbCacheSizeInPages registry entries in decimal:
Volume F that has a database of 0.8 GB Volume F: 157250 x 0.8 / 4.0 = 31450 8-KB pages
Volume G that has a database of 2.2 GB Volume G: 157250 x 2.2 / 4.0 = 86487 8-KB pages
Volume H that has a database of 1.0 GB Volume H: 157250 x 1.0 / 4.0 = 39312 8-KB pages
The maximum value per volume is a hard limit of 0x7fffffff hexadecimal that is equal to 2147483647 decimal.
After you specify the data for the registry entries, restart the service.
You must restart the computer after you apply this hotfix.
Hotfix replacement information
This hotfix does not replace a previously released hotfix.
The English (United States) version of this hotfix installs files that have the attributes that are listed in the following tables. The dates and the times for these files are listed in Coordinated Universal Time (UTC). The dates and the times for these files on your local computer are displayed in your local time together with your current daylight saving time (DST) bias. Additionally, the dates and the times may change when you perform certain operations on the files.
Windows Server 2003 file information notes
In addition to the files that are listed in these tables, this hotfix also installs an associated security catalog file (KBnumber.cat) that is signed with a Microsoft digital signature.
For all supported x86-based versions of Windows Server 2003
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
To download the Psexec.exe tool, visit the following Microsoft Web site: