Branch DP internals - SCCM 2007

Many customers have begun using the new Branch Distribution Point feature in SCCM 2007 - and it is fairly straight forward to setup.  But how does it actually work?  What changes have been made to accomodate the branch DP? Some required components are new and some are modified.  We will cover a few of these in the next couple of entries - we will start with Distribution Manager.

Distribution Manager - For standard DP's distribution manager is responsible for directly connecting to the distribution point, creating the DP shares if required and performing a file by file copy of package content to the destination directory.  If the target distribution point is at a child site, distribution manager is responsible for compressing the source content and creating the appropriate instructions to send the compressed content to the destination site where it will be copied to local DP's by the local distribution manager.

The branch DP is different because there is no content copied to it directly.  Rather, the branch DP pulls the content from a standard BITS enabled DP that is storing the content.  This pull is intiated when the branch DP receives notification (via policy) that content is targeted to it.  Distribution managers role in all of this is simply to trigger creation of the policy entries in the database that the branch DP will use to know what content it should provision.  A sample log entry showing this change in distribution manager functionality is below.

Distribution Manager Log Snips

Standard operation
Start adding package to server ["Display=\\STEVERACSMSBDD\"]MSWNET:["SMS_SITE=2K3"]\\STEVERACSMSBDD\... 
Will wait for 1 threads to end. 
Thread Handle = 3452 
Attempting to add or update a package on a distribution point. 
<Status message log entry omitted>
Established connection to ["Display=\\STEVERACSMSBDD\"]MSWNET:["SMS_SITE=2K3"]\\STEVERACSMSBDD\ 
The distribution point ["Display=\\STEVERACSMSBDD\"]MSWNET:["SMS_SITE=2K3"]\\STEVERACSMSBDD\ doesn't point to an existing path. 

Branch Distribution Point Operation
Start adding package to server ["Display=\\Testpeerdp1\"]MSWNET:["SMS_SITE=TOP"]\\Testpeerdp\...
DPID 3 - NAL Path ["Display=\\Testpeerdp\"]MSWNET:["SMS_SITE=TOP"]\\Testpeerdp\ is a PeerDP
Processing for Peer DP <-----We know this is a peer DP and will handle the package differently
<Status message log entry omitted>
Successfully updated PeerDPPkgMap for DPID 3 and PkgID TOP00004.
Successfully inserted MachineID for DPID 3 into PeerDPResMapChg_Notif table.
Created policy provider trigger for ID TOP00004 <-----Here, distribution manager is handing off
the trigger file it received to
 the policy provider
component for continued processing.

Distribution manager is triggered to begin operation by notification files.  These notification files are created by the SMS SQL Monitor component based on database triggers.  These files are zero length with filenames in the format of <package ID>.pkn.  These trigger files are the same regardless of standard DP operations or Branch DP operations.  For standard DP's, distribution manager processes the <package ID>.pkn and discards it.  In the case of Branch DP's distribution manager will process the file and then forward it to policypv.box which triggers policy provider to setup the required database policy to notify the Branch DP of the package that requires download.

Policy Provider Log Snip

Branch DP Processing
Detected changes in package TOP00004 <—Picking up <packageid>.pkn file
Looking for CIN files <---Looking for any Configuration Item Notification files
Looking for software policy and policy assignments that should be removed...
Did not find any software policy or policy assignments that should be removed.
Looking for Peer DP package policy and policy assignments that should be removed...
Did not find any Peer DP package policy or policy assignments that should be removed.
Looking for software policy and policy assignments that should be created...
Did not find any software policy or policy assignments that should be created.
Looking for Peer DP package policy and policy assignments that should be created...
<Status message omitted>
Successfully created policy {d85c2449-87b8-4bd0-ae5e-de7d3e3273bc} and policy assignment {7aee1882-3a3d-44f9-89c5-88e81943bc87} based on package TOP00004 <---Created required database policy for client

More information
For more information on the setup and operation of the Branch Distribution Point, see my article in the August 2007 edition of technet magazine - also available at the following link:

https://www.microsoft.com/technet/technetmag/issues/2007/08/BranchDP/default.aspx

I have also discussed branch DP operation modes and setup in a few previous blog entries.