Packaging in DATXPAGE envelopes

z/TPFCS uses object aggregation to represent actual collections (see Collection parts stored in the z/TPF database). Apart from the many data elements that can be contained in a collection, z/TPFCS groups more than one object together to represent the collection itself. Objects such as these are referred to as collection part objects, which are also known as collection parts or part objects. z/TPFCS uses part objects to store control information about collections as well as to hold or point to the data elements that are contained in those collections. To be a collection part, an object must inherit from the ObjectPart class as defined in the z/TPFCS source code. Do not let the name of this class mislead you: a collection part, while a member of the ObjectPart class, is itself an entire object because the ObjectPart class inherits from the OBJECT class. 1

The group of internal part objects that represent a collection are packaged into a larger object, which is an instance of the DATXPAGE class, and will be referred to as a DATXPAGE envelope. A DATXPAGE envelope appears in a pool record after the z/TPF record header as follows.

Note: The DATXPAGE envelope will contain embedded objects.
Figure 1. DATXPAGE envelope format
Alternate text
Figure 1 shows that:
  • The DATXPAGE envelope follows the z/TPF record header.
  • The object header in the DATXPAGE header is the same standard header that all objects have (see Object header), which includes an object length field. The value for the length stored in this field is the size of the entire DATXPAGE envelope.
  • The time-stamp attribute in the DATXPAGE header is an 8-byte field containing the time that z/TPFCS last filed that record.
  • The data length attribute in the DATXPAGE header is a 4-byte field containing the hexadecimal number of bytes of the data area in use.
  • The data area contains the objects (all of which are collection parts) that z/TPFCS has embedded or packaged in that DATXPAGE envelope. The only time the data in this area is not an actual object is when an overflow condition results. See How an object can overflow into additional records for more information about this condition.
  • The DATXPAGE trailer is the same as the z/TPFCS record trailer. See Figure 1 to determine its contents.

The DATXPAGE envelope and all the collection parts contained in it are filed in the z/TPF database in a record known as the control record.

1 Recall our discussion in Object-oriented concepts in which a SportsCar is an Automobile, as well as a MotorVehicle, as well as a Vehicle, as well as an OBJECT. Similarly, any given ObjectPart is also an OBJECT.