The case of PullDP notification not getting generated on ConfigMgr 2012 R2


Hi Folks,

Recently had an issue where the Package does not get installed to a PullDP. Frankly, I never worked on PullDP as a concept itself. So this was an interest -

So what happens when you target a package to PullDP?

- We create a job by the PkgXferMgr to send the same. But as the mechanism suggests it’s a PULL mechanism and not PUSH. So we generate a XML notification and connect it to the WMI of the client and update and invoke the PullDP thread to download the data (PullDP.log). The CCM client is *not* required for the same but still this is based on the CCM framework.

- This is what I was getting in the PkgXferMgr.log –


Pull DP Sending thread starting for Job: 358, package: LP000066, Version: 1, Priority: 2, server: LABPLATAN.****.***.COM, DPPriority: 200               SMS_PACKAGE_TRANSFER_MANAGER                9/19/2014 4:30:34 PM           4860 (0x12FC)

Sending package info bundle LP000066 to PullDP. ["Display=\\labplatan.****.***.com\"]MSWNET:["SMS_SITE=LP1"]\\labplatan.****.***.com\    SMS_PACKAGE_TRANSFER_MANAGER               9/19/2014 4:30:34 PM           4860 (0x12FC)

*** [42000][313][Microsoft][SQL Server Native Client 11.0][SQL Server]An insufficient number of arguments were supplied for the procedure or function dbo.fnGetPullDPXMLNotification.      SMS_PACKAGE_TRANSFER_MANAGER                9/19/2014 4:30:34 PM           4860 (0x12FC)

Successfully performed WMI actions on pull DP LABPLATAN.****.***.COM. SMS_PACKAGE_TRANSFER_MANAGER                9/19/2014 4:30:34 PM             4860 (0x12FC)

PullDP Notification Sent, attempted count = 1/100, Restart time = 9/19/2014 4:35:34 PM Eastern Daylight Time               SMS_PACKAGE_TRANSFER_MANAGER                9/19/2014 4:30:34 PM           4860 (0x12FC)

Pull DP Sending thread complete          SMS_PACKAGE_TRANSFER_MANAGER                9/19/2014 4:30:34 PM           4860 (0x12FC)


 

- The logs move from there and if you miss the above highlighted line there are other various package related error that can divert your attention.

- So comparing this with a working thread in lab


Sending package info bundle DEL0000F to PullDP. ["Display=\\PKDC02.pk.local\"]MSWNET:["SMS_SITE=DEL"]\\PKDC02.pk.local\               SMS_PACKAGE_TRANSFER_MANAGER                9/19/2014 8:11:43 PM           5348 (0x14E4)

GeneratePullDPXMLNotification (( SELECT [dbo].[fnGetPullDPXMLNotification]('DEL0000F', 2, 'PKDC02.PK.LOCAL', 2, 'add', 1, 'O:SYG:BAD:P(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)(A;;FA;;;BA)(A;OICIIO;GA;;;BA)', 0, 32780, '47A95CCD4BAFAED25F8C1670AAC3BAC991A796896E5E9CC90C6131BF5BF41309', '') AS Notification ) AS Notifications)               SMS_PACKAGE_TRANSFER_MANAGER                9/19/2014 8:11:43 PM           5348 (0x14E4)


 

- So as highlighted it calls the GeneratePullDPXMLNotification() with a query as an input. Now in my case even with SQL logging and profiler I was not able to get to the query which was running. Strange right? Coz I thought everything that runs is recorded in profiler. Yep, it’s correct.

 

So what’s the reason? The answer is the query never ran!!! It was just passed as an input to the function and the mismatch of the parameters check happened before the actual running of the query.

So now how to get the query ?

- Checked the source and found that we do log the query passed in the DEBUGLOG() section. I am not pasting the query but  sQuery  is the MultiString which contains the query–

 

DEBUGLOG("GeneratePullDPXMLNotification (%ws)", (LPCWSTR)sQuery);

 

I think PkgXferMgr.log was actually verbose in the RTM or SP1 but definitely from R2 onwards they removed the same to avoid the noise when multiple packages are sent and becomes difficult to track.

Again from the source found we can enable both Verbose and Debug for the PkgXferMgr –

clip_image002

- In the above snaphot just make the LoggingLevel as 0 for Verbose and DebugLogging as 2 for maximum level of logging.

- Ran it and got the query –


GeneratePullDPXMLNotification (( SELECT [dbo].[fnGetPullDPXMLNotification]('LP0000D1', 1, 'LABPLATAN.PROD.MTB.COM', 2, 'redist', 1, 'O:SYG:BAD:P(A;;FA;;;BA)(A;OICIIO;GA;;;BA)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)(A;;FA;;;BA)(A;OICIIO;GA;;;BA)', 0, 32780, '61A19858BA6EF94A369EF7AF8596F3D051A3414FB094B066527971DE2DE99140', '') AS Notification ) AS Notifications)


 

- Now count the number of Parameters in the query its 11. When I checked the function fnGetPullDPXMLNotification in the SQL Mgmt Studio was 12 J. In my R2 lab it was 11 and they were on R2 too.

- clip_image004

- In his environment there was one more parameter below @ExpandShare, It was @ShareName. Verified in the SP1 lab that we do have 12 parameters including the one mentioned.

- So things pointed out to be may be at the time of upgrade this function did not get upgrade. Checked the setup logs and it just says it created the function but nothing related to errors. Anyways since we know the correct view definition we can go ahead with it.

- Saved the old view definition, Dropped the old function (drop function fnGetPullDPXMLNotification ) and then copied my definition. Things then worked like a charm 🙂

Do keep working and do keep sharing!!

Umair Khan

Support Escalation Engineer | Microsoft System Center Configuration Manager 

Disclaimer: This posting is provided "AS IS" with no warranties and confers no rights.

Comments (1)

  1. Ed (DareDevil57) says:

    thanks for sharing.

Skip to main content