User written report on subschema content includes sets not in the subschema.

Document ID : KB000004119
Last Modified Date : 14/02/2018
Show Technical Document Details
Issue:

A query running directly against the dictionary (using OLQ or SQL) is finding more sets than those which actually are shown to be in the subschema when it is displayed in the subschema compiler.

For example:

DIS SUBS EMPSS09.                                                      
*+   ADD                                                               
*+   SUBSCHEMA NAME IS EMPSS09 OF SCHEMA NAME IS EMPSCHM VERSION IS 100
*+       .                                                             
*+   ADD                                                               
*+   AREA NAME IS EMP-DEMO-REGION                                      
*+       .                                                             
*+   ADD                                                               
*+   AREA NAME IS ORG-DEMO-REGION                                      
*+       .                                                             
*+   ADD                                                               
*+   RECORD NAME IS EMPLOYEE                                           
*+       .                                                             
*+   ADD                                                               
*+   RECORD NAME IS OFFICE                                             
*+       .                                                             
*+   ADD                                                               
*+   RECORD NAME IS EMPOSITION                                         
*+       .                                                             
*+   ADD                                                               
*+   SET NAME IS OFFICE-EMPLOYEE                                       
*+       .

SELECT SS_NAM_026, SET_NAM_034             
FROM APPLDICT."SS-026", APPLDICT."SSOR-034"
WHERE "SS-SSOR" AND SS_NAM_026='EMPSS09';
*+                                         
*+ SS_NAM_026  SET_NAM_034                 
*+ ----------  -----------                 
*+ EMPSS09     OFFICE-EMPLOYEE             
*+ EMPSS09     JOB-EMPOSITION              
*+ EMPSS09     CALC                        
*+                                         
*+ 3 rows processed                                 

Note that there is a JOB-EMPOSITION SSOR-034 record in the dictionary but that the JOB-EMPOSITION set is not in the subschema.

Environment:
CA-IDMS, all supported releases, any operating system.
Cause:

When a subschema is being compiled, there are some specific conditions which result in an SSOR-034 dictionary record being created under a particular subschema for a set which is not actually in the subschema.

This is done for performance reasons.

These sets can be identified by the SSOR-LOK-034 field having a value of 106. This is the sum of the valid bit values for this field which identify which actions cannot be performed against the set within the subschema.

SELECT SS_NAM_026, SET_NAM_034, SSOR_LOK_034                 
FROM APPLDICT."SS-026", APPLDICT."SSOR-034"                  
WHERE "SS-SSOR" AND SS_NAM_026='EMPSS09';                    
*+                                                           
*+ SS_NAM_026  SET_NAM_034                       SSOR_LOK_034
*+ ----------  -----------                       ------------
*+ EMPSS09     OFFICE-EMPLOYEE                              0
*+ EMPSS09     JOB-EMPOSITION                             106
*+ EMPSS09     CALC                                         0
*+                                                           
*+ 3 rows processed                                           

Therefore, SSOR-034 records with SSOR-LOK-034=106 should be considered as “logically deleted”.

Resolution:

Change your query or program to exclude SSOR-034 records with SSOR-LOK-034=106.

Additional Information:

For further information, see the CA IDMS docops section on the SSOR-034 dictionary record type.