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.
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”.
Change your query or program to exclude SSOR-034 records with SSOR-LOK-034=106.
For further information, see the CA IDMS docops section on the SSOR-034 dictionary record type.