Scenario
Do you have a primary site and a few secondary sites in ConfigMgr 2012+?
Do you schedule the legacy Package format to update on a schedule?
Do you have a backlog in the distribution manager?
Well, so far this is known (by Microsoft) defect that apparently is yet to be fixed (until 1606 – nothing confirmed beyond that)
Symptoms
If you review the database where ConfigMgr resides you can see that there is a constant growing amount of DistributionJobs. Sample query to get an overview;
use <database> select COUNT(*) from distributionjobs
The problem grows the more packages you have set to update on a schedule. The frequency of the schedule is not relevant, the package will loop into a forever updating loop. Most likely the primary site will handle this efficiently, however the sending to secondary sites will cause a backlog that is not just an annoyance but causing severe problems as the backlog will continue to grow.
Repeating this: The frequency of the schedule is not relevant. Just check the above checkbox and the issue will occur.
SQL query to locate relevant packages
use <database> select pkg.PkgID, pkg.Manufacturer, pkg.Name, pkg.Version, pkg.Language, pkg.RefreshSchedule from SMSPackages as pkg where datalength(pkg.RefreshSchedule) !=0
Fixit
Easy – uncheck all these check-boxes that updates packages. If you still want to update packages on a schedule use a powershell script to trigger the update and use the task scheduler to run the update.
Run the command-line;
powershell -executionpolicy bypass -file SCCM.UpdatePkg.ps1 -packageid <PACKAGEID>
Code:
(I honestly don’t know if I have stolen / copied this from somewhere – if I have give me a ping and I will remove this)
#======================================================================== # Created on: 2014-10-28 15:06 # Created by: Nicke Källén # Organization: Applepie.se # Filename: SCCM.UpdatePkg.ps1 #======================================================================== Param( [Parameter(Mandatory=$True,Position=1)] [string]$packageid ) Function Invoke-CMPackageUpdate { [CmdLetBinding()] Param( [Parameter(Mandatory=$True,HelpMessage="Please Enter Primary Server Site code")] $SiteCode, [Parameter(Mandatory=$True,HelpMessage="Please Enter Primary Server Name")] $SiteServer, [Parameter(Mandatory=$True,HelpMessage="Please Enter Package/Application ID")] $PackageID ) Try{ $PackageClass = [wmiclass] "\\$($siteserver)\root\sms\site_$($sitecode):SMS_Package" $newPackage = $PackageClass.CreateInstance() $newPackage.PackageID = $PackageID $newPackage.RefreshPkgSource() } Catch{ $_.Exception.Message } } Invoke-CMPackageUpdate -SiteCode <SITECODE> -SiteServer <SERVER> -PackageID $packageid