Client push is still bit confusing topic when you’ve SCCM 2012 hierarchy hierarchy with CAS and Primary servers. Neil Peterson had posted about the Stand alone primary server client push scenario in his post here. However, when you’ve hierarchy with SCCM 2012 CAS and Primaries then SCCM client push scenario is bit different. I had stumbled across a scenario where we’ve enabled the client push on a SCCM primary server and as per the CCM.log it was trying to connect to sccm client in another primary site. Is this normal behavior? How the ConfigMgr 2012 client push enabled in a primary site is trying to install client assigned to another primary site in the hierarchy? Scenario is “Discovery and the site-wide client push installation method enabled on primary site however Site-wide Client push is disabled on other primary sites“
SCCM client push has been enabled on a specific primary server and the client push account specified in that primary site is trying to connect all the machines listed in the view called “V_CP_Machine“. V_CP_Machine contains all the discovered resources that are assigned to the site and that do not have a client installed. Client push installation starts and tracks the installation of the client by using the Configuration Manager database and no longer creates individual .CCR files.
Why my primary server is trying to connect to the clients assigned to other primary sites?
So as mentioned above, in SCCM 2012 client push is not based on individual .CCR file. Rather the SCCM 2012 client push is based on SQL DB view V_CP_Machine. When I checked the V_CP_Machine in my primary server DB it shows the list of machines (clients) which are assigned to another primary sites in my hierarchy. Hence my primary server is trying to connect to the machines which are listed in V_CP_Machine.
Why V_CP_Machine view contains the all machines in SCCM hierarchy?
V_CP_Machine SQL view is related to a table called “ClientPushMachine_G“. The table “ClientPushMachine_G” (Article Name) is part of Global data replication pattern. The replication group name is Configuration Data. You must be knowing that GLOBAL data is replicated all over the hierarchy, so that is reason for having same list of machines in V_CP_Machine view all around the SQL DBs(Primary servers and CAS server). More details about Replication patterns, Replication groups and Article IDs are explained in my following post “FAQs Related to SCCM 2012 SQL Database Replication“.
What is the content of the view “V_CP_Machine”?
In the below table (SCCM view), you can see that against each client record it gives “Last Error Code” detail. Last error code details could be very helpful for troubleshooting SCCM client Push issues. SCCM client push error codes are nothing but Windows Error codes. Details of Windows error codes are available in the TechNet documentation here.
[table caption="V_CP_Machine" class="table table-bordered" ai="1" width="400" colwidth="150|50|300" colalign="left"]
MachineID,Name,LatestProcessingAttempt,LastErrorCode,PushSiteCode,AssignedSiteCode,InitialRequestDate,Description,NumProcessAttempts,ErrorEventCreated,Status 16777479,ACNCMClient,2015-03-06 12:30:41.000, 53, PRI, PRI, 2015-02-27,13:12:56.880, Retry, 169, NULL
How Do I delete the client records from Client Push method “V_CP_Machine”?
As mentioned above, V_CP_Machine SQL view is related to a table called ClientPushMachine_G. And you can delete the records from the table if you’re in a critical situation. But directly editing SCCM SQL DB is not supported. I can see 3 DRS Stored procedures in SQL related to client push. I hope, one is to delete the Client Push Machines, another is for Handle Unique Key of client push machines and 3rd one is for Upsert Client Push Machines. So what is DRS?, Data replication Service.
Where I can find the details of Stored Procedures used for Client Push Installation?
The Stored procedures details are there in the CCM.log file. Following are the Stored Procedures those I can see in the SCCM 2012 DB which is related Client Push.
Getting a new request from queue "Retry" after 100 millisecond delay. $$<03-17-2015 22:28:23.073-480><thread=11344 (<span="" class="hiddenSpellError" pre="" data-mce-bogus="1">0x2C50)> Found CCR "2097909935.ccr" in queue "Retry". $$<03-17-2015 22:28:23.073-480><thread=11344 (0x2c50)=""> Execute query exec [sp_CP_GetPushRequestMachine] 2097909935~ $$<03-17-2015 22:28:23.223-480><thread=11344 (0x2c50)=""> Successfully retrieved information for machine ACNCLient2 from DB $$<03-17-2015 22:28:23.231-480><thread=11344 (0x2c50)=""> Execute query exec [sp_CP_GetPushRequestMachineIP] 2097909935~ $$<03-17-2015 22:28:23.231-480><thread=11344 (0x2c50)=""> Execute query exec [sp_CP_GetPushRequestMachineResource] 2097909935~ $$<03-17-2015 22:28:23.325-480><thread=11344 (0x2c50)=""> Execute query exec [sp_CP_GetPushMachineName] 2097909935~ $$<03-17-2015 22:28:23.346-480><thread=11344 (0x2c50)="">