Content Lookup in configuration Manager

Content Lookup in configuration Manager

Whether it is Software distribution , Software updates deployment or application deployment in 2012 the Majority of the issues comes is w.r.t to the clients not getting the Contents.

This Blogs is on how we can check and find out the reason why the client is not able to get the contents.

Whenever Client needs a content it will ask its local management point for the content and management point check against the site database and return back the list of distribution point which is used by the client.

Boundaries \ Boundary group are a important part while content lookup are made. The boundaries and boundary group can be used to limit the DP which can server a client for content lookup.

 

This link talks about the DP selection logic and generic flow https://technet.microsoft.com/en-us/library/bb932150.aspx

 

If you are looking at a top level flow this is what happens

 

The content access service component (CAS) of Ccmexec service will Request for Content . The content transfer Manager (CTM)will create  a CTM job and the location services will send the content request to MP and receive the reply from MP and the same is used by CAS which in turn starts the Data transfer job to download the content.

That said easy let us look in to more depth Flow

 

Software distribution ( Legacy Package )

 

The reference package in this case is P010000F

 

When the execmgr is trigged for a particular advertisement the request will be given to CAS. Log snippet will be as follows in the client

 

Execmgr.log

Requesting content from CAS for package P010000F version 1 execmgr 13-11-2013 3.23.48 PM 3820 (0x0EEC)

CAS.log

CDownloadManager::RequestDownload P010000F.1.System ContentAccess 13-11-2013 3.23.48 PM 3820 (0x0EEC)
DownloadManager::FindDownloadInfo with P010000F.1.System ContentAccess 13-11-2013 3.23.48 PM 3820 (0x0EEC)
Submitted CTM job {2A98991A-4135-4C90-8658-72970FD1792D} to download Content P010000F.1 under context System ContentAccess 13-11-2013 3.23.48 PM 3820 (0x0EEC)

 

ContentTransfermanager.log

Starting CTM job {2A98991A-4135-4C90-8658-72970FD1792D}. ContentTransferManager 13-11-2013 3.23.48 PM 3820 (0x0EEC)
Attempting to create Location Request for PackageID='P010000F' and Version='1' ContentTransferManager 13-11-2013 3.23.48 PM 2800 (0x0AF0)
ContentLocationRequest : <ContentLocationRequest SchemaVersion="1.00" ExcludeFileList=""><Package ID="P010000F" Version="1"/><AssignedSite SiteCode="P01"/><ClientLocationInfo LocationType="SMSPackage" DistributeOnDemand="0" UseAzure="0" AllowWUMU="0" UseProtected="1" AllowCaching="0" BranchDPFlags="0" UseInternetDP="0" AllowHTTP="1" AllowSMB="1" AllowMulticast="1"><ADSite Name="Default-First-Site-Name"/><Forest Name="msdindia.com"/><Domain Name="msdindia.com"/><IPAddresses><IPAddress SubnetAddress="192.168.1.0" Address="192.168.1.54"/></IPAddresses></ClientLocationInfo></ContentLocationRequest>
 ContentTransferManager 13-11-2013 3.23.48 PM 2800 (0x0AF0)
Created and Sent Location Request '{4B177871-CBD4-444B-B388-76C1D94E3E35}' for package P010000F ContentTransferManager 13-11-2013 3.23.49 PM 2800 (0x0AF0)
CTM job {2A98991A-4135-4C90-8658-72970FD1792D} entered phase CCM_DOWNLOADSTATUS_DOWNLOADING_DATA ContentTransferManager 13-11-2013 3.23.49 PM 2800 (0x0AF0)

One the request reaches the Management point , the MP_location Manager component will query the DB and get the reply according to the request. You can clearly see the request and the reply once you enable verbose logging on the MP.

 

MP_Location.log

 

 MP LM: Message Body : <ContentLocationRequest SchemaVersion="1.00" ExcludeFileList=""><Package ID="P010000F" Version="1"/><AssignedSite SiteCode="P01"/><ClientLocationInfo LocationType="SMSPackage" DistributeOnDemand="0" UseAzure="0" AllowWUMU="0" UseProtected="1" AllowCaching="0" BranchDPFlags="0" UseInternetDP="0" AllowHTTP="1" AllowSMB="1" AllowMulticast="1"><ADSite Name="Default-First-Site-Name"/><Forest Name="msdindia.com"/><Domain Name="msdindia.com"/><IPAddresses><IPAddress SubnetAddress="192.168.1.0" Address="192.168.1.54"/></IPAddresses></ClientLocationInfo></ContentLocationRequest>
 MP_LocationManager 13-11-2013 3.23.52 PM 3160 (0x0C58)

MP_GetContentDPInfoUnprotected (P010000F,1,P01,SMSPackage,00000000,msdindia.com,msdindia.com,<ClientLocationInfo LocationType="SMSPackage" DistributeOnDemand="0" UseAzure="0" AllowWUMU="0" UseProtected="1" AllowCaching="0" BranchDPFlags="0" UseInternetDP="0" AllowHTTP="1" AllowSMB="1" AllowMulticast="1"><ADSite Name="DEFAULT-FIRST-SITE-NAME"/><Forest Name="msdindia.com"/><Domain Name="msdindia.com"/><IPAddresses><IPAddress SubnetAddress="192.168.1.0" Address="192.168.1.54"/></IPAddresses></ClientLocationInfo>) MP_LocationManager 13-11-2013 3.23.53 PM 3160 (0x0C58)

MP LM: Reply message body:
<ContentLocationReply SchemaVersion="1.00">< ContentInfo PackageFlags="16777216"><ContentHashValues/></ContentInfo><Sites><Site><MPSite SiteCode="P01" MasterSiteCode="P01" SiteLocality="LOCAL" IISPreferedPort="80" IISSSLPreferedPort="443"/><LocationRecords><LocationRecord><URL Name="https://PRIMARY1.msdindia.com/SMS_DP_SMSPKG$/P010000F " Signature="https://PRIMARY1.msdindia.com/SMS_DP_SMSSIG$/P010000F"/><ADSite Name="Default-First-Site-Name"/><IPSubnets><IPSubnet Address="192.168.1.0"/ ><IPSubnet Address=""/></IPSubnets><Metric Value=""/><Version>7804</Version><Capabilities SchemaVersion="1.0"><Property Name="SSLState" Value="0"/></Capabilities><ServerRemoteName>PRIMARY1.msdindia.com</ServerRemoteName><DPType>SERVER</DPType><Windows Trust="1"/><Locality>LOCAL</Locality></LocationRecord></LocationRecords></Site></Sites></ContentLocationReply> MP_LocationManager 13-11-2013 3.23.55 PM 3160 (0x0C58)

 

 

The details supplied on the request becomes the parameter for the SP. The SP which will be run and the parameter is shown below.

 

exec MP_GetContentDPInfoUnprotected N'P010000F',N'1',N'P01',N'SMSPackage',N'0',N'msdindia.com',N'msdindia.com',N' <ClientLocationInfo LocationType="SMSPackage" DistributeOnDemand="0"
UseAzure="0"
AllowWUMU="0"
UseProtected="1"
AllowCaching="0"
BranchDPFlags="0"
UseInternetDP="0"
AllowHTTP="1"
AllowSMB="1"
AllowMulticast="1"><ADSite
Name="DEFAULT-FIRST-SITE-NAME"/><Forest
Name="msdindia.com"/><Domain
Name="msdindia.com"/><IPAddresses><IPAddress SubnetAddress="192.168.1.0"
Address="192.168.1.54"/></IPAddresses></ClientLocationInfo>'

 

Now at the client side you can see the reply in location services.log. The CTM will then hand over this information to CAS and you can see the list of DP in CAS which has the content. The list is purely dependent on the request which you had made and it is the policy on the client which will help in frame the request.

 

LocationServices.log

Processing Location reply message LocationServices 13-11-2013 3.23.55 PM 3820 (0x0EEC)
ContentLocationReply : <ContentLocationReply SchemaVersion="1.00"><ContentInfo PackageFlags="16777216"><ContentHashValues/></ContentInfo><Sites><Site><MPSite SiteCode="P01" MasterSiteCode="P01" SiteLocality="LOCAL" IISPreferedPort="80" IISSSLPreferedPort="443"/><LocationRecords><LocationRecord><URL Name="https://PRIMARY1.msdindia.com/SMS_DP_SMSPKG$/P010000F" Signature="https://PRIMARY1.msdindia.com/SMS_DP_SMSSIG$/P010000F"/><ADSite Name="Default-First-Site-Name"/><IPSubnets><IPSubnet Address="192.168.1.0"/><IPSubnet Address=""/></IPSubnets><Metric Value=""/><Version>7804</Version><Capabilities SchemaVersion="1.0"><Property Name="SSLState" Value="0"/></Capabilities><ServerRemoteName>PRIMARY1.msdindia.com</ServerRemoteName><DPType>SERVER</DPType><Windows Trust="1"/><Locality>LOCAL</Locality></LocationRecord></LocationRecords></Site></Sites></ContentLocationReply> LocationServices 13-11-2013 3.23.55 PM 3820 (0x0EEC)
Calling back with the following distribution points LocationServices 13-11-2013 3.23.55 PM 3820 (0x0EEC)
Distribution Point='https://PRIMARY1.msdindia.com/SMS_DP_SMSPKG$/P010000F', Locality='LOCAL', DPType='SERVER', Version='7804', Capabilities='<Capabilities SchemaVersion="1.0"><Property Name="SSLState" Value="0"/></Capabilities>', Signature='https://PRIMARY1.msdindia.com/SMS_DP_SMSSIG$/P010000F', ForestTrust='TRUE', LocationServices 13-11-2013 3.23.55 PM 3820 (0x0EEC)

Contenttransfermanager.log

Persisted location 'https://PRIMARY1.msdindia.com/SMS_DP_SMSPKG$/P010000F', Order 0, for CTM job {2A98991A-4135-4C90-8658-72970FD1792D} ContentTransferManager 13-11-2013 3.23.55 PM 3820 (0x0EEC)
Persisted locations for CTM job {2A98991A-4135-4C90-8658-72970FD1792D}:
 (LOCAL) https://PRIMARY1.msdindia.com/SMS_DP_SMSPKG$/P010000F ContentTransferManager 13-11-2013 3.23.55 PM 3820 (0x0EEC)

CAS.log

Location update from CTM for content P010000F.1 and request {B48EB1C0-67AC-478D-B739-67ABAC725576} ContentAccess 13-11-2013 3.23.55 PM 3844 (0x0F04)
Download location found 0 - https://PRIMARY1.msdindia.com/SMS_DP_SMSPKG$/P010000F ContentAccess 13-11-2013 3.23.55 PM 3844 (0x0F04)

 

Once the list is made the CTM will create a DTS job and the DTS will download the content to the cache which will be informed to the execmgr.

 

Contenttransfermanager.log

CTM job {2A98991A-4135-4C90-8658-72970FD1792D} (corresponding DTS job {75ECF167-D371-41A7-B82A-56AF1F49D553}) started download from 'https://PRIMARY1.msdindia.com/SMS_DP_SMSPKG$/P010000F' for full content download. ContentTransferManager 13-11-2013 3.23.55 PM 3820 (0x0EEC)
CCTMJob::EvaluateState(JobID={2A98991A-4135-4C90-8658-72970FD1792D}, State=DownloadingData) ContentTransferManager 13-11-2013 3.23.55 PM 3308 (0x0CEC)

Datatransfermanager.log

DTSJob {75ECF167-D371-41A7-B82A-56AF1F49D553} created to download from 'https://PRIMARY1.msdindia.com:80/SMS_DP_SMSPKG$/P010000F' to 'C:\Windows\ccmcache\2'. DataTransferService 13-11-2013 3.23.55 PM 3820 (0x0EEC)
Starting BITS download for DTS job '{75ECF167-D371-41A7-B82A-56AF1F49D553}'. DataTransferService 13-11-2013 3.23.58 PM 3844 (0x0F04)
Starting BITS job '{A6BEABA9-5369-4109-B942-DD1CA16B3CC6}' for DTS job '{75ECF167-D371-41A7-B82A-56AF1F49D553}' under user 'S-1-5-18'. DataTransferService 13-11-2013 3.23.58 PM 3844 (0x0F04)
DTS job {75ECF167-D371-41A7-B82A-56AF1F49D553} has completed:
 Status : SUCCESS,
 Start time : 11/13/2013 15:23:55,
 Completion time : 11/13/2013 15:23:59,
 Elapsed time : 4 seconds DataTransferService 13-11-2013 3.23.59 PM 3844 (0x0F04)

 

Application deployment

The flow is the same the only difference would in the request

So only the MP_location.log will have the difference

MP_location.log  

MP LM: Message Body : <ContentLocationRequest SchemaVersion="1.00" ExcludeFileList=""><Package ID="UID:Content_e7d29c06-007d-4661-9cd2-33f04d4a9b6b" Version="1"/><AssignedSite SiteCode="P01"/><ClientLocationInfo LocationType="SMSUpdate" DistributeOnDemand="0" UseAzure="0" AllowWUMU="0" UseProtected="0" AllowCaching="0" BranchDPFlags="0" UseInternetDP="0" AllowHTTP="1" AllowSMB="0" AllowMulticast="0"><ADSite Name="Default-First-Site-Name"/><Forest Name="msdindia.com"/><Domain Name="msdindia.com"/><IPAddresses><IPAddress SubnetAddress="192.168.1.0" Address="192.168.1.54"/></IPAddresses></ClientLocationInfo></ContentLocationRequest>
 MP_LocationManager 13-11-2013 3.42.39 PM 1872 (0x0750)

MP_GetContentDPInfoUnprotected (UID:Content_e7d29c06-007d-4661-9cd2-33f04d4a9b6b,1,P01,SMSUpdate,00000000,msdindia.com,msdindia.com,<ClientLocationInfo LocationType="SMSUpdate" DistributeOnDemand="0" UseAzure="0" AllowWUMU="0" UseProtected="0" AllowCaching="0" BranchDPFlags="0" UseInternetDP="0" AllowHTTP="1" AllowSMB="0" AllowMulticast="0"><ADSite Name="DEFAULT-FIRST-SITE-NAME"/><Forest Name="msdindia.com"/><Domain Name="msdindia.com"/><IPAddresses><IPAddress SubnetAddress="192.168.1.0" Address="192.168.1.54"/></IPAddresses></ClientLocationInfo>) MP_LocationManager 13-11-2013 3.42.39 PM 1872 (0x0750)

MP LM: Reply message body:
<ContentLocationReply SchemaVersion="1.00" ContentFlags="200960" HashAlgorithm="32780" AlgorithmPreference="4" Hash="0BBA8C4DE4B332293A132EFE7F0973FD7815C94FD585875BA0348C5D498F9B8C" ExcludeFileListHash="" RelatedContentID=""><ContentInfo PackageFlags="16777216"><ContentHashValues><Hash Algorithm="32780" HashString="0BBA8C4DE4B332293A132EFE7F0973FD7815C94FD585875BA0348C5D498F9B8C" HashPreference="4"/></ContentHashValues></ContentInfo><Sites><Site><MPSite SiteCode="P01" MasterSiteCode="P01" SiteLocality="LOCAL" IISPreferedPort="80" IISSSLPreferedPort="443"/><LocationRecords><LocationRecord><URL Name="https://PRIMARY1.msdindia.com/SMS_DP_SMSPKG$/Content_e7d29c06-007d-4661-9cd2-33f04d4a9b6b.1" Signature="https://PRIMARY1.msdindia.com/SMS_DP_SMSSIG$/Content_e7d29c06-007d-4661-9cd2-33f04d4a9b6b.1.tar"/><ADSite Name="Default-First-Site-Name"/><IPSubnets><IPSubnet Address="192.168.1.0"/><IPSubnet Address=""/></IPSubnets><Metric Value=""/><Version>7804</Version><Capabilities SchemaVersion="1.0"><Property Name="SSLState" Value="0"/></Capabilities><ServerRemoteName>PRIMARY1.msdindia.com</ServerRemoteName><DPType>SERVER</DPType><Windows Trust="1"/><Locality>LOCAL</Locality></LocationRecord></LocationRecords></Site></Sites></ContentLocationReply> MP_LocationManager 13-11-2013 3.42.39 PM 1872 (0x0750)

Package ID is easy to spot for the Content ID for a application you can get it from console.

 

 

Software Update Deployment

 In case of software deployment also it is the content ID. But the content ID is not as open as a application or package. For normal updates it will be the unique ID for the bundled ones we can find like this.

Click on the picture if you would like to see the picture clear. Here we have a update which is bundle Update :Security Update for Windows 7 for x64-based Systems (KB2532531) MS11-053(6e03d226-b005-4be7-8254-7c1760886bfd)

 

The request , reply in mp_location would look like this

Here updatehanlder will request CAS

 

Updatehandler.log

Bundle update (6e03d226-b005-4be7-8254-7c1760886bfd) is requesting download from child updates for action (INSTALL) UpdatesHandler 13-11-2013 4.21.45 PM 2460 (0x099C)
Content Text = <Content ContentId="0151d9cf-a409-4013-b00a-6f915096b410" Version="1"><FileContent Name="windows6.1-kb2532531-x64.cab" Hash="4625E47E04E8708B66895DE5439EC7221CCCD41B" HashAlgorithm="SHA1" Size="415374"/></Content>
 UpdatesHandler 13-11-2013 4.21.45 PM 2460 (0x099C)
CAtomicUpdate::SetState - Entered SetState - Update 0151d9cf-a409-4013-b00a-6f915096b410, Current State (member) = DOWNLOAD_READY,  Passed in state = WAIT_CONTENTS UpdatesHandler 13-11-2013 4.21.45 PM 2460 (0x099C)
State Transition - Update 0151d9cf-a409-4013-b00a-6f915096b410, State = WAIT_CONTENTS UpdatesHandler 13-11-2013 4.21.45 PM 2460 (0x099C)
CAtomicUpdate::SetState - Exit SetState - Update 0151d9cf-a409-4013-b00a-6f915096b410, Current State (member) = WAIT_CONTENTS, Passed in state = WAIT_CONTENTS UpdatesHandler 13-11-2013 4.21.45 PM 2460 (0x099C)
Starting download on action (INSTALL) for Update (0151d9cf-a409-4013-b00a-6f915096b410) UpdatesHandler 13-11-2013 4.21.45 PM 2460 (0x099C)

Mp_location.log

MP LM: Message Body : <ContentLocationRequest SchemaVersion= "1.00" ExcludeFileList=""><Package ID="UID:0151d9cf-a409-4013-b00a-6f915096b410" Version="1"/><AssignedSite SiteCode="P01"/><ClientLocationInfo LocationType="SMSUpdate" DistributeOnDemand="0" UseAzure="0" AllowWUMU="0" UseProtected="0" AllowCaching="0" BranchDPFlags="0" UseInternetDP="0" AllowHTTP="1" AllowSMB="1" AllowMulticast="1"><ADSite Name="Default-First-Site-Name"/><Forest Name="msdindia.com"/><Domain Name="msdindia.com"/><IPAddresses><IPAddress SubnetAddress="192.168.1.0" Address="192.168.1.54"/></IPAddresses></ClientLocationInfo></ContentLocationRequest>
 MP_LocationManager 13-11-2013 4.21.48 PM 4200 (0x1068)

MP_GetContentDPInfoUnprotected (UID:0151d9cf-a409-4013-b00a-6f915096b410,1,P01,SMSUpdate,00000000,msdindia.com,msdindia.com,<ClientLocationInfo LocationType="SMSUpdate" DistributeOnDemand="0" UseAzure="0" AllowWUMU="0" UseProtected="0" AllowCaching="0" BranchDPFlags="0" UseInternetDP="0" AllowHTTP="1" AllowSMB="1" AllowMulticast="1"><ADSite Name="DEFAULT-FIRST-SITE-NAME"/><Forest Name="msdindia.com"/><Domain Name="msdindia.com"/><IPAddresses><IPAddress SubnetAddress="192.168.1.0" Address="192.168.1.54"/></IPAddresses></ClientLocationInfo>) MP_LocationManager 13-11-2013 4.21.48 PM 4200 (0x1068)

MP LM: Reply message body:
<ContentLocationReply SchemaVersion="1.00"><ContentInfo PackageFlags="16777216"><ContentHashValues/></ContentInfo><Sites><Site><MPSite SiteCode="P01" MasterSiteCode="P01" SiteLocality="LOCAL" IISPreferedPort="80" IISSSLPreferedPort="443"/><LocationRecords><LocationRecord><URL Name="https://PRIMARY1.msdindia.com/SMS_DP_SMSPKG$/0151d9cf-a409-4013-b00a-6f915096b410" Signature="https://PRIMARY1.msdindia.com/SMS_DP_SMSSIG$/0151d9cf-a409-4013-b00a-6f915096b410.1.tar"/><ADSite Name="Default-First-Site-Name"/><IPSubnets><IPSubnet Address="192.168.1.0"/><IPSubnet Address=""/></IPSubnets><Metric Value=""/><Version>7804</Version><Capabilities SchemaVersion="1.0"><Property Name="SSLState" Value="0"/></Capabilities><ServerRemoteName>PRIMARY1.msdindia.com</ServerRemoteName><DPType>SERVER</DPType><Windows Trust="1"/><Locality>LOCAL</Locality></LocationRecord></LocationRecords></Site></Sites></ContentLocationReply> MP_LocationManager 13-11-2013 4.21.48 PM 4200 (0x1068)

 Hope this information will help in troubleshooting.

Sudheesh Narayanaswamy

Support Escalation Engineer

Comments

  • Anonymous
    January 01, 2003
    Just to clarify it is stored procedure (SP)
  • Anonymous
    January 01, 2003
    It's MP
    • Anonymous
      April 24, 2019
      I don't even remember why did I mentioned MP :) Thank you for the clarification!
  • Anonymous
    January 01, 2003
    Karim ! - I think this is typo. SP = MP
  • Anonymous
    January 01, 2003
    SP = stored procedure (SQL) i think.
  • Anonymous
    December 15, 2013
    Pingback from SCCM: Content Lookup in configuration Manager, troubleshooting, logfiles involved | MS Tech BLOG
  • Anonymous
    December 17, 2013
    Thank you for this explanation, It's a very great work ! I have a question please: what do you mean by SP in this sentence ? "The details supplied on the request becomes the parameter for the SP. The SP which will be run and the parameter is shown below."thanks
  • Anonymous
    April 29, 2014
    Thank you.... It was very very useful...
  • Anonymous
    December 05, 2014
    Nice explanation
  • Anonymous
    April 30, 2016
    The comment has been removed
  • Anonymous
    April 30, 2016
    The comment has been removed