Reassigning Distribution Point (Behind the scenes)
My customer wanted to know what happens behind the scenes when they select the option Reassign Distribution Point (This option was previously known as "Upgrade Distribution Point" on RTM and SP1 version), which upgrades/migrates a ConfigMgr 2007 Distribution Point to a ConfigMgr 2012 Distribution Point.
Scenario: You need to upgrade a ConfigMgr 2007 Distribution Point to ConfigMgr 2012 Distribution Point and the goal is to avoid redistributing content throughout the network.
That said, our focus on this post is to talk about this specific "behind the scenes process", the main idea here is to provide additional information for those who need to troubleshoot this process.
Here is what happens when you click on "Reassign Distribution Point" on ConfigMgr 2012 R2:
1. Deletes DP role in the source site
2. Deletes site system record in the source site
3. Deletes shared DP role in the destination site
4. Deletes shared DP site system record in the destination site
5. Installs a new site system in the destination site
6. Installs a new DP role in the destination site
7. Runs a store procedure "sp_MIG_UpgradeDistributionPoint" to fix NALPath to point to new Distribution Point (created in the step 6) in the following Distribution Point related tables:
- PkgServers
- PkgStatus
- ContentDPMap
- DPUpgradeStatus
This is important so all packages prior to DP upgrade can continue to work with new DP without redistributing the content again.
8. Drop a notification ( .dpu file with the DP ID number under of distmgr.box) that wakes Distribution Manager to convert the old SMSPkg folder to new content library. You can see the process through the distmgr.log on site server side and the smsdpprov.log on the DP side. As soon as the Distribution Manager component gets the DP upgrade notification, it does the following:
- It goes through each migrated package on that Distribution Point, it gets the Distribution Point package location on the DP for this package from the ContentDPMap table for each such package.
- It connects to this DP and imports all the package files to the SIS (Single Instance Store) Content Library in the upgraded DP.
- Once all the files have been successfully copied to the Content Library, it removes the package files from the DP package location, depending upon whether or not the package is marked to copy content to the package share (This is enabled to migrated packages if there is an associated advertisement which requires package to be run directly from Distribution Point).
9. When the conversion is done, Distribution Manager marks the "Distribution Point upgrade job" to completed, with the ContentLib folder containing three folders:
- DataLib
- FileLib
- PkgLib
Troubleshooting Tip:
If you cannot see all three folders above, you have an issue. Review the logs: distmgr.log on the site server side and smsdpprov.log on the Distribution Point side to more information.
I've seen a common error and you may see that too: "Failed to convert content". If you open the distmgr.log you'll be able to see a WMI error as well which it is not the issue.
The solution here is straight forward, you just need to follow few steps:
1. Run the following query against your site server by using SQL Management Studio:
- Select * from DistributionPoints where ServerName = '<DP Server name>'
2. Get the DP ID number, then create an empty .dpu file, in my lab as my DP is ID 4, the file was: 4.dpu
3. Drop this file in \distmgr.box, wait few seconds
You're basically enforcing the content conversion process, so you're be able to see your DP upgraded/migrated through the console with the status Completed reassign Distribution Point.
Final considerations here, I do recommend you to enable SQL tracing and verbose logging to see further information through the distmgr.log, in case you want to go deep in this process, it's really good stuff.
Special thanks to ConfigMgr Product Team for helping me out with the details on this process.
Hope this help!
Cheers,
Andre Della Monica
SMS/SCCM Senior Premier Field Engineer