August, 2019

Moving the Content Library to remote share tips

The Move

When moving the content library we ran into a few issues, the main one was that the process kept getting aborted:

CopyFiles failed; 0x800703e3 SMS_DISTRIBUTION_MANAGER 10/07/2019 8:52:34 AM 8488 (0x2128)
MoveContentLibrary() failed. 0x800703e3. SMS_DISTRIBUTION_MANAGER 10/07/2019 8:52:34 AM 8488 (0x2128)

This was due to backups running every night. So first disable Backups when you plan to do the move.

Each time the move fails, it starts again and gets quicker as I believe it skips copying files already moved. However still takes a long time.

 

The documentation states that Despooler and Distribution manager components are stopped during the move. This isn't the case exactly (Build 1902).

The Move has 2 stages - Copy, Copy2 and some cleanup actions.

During the first Copy you can still create and distribute packages, you can see the processing threads open

Currently using 0 out of 50 allowed package processing threads.

Copy2

Checks for changes

Checking for new files added or modified during content library move process to \\LongDFSShare\SCCMContent\Content, in 60 seconds.

Finally stops package distribution

Active: Despooler=0, Distmgr=0, Cleanup=0              SMS_DISTRIBUTION_MANAGER 17/07/2019 5:07:22 AM 15668 (0x3D34)

Currently using 0 out of 0 allowed package processing threads.

Then starts a new move, skipping most the files however still will take a some time.

 

Post Move

Post Move hurts a bit as well. The file paths in the content library can't be longer than 240 characters, so going from D:\SCCMContentLib to \\LongDFSShare\SCCMContent\Content you lose 17 characters.

In actual prod we are facing a loss of 44 characters.. So all our content copied across but SCCM can't use some packages with long paths, so far I've worked out our max file path in a App/package folder is now 165 characters after you account for Contentlibrary subfolders and ini files.

So move your content to a really short share name.

Example errors in Distmgr.log when the path is too long

Invalid content definition (cannot get file hash): \\DFS\ContentLibrary\Content\DataLib\Content_bf1a7e7a-0c8d-4fb3-a53d-96e5623b3076.1\resources\x64\dwgviewr\program files\root\inventor server\textures\surfaces\Sitework.Site Improvements.Fences - GatesWood.Shadowbox-Trellis&.bmp.INI SMS_DISTRIBUTION_MANAGER 1/08/2019 10:55:49 AM 6244 (0x1864)
_wfopen_s() failed for \\DFS\ContentLibrary\Content\DataLib\Content_bf1a7e7a-0c8d-4fb3-a53d-96e5623b3076.1\resources\x64\dwgviewr\program files\root\inventor server\textures\surfaces\Sitework.Site Improvements.Fences & GatesWood.Shadowbox-Trellis&.bmp.INI with error 2 SMS_DISTRIBUTION_MANAGER 1/08/2019 10:55:49 AM 6244 (0x1864)
GetPrivateProfileStringW failed for File, Size, \\DFS\ContentLibrary\Content\DataLib\Content_bf1a7e7a-0c8d-4fb3-a53d-96e5623b3076.1\resources\x64\dwgviewr\program files\root\inventor server\textures\surfaces\Sitework.Site Improvements.Fences & GatesWood.Shadowbox-Trellis&.bmp.INI SMS_DISTRIBUTION_MANAGER 1/08/2019 10:55:49 AM 6244 (0x1864)
ProfileReadStringEx failed; 0x80070002 SMS_DISTRIBUTION_MANAGER 1/08/2019 10:55:49 AM 6244 (0x1864)
ProfileReadLargeIntEx failed; 0x80070002 SMS_DISTRIBUTION_MANAGER 1/08/2019 10:55:49 AM 6244 (0x1864)