Object Replication Manager failed to process Object changes.

Symptoms

Did your SMS_OBJECT_REPLICATION_MANAGER component shows a lot or 6004 MessageIDs with the following description: “Object Replication Manager failed to process Object changes. These changes will be retried on next processing cycle.?

Cause

By design, maybe.

Resolution

Run the following query in SQL Management Studio (Warning! modifying the database directly may not be supported by Microsoft. Do this on your own risk.):

SELECT ca.UniqueID,c.CollectionName
FROM vClientSettingsAssignments as ca LEFT JOIN collections AS c ON ca.CollectionID=c.SiteID
WHERE CollectionName = NULL

This will show collection name/s for all active assignments to collection/s that do not exist anymore.

If you have any, copy the UniqueID and run the following query:

DELETE FROM vClientSettingsAssignments
WHERE UniqueID = ‘{UniqueId here}’

Credit goes to: https://social.technet.microsoft.com/Forums/en-US/2e9ba246-194d-47d4-adc9-eb3b1717bfdc/object-replication-manager-failed-to-process-object-changes?forum=configmanagergeneral

Upgrade Configuration Manager client

Recently I reinstalled ConfigMgr server in my company and was looking for an easy method to upgrade all Configuration Manager clients to 4.00.6487.2000 version.
Put some notes on the table and finally made the following plan:

  • Create a report that counts all client versions. (This is optional, just for informational purposes).
    Report query is:SELECT TOP (100) PERCENT Client_Version0 AS [ConfigMgr client version], COUNT(Client_Version0) AS Total
    FROM dbo.v_R_System GROUP BY Client_Version0, Client0 HAVING (Client0 = 1)
    ORDER BY Total DESC, [ConfigMgr client version]
  • Create a collection (“Older Clients” for example) with all system resources with a client version not 4.00.6487.2000.
    Collection query is:SELECT SMS_R_SYSTEM.ResourceID, SMS_R_SYSTEM.ResourceType, SMS_R_SYSTEM.Name, SMS_R_SYSTEM.SMSUniqueIdentifier, SMS_R_SYSTEM.ResourceDomainORWorkgroup, SMS_R_SYSTEM.Client
    FROM SMS_R_System
    WHERE SMS_R_System.ClientVersion != "4.00.6487.2000"

    This way, system resources with older client version will be members of this collection.

  • Created a package and program with ConfigMgr client upgrade with custom command line parameters.
    Program command line is:CCMSETUP.EXE /noservice SMSSITECODE=CFM SMSCACHESIZE=1024 SMSSLP=BLAH.DOMAIN.COM SMSMP=BLAH.DOMAIN.COM RESETKEYINFORMATION=TRUE
  • Advertised it to “Older Clients” collection.

Now, as system resources with older client version are members of this collection they will receive the advertisement and will silently install the latest ConfigMgr client.

When the collection will have no system resources, I will know that all clients are upgraded. Also, I can check this by opening the same report from any browser on any computer.

Create an advertisement only for Windows 7 systems

Let’s suppose you create a package with one program and want to advertise it only to a few selected platforms, including x86 and x64 Windows 7 systems. Because Windows 7 is not supported yet with Configuration Manager 2007 SP1, you cannot choose it from the supplied list of platforms. As a result of this, after receiving and downloading the package, the system will give you the following message:
Program rejected (wrong platform). Advertisement "XYZ12345" from site "XYZ" was rejected because the client's platform is not supported.

It is expected that SP2 will add support for Windows 7, but until then we can use the following workaround:

  1. Create a collection with all Windows 7 systems
    select sms_r_system.ResourceID, sms_r_system.ResourceType, sms_r_system.Name, sms_r_system.SMSUniqueIdentifier, sms_r_system.ResourceDomainORWorkgroup, sms_r_system.Client from sms_r_system where OperatingSystemNameandVersion like '%Workstation 6.1%'
  2. Create a new program (for example Program for Win7) for the same package and select “This program can run on any platform” as a requirement.
  3. Create a new advertisement and use “Program for Win7” program. Advertise it to Windows 7 collection created earlier.

That’s it. This may not be the best workaround, but it worked very well for me, at least until SP2 will RTM and I can install it in production.