Introduction to LIBSETs
COPE supports multiple development environments in a single Physical System. An environment is called a Logical System or Lsys. All environments contain a set of related entities that are used together to achieve a result. Application programs must be used with specific PSB, DBD and MFS definitions. PSB definitions must match PSB COPYLIB definitions. Load modules must match source definitions etc.
Each of the different entities exist in different dataset or library definitions. The set of datasets that contain related entities is called a LIBSET (set of libraries).
Developers are familiar with the concept of 'concatenation'. Multiple datasets may be specified for a file and the system will scan all of them in sequence when looking for a specific module. COPE allows all datasets in a LIBSET to be concatenated with similar datasets in other LIBSETS. The order that the datasets are scanned depends on the 'sibling' relationship of the LIBSETS. When COPE logical systems are defined, a sibling relationship may be specified. If a Logical System has a sibling it is deemed to be the 'junior sibling' and the sibling that is referenced is deemed to be the 'senior sibling'.
A 'junior sibling' may be a 'senior sibling' to another LIBSET. A 'senior sibling' can have several 'junior siblings' referencing its contents.
The diagram in the followig figure provides an example to aid understanding.
Libset Example

The example COPE system has three Logical Systems A,B and C. A is a 'senior sibling' to B and C who are 'junior siblings'. When an entity is put into A, a virtual copy is made in systems B and C. UNLESS THERE IS AN EQUIVALENTLY NAMED MEMBER IN B OR C. If, for instance, a DBD in A is compiled, the virtual members are also compiled and additional members are put into the DBDLIB. If there is an equivalently named member in system C, there is no virtual copy and a DBD will not be generated from the source in system A. An explicit compile will have to be performed on the member in C to transfer it to the DBDLIB.
The arrangement is useful for setting up similar systems. A development environment typically has only 10 percent differences from the production environment. Instead of having a copy of all modules in every LSYS, only the differences are required to be present in a development LSYS as long as it is specified as the 'junior sibling' to the production LSYS 'senior sibling'.
Each Lsys defined is related to a Libset definition. The specification of the relationships between Libsets allows the definition of common source and load libraries shared between Lsys's. Concatenation sequences can be defined as well as 'promotion' paths for module migration.
This section first describes COPE Libsets, datasets and hierarchies. There are several types of data that need to be entered to define all Libsets, and the screens for each are described. Following these are descriptions of special commands that help with the definition process. Refer to JCL-Update-of-Compile-Parameters-Option-B-5-1 before undertaking any data entry.
This section provides information about the following topics: