Purpose (problem description)

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 -

Observed in CAST AIP
Release
Yes/No
8.3.x(tick)
Observed on RDBMS
RDBMS
Yes/No

CSS

(tick) 

Step by Step scenario

  1. Launch Dashboard.
  2. 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:

  1. 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
  2. If the PRI , RPF and VI displayed on the dashboard is not matching your manual calculation and
    1. If the values of PRI , RPF and VI is displayed as zero then Check if there are any null values for total checks .
      1. 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.
      2. 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.
        1. If the snapshot ranking is not correctly filled then apply the solution so that the table is correctly filled.
        2. If the snapshot ranking is correctly filled and if you are still facing this issue then please contact CAST Technical Support with Relevant input
    2. 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 
      1. If there exists SCC group then this explains the root cause and the above page contains the steps to eliminate them
      2. If SCC groups do not exist then please contact CAST Technical Support with Relevant input

Relevant input

  1. CAST Support Tool (CST) - alias Sherlock  with the options Export CAST Databases and Export Logs checked.
  2. 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 -

Query1
select DSS_PROPAGATE_RESULTS_TO_APP(<snapshot_id>);

 

Query2
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)
        )

 

Query3
select DSS_CLEANUP_COMPUTE_METRIC( <snapshot_ID> );
  1. Run Query1 , Query2 , Query3 in the increasing order of Snapshot IDs received with the above corruption.
  2. 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

  1. 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)
            )
  2. 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);
  3. Relaunch the CAST Engineering Dashboard
Notes/comments


Related Pages