This page is a troubleshooting guide for the problem where VI , RPF and PRI values are incorrect on dashboard. For instance a very high value or a 0 value that is not matching your manual calculation.
As seen in the below example the RPF is zero , the QR selected is Avoid Tables not using referential integrity, but the problem occurs throughout the dashboard across all the Quality rules -
Release | Yes/No |
---|---|
8.3.x |
RDBMS | Yes/No |
---|---|
CSS |
Step by Step scenario
- Launch Dashboard.
- Observe that the values for PRI VI and RPF is 0 throughout the dashboard / a very big or small number that you are not expecting
Action Plan
To troubleshoot this issue, you need the following Relevant input
Perform the below actions:
- Calculate the value of PRI , RPF and VI using the formula in the documentation page and CAST Engineering Dashboard - Information - How to calculate the Risk Propagation Factor of an object for Robustness Performance or Security Violation
- If the PRI , RPF and VI displayed on the dashboard is not matching your manual calculation and
- If the values of PRI , RPF and VI is displayed as zero then Check if there are any null values for total checks .
- If there are null values then this is due to a bug caused by performing consolidation on the snapshot , this issue is fixed in CAST AIP 8.1.1 apply the solution provided as a temporary work around.
- If there are no null values for total checks or if you are still having issues after applying the solution then Check if the snapshot ranking is corrected filled.
- If the snapshot ranking is not correctly filled then apply the solution so that the table is correctly filled.
- If the snapshot ranking is correctly filled and if you are still facing this issue then please contact CAST Technical Support with Relevant input
- If the values of PRI , RPF and VI are not displayed as zero but a very high number , for instance in trillions then the cause of this is the presence of SCC groups. To check if there exists SCC groups in your results you may check the TCC log files. Please refer to the below page on how to check if there exists SCC group and how to remidiate the same - Check if there is a large SCC group that has been ignored in the analysis
- If there exists SCC group then this explains the root cause and the above page contains the steps to eliminate them
- If SCC groups do not exist then please contact CAST Technical Support with Relevant input
- If the values of PRI , RPF and VI is displayed as zero then Check if there are any null values for total checks .
Relevant input
- CAST Support Tool (CST) - alias Sherlock with the options Export CAST Databases and Export Logs checked.
- Complete Screenshot of dashboard showing url
Check if there are any null values for total checks
Execute the below query on Central Base to check if there are any Null values -
select distinct snapshot_id from DSS_METRIC_RESULTS where (SNAPSHOT_ID, OBJECT_ID, METRIC_ID) in (select distinct dmr2.SNAPSHOT_ID, dmr2.OBJECT_ID, dmr2.METRIC_ID from DSS_METRIC_RESULTS dmr2 left join DSS_METRIC_RESULTS dmr0 on dmr0.SNAPSHOT_ID = dmr2.SNAPSHOT_ID and dmr0.METRIC_ID = dmr2.METRIC_ID and dmr0.OBJECT_ID = dmr2.OBJECT_ID and dmr0.METRIC_VALUE_INDEX = 0 where dmr2.METRIC_ID in (select dmt.METRIC_ID from DSS_METRIC_TYPES dmt where dmt.METRIC_GROUP = 1 ) and dmr2.METRIC_VALUE_INDEX = 2 and dmr2.METRIC_NUM_VALUE = 0 and dmr0.METRIC_NUM_VALUE is null);
If the query does not return any rows it means there are no total checks with null value. If the query returns rows it means that those snapshots are having NULL total checks. For example -
Snapshot_id
-----------------
3
4
Snapshot ID 3 and 4 needs to be repaired.
Check if the snapshot ranking is corrected filled
Execute the below query on Central Base to check if the snapshot ranking is corrected filled -
select distinct snapshot_id from dss_snapshots where snapshot_id not in (select distinct snapshot_id from dss_snapshot_ranking);
If the query does not return any rows it means that the snapshot ranking is corrected filled.
Else if the query returns values like -
Snapshot_id
-----------------
5
6
then apply the below solution -
select DSS_PROPAGATE_RESULTS_TO_APP(<snapshot_id>);
delete from DSS_METRIC_RESULTS where (SNAPSHOT_ID, OBJECT_ID, METRIC_ID) in (select dmr.SNAPSHOT_ID, dmr.object_id, dmr.metric_id from DSS_METRIC_RESULTS dmr where dmr.METRIC_VALUE_INDEX = 2 and dmr.METRIC_NUM_VALUE = 0 and dmr.METRIC_ID in (select dmt.METRIC_ID from DSS_METRIC_TYPES dmt where dmt.METRIC_GROUP = 1) and dmr.OBJECT_ID in (select dos.OBJECT_ID from DSS_OBJECTS dos where dos.OBJECT_TYPE_ID = -102) )
select DSS_CLEANUP_COMPUTE_METRIC( <snapshot_ID> );
- Run Query1 , Query2 , Query3 in the increasing order of Snapshot IDs received with the above corruption.
- Relaunch the CED
example - For our case it is snapshotID 3 and 4
For snapshot ID - 3
select DSS_PROPAGATE_RESULTS_TO_APP(3);
delete from DSS_METRIC_RESULTS where (SNAPSHOT_ID, OBJECT_ID, METRIC_ID) in (select dmr.SNAPSHOT_ID, dmr.object_id, dmr.metric_id from DSS_METRIC_RESULTS dmr where dmr.METRIC_VALUE_INDEX = 2 and dmr.METRIC_NUM_VALUE = 0 and dmr.METRIC_ID in (select dmt.METRIC_ID from DSS_METRIC_TYPES dmt where dmt.METRIC_GROUP = 1) and dmr.OBJECT_ID in (select dos.OBJECT_ID from DSS_OBJECTS dos where dos.OBJECT_TYPE_ID = -102) )
select DSS_CLEANUP_COMPUTE_METRIC(3);
Next, for snapshotID 4
select DSS_PROPAGATE_RESULTS_TO_APP(4);
delete from DSS_METRIC_RESULTS where (SNAPSHOT_ID, OBJECT_ID, METRIC_ID) in (select dmr.SNAPSHOT_ID, dmr.object_id, dmr.metric_id from DSS_METRIC_RESULTS dmr where dmr.METRIC_VALUE_INDEX = 2 and dmr.METRIC_NUM_VALUE = 0 and dmr.METRIC_ID in (select dmt.METRIC_ID from DSS_METRIC_TYPES dmt where dmt.METRIC_GROUP = 1) and dmr.OBJECT_ID in (select dos.OBJECT_ID from DSS_OBJECTS dos where dos.OBJECT_TYPE_ID = -102) )
select DSS_CLEANUP_COMPUTE_METRIC(4);
Solution
Run the query on the Central Database -
delete from DSS_METRIC_RESULTS where (SNAPSHOT_ID, OBJECT_ID, METRIC_ID) in (select dmr.SNAPSHOT_ID, dmr.object_id, dmr.metric_id from DSS_METRIC_RESULTS dmr where dmr.METRIC_VALUE_INDEX = 2 and dmr.METRIC_NUM_VALUE = 0 and dmr.METRIC_ID in (select dmt.METRIC_ID from DSS_METRIC_TYPES dmt where dmt.METRIC_GROUP = 1) and dmr.OBJECT_ID in (select dos.OBJECT_ID from DSS_OBJECTS dos where dos.OBJECT_TYPE_ID = -102) )
Run the below query on Central Database in the increasing order for the snapshot IDs received with the corruption total checks contains NuLL values
select DSS_CLEANUP_COMPUTE_METRIC( <snapshot_ID> );
Example in our case the output is 3 and 4 so you need to run it for snapshot_ID 3 then for 4
select DSS_CLEANUP_COMPUTE_METRIC(3); select DSS_CLEANUP_COMPUTE_METRIC(4);
- Relaunch the CAST Engineering Dashboard