Accessibility of deleted segments

Segments that are either physically deleted or logically deleted remains accessible under certain circumstances.

A physically deleted segment remains accessible under the following circumstances:
  • A physical dependent of the deleted segment is a logical parent accessible from its logical children.
  • A physical dependent of the deleted segment is a logical child accessible from its logical parent.
  • A physical parent of the deleted segment is a logical child accessible from its logical parent. The deleted segment in this case is variable intersection data in a bidirectional logical relationship.

A logically deleted logical child cannot be accessed from its logical parent.

Neither physical or logical deletion prevents access to a segment from its physical or logical children. Because logical relationships provide for inversion of the physical structure, a segment can be physically or logically deleted or both, and still be accessible from a dependent segment because of an active logical relationship. A physically deleted root segment can be accessed when it is defined as a dependent segment in a logical DBD. The logical DBD defines the inversion of the physical DBD. The following figure shows the accessibility of deleted segments.

When the physical dependent of a deleted segment is a logical parent with logical children that are not physically deleted, the logical parent and its physical parents are accessible from those logical children.

Figure 1. (Part 1 of 5). Example of deleted segments accessibility
Root SEG1 (PP) has child SEG2 (LC if SEG6). Root SEG3 (PD, PP) has child SEG4 (PD, LC of SEG7), which has child SEG5 (PD), which has child SEG6 (PD, LP). Root SEG7 (LP) has VLC SEG8.

The physical structure in preceding figure shows that SEG3, SEG4, SEG5, and SEG6 have been physically deleted, probably by issuing a DLET call for SEG3. This resulted in all of SEG3's dependents being physically deleted. (SEG6's delete rule is not P, or a 'DX' status code would be issued.)

SEG3, SEG4, SEG5, and SEG6 remain accessible from SEG2, the logical child of SEG6. This is because SEG2 is not physically deleted. However, physical dependents of SEG6 cannot be accessible, and their DASD space is released unless an active logical relationship prohibits

When the physical dependent of a deleted segment is a logical child whose logical parent is not physically deleted, the logical child, its physical parents, and its physical dependents are accessible from the logical parent.

The logical child segment SEG4 remains accessible from its logical parent SEG7 (SEG7 is not physically deleted). Also accessible are SEG5 and SEG6, which are variable intersection data. The physical parent of the logical child (SEG3) is also accessible from the logical child (SEG4).

A physically and logically deleted logical child can be accessed from its physical dependents. See the following figure.

Figure 2. (Part 2 of 5). Example of deleted segments accessibility
Root SEG1 (PP) has child SEG2 (LC if SEG6). Root SEG3 (PD, PP) has child SEG4 (PD and LD, LC of SEG7), which has child SEG5 (PD), which has child SEG6 (PD, LP). Root SEG7 (LP)has VLC SEG8.

The physical structure in the preceding figure shows that logical child SEG4 is both physically and logically deleted.

From a previous example (part 1 of 4), we know SEG6 (a logical parent) is accessible from SEG2, if that segment (its logical child) is not physically deleted. We also know that once we've accessed SEG6, its physical parents (SEG5, SEG4, SEG3) are accessible. It does not matter that the logical child is logically deleted (which is the only difference between this example and that of part 1 of 4).

The third path cannot be blocked because no delete bit exists for this path. Therefore, the logical child SEG4 is accessible from its dependents even though it is been physically and logically deleted.

When a segment accessed by its third path is deleted, it is physically deleted in its physical data base, but it remains accessible from its third path. See the following figure and code.

Figure 3. (Part 3 of 5). Example of deleted segments accessibility
PCB: SEG1 with SEG2/SEG6 below it. SEG5 is below SEG2/SEG6.
Figure 4. (Part 4 of 5). Example of deleted segments accessibility: database calls
GHU 'SEG5'  STATUS='  '
DLET        STATUS='  '

SEG5 is physically deleted by the DLET call, and SEG 6 is physically deleted by propagation. SEG2/SEG6 has unidirectional pointers, so SEG2 was considered logically deleted before the DLET call was issued. The LD bit is only assumed to be set on. See the following figure.

Figure 5. (Part 5 of 5). Example of deleted segments accessibility
Root SEG1 (PP) has child SEG2 (LD, LC if SEG6). Root SEG3 (PP) has child SEG4 (LC of SEG7), which has child SEG5 (PD), which has child SEG6 (PD, LP). Root SEG7 (LP) has VLC SEG8.

The results are interesting. SEG5 is inaccessible from its physical parent path (from SEG4) unless SEG4 is accessed by its logical parent SEG7 (SEG5 and SEG6 are accessible as variable intersection data). SEG5 is still accessible from its third path (from SEG6) because SEG6 is still accessible from its logical child. Thus, a segment can be physically deleted by an application program and still be accessible to that application program, using the same PCB used to delete the segment.