File-Based Replication
ConfigMgr uses file-based replication for certain operations such as transferring package content to distribution points in child sites. Chapter 5, “Network Design,” describes the scenarios that use file replication and the relevant configuration options. The “Components and Communications” section presented an overview of how file-based replication works. This section uses the transfer of the file content to illustrate in more detail how file-based replication works. ConfigMgr components work together to prepare file content, schedule replication, and execute Windows file copy operations.
Again processing begins when the Database Notification Monitor detects a change in the site database. In this case, an administrator has initiated distribution of a package to a distribution point at a secondary site. The Database Notification Monitor log shows DBMON dropping a package notification file in the Distribution Manager inbox:
RCV: INSERT on PkgNotification for PkgNotify_Add [PR100003 ][72057594037942821] SMS_DATABASE_NOTIFICATION_MONITOR 1/10/2012 12:57:45 PM 3652 (0x0E44) SND: Dropped F:\Program Files\Microsoft Configuration Manager\inboxes\distmgr.box\PR100003.PKN [72057594037942820] SMS_DATABASE_NOTIFICATION_MONITOR 1/10/2012 12:57:45 PM 3652 (0x0E44)
Here are some status messages showing Distribution Manager processing the request to distribute a package to a child site:
Distribution Manager is beginning to process package "MOFComp" (package ID = PR100003). Distribution Manager is preparing to send the compressed image of package "PR100003" to child site "SS1". Distribution Manager instructed Scheduler and Sender to send package "PR100003" to child site "SS1".
The Distribution Manager log shows additional detail about the processing between the time that Distribution Manager began preparing to send the compressed image and the time it instructed the Scheduler and Sender to send the package.
Needs to send the compressed package for package PR100003 to site SS1 1/10/2012 12:57:57 PM 4892 (0x131C) Sending a copy of package PR100003 to site SS1 1/10/2012 12:57:57 PM 4892 (0x131C) The reporting site of site SS1 is this site. 1/10/2012 12:57:58 PM 4892 (0x131C) Use drive F for storing the compressed package. 1/10/2012 12:57:58 PM 4892 (0x131C) Incremented ref count on file F:\SMSPKG\PR100003.SS1.PCK, count = 1 1/10/2012 12:57:59 PM 4892 (0x131C) Setting CMiniJob transfer root to F:\SMSPKG\PR100003.SS1.PCK 1/10/2012 12:57:59 PM 4892 (0x131C) Incremented ref count on file F:\SMSPKG\PR100003.SS1.PCK, count = 2 1/10/2012 12:57:59 PM 4892 (0x131C) Decremented ref count on file F:\SMSPKG\PR100003.SS1.PCK, count = 1 1/10/2012 12:57:59 PM 4892 (0x131C) Created minijob to send compressed copy of package PR100003 to site SS1. Transfer root = F:\SMSPKG\PR100003.SS1.PCK. 1/10/2012 12:57:59 PM 4892 (0x131C)
This shows Distribution Manager creating the compressed package F:\SMSPKG\PR100003.SS1.PCK. Distribution Manager then notifies the Scheduler and Sender by dropping a JOB file in its inbox. The details of the notification process are not logged but can be seen through Process Monitor events such as the ones shown in Table 3.7.
Table 3.7. File Operations That Initiate Intersite Replication
Operation |
Details |
Component |
CreateFile |
\\ATHENA.ODYSSEY.COM\SMS_PR1\inboxes\schedule.box\0000005F.JOB |
Distribution Manager |
WriteFile |
\\ATHENA.ODYSSEY.COM\SMS_PR1\inboxes\schedule.box\0000005F.JOB |
Distribution Manager |
ReadFile |
\\ATHENA.ODYSSEY.COM\SMS_PR1\inboxes\schedule.box\0000005F.JOB |
Scheduler |
The component names shown in Table 3.7 are not displayed in the Process Monitor output but are determined by matching the thread IDs (TIDs) to the TIDs in the log files.
Here is an extract from the Scheduler log showing the Scheduler creating an instruction file for the Sender:
<Activating JOB 0000005F> [Software Distribution for MOFComp, Package ID = PR100003] 1/10/2012 12:58:12 PM 5844 (0x16D4) Destination site: SS1, Preferred Address: *, Priority: 2 1/10/2012 12:58:12 PM 5844 (0x16D4) Instruction type: MICROSOFT|SMS|MINIJOBINSTRUCTION|PACKAGE 1/10/2012 12:58:12 PM 5844 (0x16D4) Creating instruction file: \\ATHENA.ODYSSEY.COM\SMS_PR1\inboxes\schedule.box\tosend\0000005F.Iem 1/10/2012 12:58:12 PM 5844 (0x16D4) Transfer root: F:\SMSPKG\PR100003.SS1.PCK 1/10/2012 12:58:12 PM 5844 (0x16D4) Instruction (and package) file created. Mark job active. 1/10/2012 12:58:12 PM 5844 (0x16D4) <JOB STATUS - ACTIVE> 1/10/2012 12:58:12 PM 5844 (0x16D4) <Updating JOB 0000005F> [Software Distribution for MOFComp, Package ID = PR100003] 1/10/2012 12:58:12 PM 5844 (0x16D4) Destination site: SS1, Preferred Address: *, Priority: 2 1/10/2012 12:58:12 PM 5844 (0x16D4) Created new send request ID: 2002NPR1 1/10/2012 12:58:13 PM 5844 (0x16D4)
The following excerpts from the LAN Sender log show the major phases of the sending operation. First, the Sender connects to the Scheduler’s outbox (\..\schedule.box\outboxes\LAN) to check for sender instructions. The Sender then finds the send request and establishes a connection to the destination site.
Connecting to F:\Program Files\Microsoft Configuration Manager\inboxesschedule.box\outboxes\LAN. COutbox::TakeNextToSend(pszSiteCode) Retrieved the snapshot for priority 2, there are 1 files in the snapshot. Found send request. ID: 2002NPR1, Dest Site: SS1 Created sending thread (Thread ID = 1AF4) Trying the No. 1 address (out of 1) Passed the xmit file test, use the existing connection
The next major phase of the sender operation is to locate the package and instruction files and verify that they are not already on the destination server:
Package file = F:\SMSPKG\PR100003.SS1.PCK Instruction file = F:\Program Files\Microsoft Configuration Manager\inboxesschedule.box\tosend\0000005F.Iem Checking for remote file \\CHARON.odyssey.com\SMS_SITE\2002NPR1.PCK
The final major phase of the sending process is to actually transmit the data, together with package instructions that will allow the Despooler component at the receiving site to unpack and correctly route the files:
Attempt to create/open the remote file \\CHARON.odyssey.com\SMS_SITE\2002NPR1.PCK Created/opened the remote file Attempt to write 1024 bytes to \\CHARON.odyssey.com\SMS_SITE\2002NPR1.PCK at position 0 Wrote 1024 bytes to \\CHARON.odyssey.com\SMS_SITE\2002NPR1.PCK at position 0 Sending completed [F:\SMSPKG\PR100003.SS1.PCK] Finished sending SWD package PR100003 version 1 to site SS1
Other processes not detailed here due to space considerations include the receiving end of the site join, processing file signatures and hashes, and content status updates applied to the site database.