Within a Service Manager environment, there are two management groups, one operational management group and one data warehouse management group.  In order for data to be committed to the data warehouse correctly, management packs (sealed only) that are in the operational management group need to be sync’d over to the data warehouse management group, and the versions of the management packs needs to be the same in both.  This sync is performed by a DWSyncJob job that runs every hour, and imports any management packs into the data warehouse management group where the MP doesn’t exist or is out of date.  Note, the sync only functions one-way.

DWSyncJob

This job is rather useful, as within an hour of importing any new management packs, or updated management packs, the DW will be in sync, however there is a scenario where a sync can repetitively fail, and generate a lot of errors in the event log.  This is where a sealed management pack has an update that is not upgrade compatible; in this scenario you would need to export the management pack from the operational management group, and then import the new version… Sounds fine!  But, by the time the MPSync job runs, it doesn’t understand that the original MP was removed to allow the new version to be imported, therefore the DW management group will keep trying to import the new version over the top of the old version, which will always fail!

If you hit this scenario, you will see a lot of errors in the Operations Manager log regarding data not being able to be inserted into the data warehouse correctly, and management pack import failure events which will provide information that the MP cannot be imported as it’s not upgrade compatible.  To fix this issue is actually relatively simple, and that is to delete the old version of the MP from the DW management group, and then let the MPSync job sync over the correct version.  This can’t be done in the console though, so it’s into PowerShell…

 

This is the same command that would be used to remove a management pack from the operational management group, but just being run against the Data Warehouse management server.

While this fixes the issue, it would be nice not to get into this state in the first place, and a way of doing this is to…

1.  Remove the management pack in question from the operational management group.

2.  Wait for the MPSyncJob job to run, which will also remove the management pack from the data warehouse management group.

3.  Import the new version of the management pack into the operational management group.

4.  Wait for the MPSyncJob job to run, which will import the management pack to the data warehouse management group.

 

To check the job schedule, just use this PowerShell one-liner, which will tell you schedule, start date and time, and the next run date and time.

 

DW Job Schedule

 

REMEMBER:  To run DW cmdlets in PowerShell, you need to load the Warehouse cmdlets as these are not loaded when running the Service Manager shell:

 

Also, if you are not running the command of the DW management server, you will need to add the -ComputerName parameter.

Happy Service Manager managing!

David