Starting with Cireson Asset Management version 8.2.0.2016, we've updated the Location class to allow a more precise tax rate by increasing the number of decimal points allowed. Specifically, the Scale field on the LocationTaxRate field was increased from 3 to 4. This works well for the SCSM Management Server, but automatic deployment to DataWarehouse for the DW MPs will fail with an error similar to the following in the event log.
ERROR 33403 Deployment Execution Infrastructure encountered an error while executing a deployer. MP element ID: CiresonLocationDim MP name: Cireson.AssetManagement.DataWarehouse MP version: 8.2.0.2016 Operation: Update Error message: System.Data.SqlClient.SqlException: The index 'NCI0_CiresonLocationDim' is dependent on column 'LocationTaxRate'. The index 'NCI1_CiresonLocationDim' is dependent on column 'LocationTaxRate'. ALTER TABLE ALTER COLUMN LocationTaxRate failed because one or more objects access this column.
Similarly, your list of DW Management Packs for CAM Cubes and Reporting will also fail to deploy and be stuck in a permanent "Waiting" status, while the MPSyncJob will have a successfully completed status of "Not Started". This is just the MPSyncJob reporting it's status incorrectly.
To fix this, we must first remove the index for each DW database that needs to have its corresponding Location table altered. Once the index is removed, the management pack deployment process will be able to proceed, and it will then automatically recreate each index open successful deployment.
On the SCSM DW SQL server, run the following eight lines to remove the problematic indices.
--Start
drop index NCI0_CiresonLocationDim ON CMDWDataMart.dbo.CiresonLocationDim WITH ( ONLINE = OFF )
drop index NCI1_CiresonLocationDim ON CMDWDataMart.dbo.CiresonLocationDim WITH ( ONLINE = OFF )
drop index NCI0_CiresonLocationDim ON DWDataMart.dbo.CiresonLocationDim WITH ( ONLINE = OFF )
drop index NCI1_CiresonLocationDim ON DWDataMart.dbo.CiresonLocationDim WITH ( ONLINE = OFF )
drop index NCI0_CiresonLocationDim ON DWRepository.dbo.CiresonLocationDim WITH ( ONLINE = OFF )
drop index NCI1_CiresonLocationDim ON DWRepository.dbo.CiresonLocationDim WITH ( ONLINE = OFF )
drop index NCI0_CiresonLocationDim ON OMDWDataMart.dbo.CiresonLocationDim WITH ( ONLINE = OFF )
drop index NCI1_CiresonLocationDim ON OMDWDataMart.dbo.CiresonLocationDim WITH ( ONLINE = OFF )
--End
Next, go back to the SCSM console > Data Warehouse > Management Packs, select the failed MP Cireson Asset Management Data Warehouse, and then hit the Restart Deployment task on the right.
- You must click the task
- You cannot simply wait for MPSyncJob to resync the MP, as it has already failed and given up.
- Running MPSyncJob has no effect here.
Within 15 seconds or so, the DataWarehouse Management Server event log will spawn a new event for your restarted deployment.
Afterwards, it will restart deployments on the waiting jobs and successfully install cubes and then reporting.
Success!