JCL Update of Compile Parameters (Option B;5.1)
This utility is intended to automatically transfer default parameters specified with option B;4.5 to JCL that is associated with modules that can be compiled that have been already imported into the system. The situation should not arise if a careful review of the default JCL is made prior to importing and compiling application programs, DBDs, PSBs etc. However, instances may occur, (for example, when a new compiler is introduced) whereby the ISPF JCL generation skeleton requires a new parameter to operate in an environment. In this case, the parameter is entered with option B;4.5, and this utility is used to update all the copies of JCL that exist at any development level. (Copies are required since each application program may have specific overrides of the default parameters).
Table Unload Utility (Option B;5.2)
The function of the utility is to access an ISPF table and transfer the contents to an unloaded format suitable for input to the Table Reload Utility (described below). In addition to the data contained in the table, the utility also outputs information as to the COPE index values that are required to access the table.
If a user wants to define an entirely new environment for COPE, and does not wish to re-enter existing definitions, this utility could be useful.
Table Unload Menu

There are two functions available in the utility:
- Specify the set of index values that COPE uses to access the table and name the unload specification set.
- Unload the tables that are named in an unload specification set. If the specification function is selected and the specification set name is left blank, a selection menu of existing specification sets will be displayed. If a specification set name is entered, a table edit application will be entered that will request four index variables to be specified for every table to be unloaded.
The index values are:
- Project name
- Group name
- Table type
- Table name
The Project/Group combination references a Libset.
The value of '$' (currency sign) has a special meaning in the Project Group, and Table Name fields. In the Project and Group, a $ indicates a 'System' table (those tables that are not associated with a particular Libset). A '$' in the table name field denotes that the Index table controls the objects associated with the Libset Project/Group/Type values.
The naming convention is similar to that used by ISPF to access a dataset.
If the Unload function is requested, a previously defined Unload Specification Set name must be supplied or selected from a list of known names. The output dataset must be a sequential dataset of fixed block RECFM and LRECL of 80 bytes.
Table Reload Utility (Option B;5.3)
This simple utility requires the specification of a partitioned or sequential dataset that contains data prepared by the unload utility. The controlling menu appears and is self explanatory.
ISPF Table Reload Utility

After entering option 'R' and specifying the dataset name, a list of unloaded members will be presented. One or more of the listed members may be selected for reloading to the ISPF tables library.
XREF C-numbers (Option B;5.4)
In order to avoid synonyms and homonyms, COPE assigns unique names DBDs, PSBs, application programs and MFS members.
For convenience in debugging, a cross reference table is maintained of all renamed information. If no table has been generated a JOB will be displayed for submission on entry for the first time. If a XREF table exists the initial selection menu is presented.
X-Reference Selection Menu

The panel that is displayed when the X-Reference for PSBs Option is selected is displayed.
X-reference PSB Menu

Orphan Delete (Option B;5.5)
Orphan Removal Menu

The COPE system keeps track of all datasets in all Libsets and has internal indexes to all members and alias names. An orphan is a member that is not referenced by any COPE index. An orphan can be valid if the dataset is being used to store modules that are not associated with COPE . Certain failure conditions, however, can cause index entries to be removed without deleting the corresponding members, thus creating orphans. COPE allows you to detect and delete unwanted orphans.
To detect orphans and to cause them to be deleted, two utilities are available. The first utility is accessed by entering B;5;5. The above panel will be then displayed. The second utility is accessed by entering B;5;6;. This option scans only the master table index, and does not address any other datasets.
The options on the panel allow the detection and removal of orphans from the system tables library or from libraries associated with a particular Libset. To remove orphans from the index table dataset associated with a Libset, enter '$' in the name field.
Repair COPE Index (Option B;5.8)
Index Repair Utility

The concept behind an index repair is that modules are copied to all parent Libsets when imported into a system. If an index is damaged, a process can be invoked with this panel to extract members from another index and reconstruct a copy of the members and index entries. An index that has parents cannot be recreated by using the external import or import options. COPE uses information from all indexes in a path from an entry library to determine if a module can be imported or copied. If an index in a parent contains members that are not in a child, inconsistent results and failure conditions will occur.
In general, if COPE datasets are backed up every day, damage from an index loss should be minimized, and recovery with this utility will not be required.
Regenerate a MFS X-Ref Table (Option B;5.9)
This is the same application that is accessed by Option 4.7.
If option 4.7 or B;5;9 is selected, a batch job will be generated that will recompile and Linkedit the MFS cross reference table that is used by COPE to convert the MOD name in a DL/I call to the internal COPE C-number.
The utility can be executed at any time without compromising the integrity of the COPE system. A COPE REFRESH command must be issued from the IMS system to cause the regenerated table to be reloaded into the message region.
The utility can be useful to correct a failure of the MFS X-Ref generation job caused by datasets being full or an incorrect operator CANCEL.
The generated job produces a report that compares the members in the format library with MFS members imported into COPE and lists any missing (non-generated) ones.
/FOR commands from a cleared screen are intercepted in the IMS/DC control region in code supplied in the DFSAOUE0 exit. The COPE supplied code scans the MFS X-Ref table looking for an entry with a Modname for the Lsys that the user is connected to. The Modname is extracted from the /FOR command, and the Lsys is obtained from a table in the ECSA. The ECSA table is only updated when the user switches Lsys's with a LOGON command or when the COPE control database (USTDLMGR) is scanned and all registered users records extracted together with the Lsys's they are connected to. The scan of the COPE control database may be initiated by entering 'LOGON ECSA' from the COPE panel under IMS, or automatically performed during a cold or warm start.
TFORMAT/PSB/DBD/ACBLIB Member Delete Utility (Option B;5.10/11/12/13)
These options on the special maintenance utility menu access the TFORMAT, the PSBLIB or the DBDLIB associated with an online system and display a list of members that are in the library but which are not referenced by COPE. If the libraries are shared with non-COPE systems, the additional members are valid, and should not be deleted. If the libraries are exclusively used by COPE, the surplus members can be deleted without ill effect.
Remove Bad Entries from PDS Directory (Option B;5.14)
PDS Directory Cleanup Menu

COPE sometimes inserts members in the directory of a PDS so that the overhead of updating and inserting members is reduced for later operations. The inserted members contain a TTR address of 0 which causes IEBCOPY to fail to operate on a compress or selection.
Generally, member pointers will be updated to a non-zero value by normal processing. However, if a failure occurs or a job is canceled, entries may be left in an non-updated state.
Invalid member pointers may be removed with this utility. The dataset name is entered in the appropriate line (surrounded by quotes) and the utility will execute in the foreground.
Copy DBD Exit Load Modules to COPE (Option B;5.15)
DBD Exit Load Module Copy Utility Menu

The DBD Exit Load Module Copy Utility Menu provides a utility to import exit load modules to special exit load library. The utility assigns a C-number which is substituted in the DBD to replace the randomizer or compression exit name when the DBD is generated. This needs to be run before any DBDs using the exit module have been imported. If any DBDs using the exit module have already been imported they need to be imported again and ACBs referencing these DBDs regenerated.
Dump/Restore COPE Datasets (Option B;5.16)
This utility generates JCL to unload all COPE system datasets and all IMS datasets used by the COPE system. The unloaded data may be transferred to another system. The JOB DUMPREST may then be executed to restore the dumped datasets.
Dump COPE Datasets Utility

Convert MSDB Databases (Option B;5.17)
If this option is selected, the following menu is displayed:
MSDB Support for COPE

This utility provides a simple way to convert MSDB databases. The utility generates JCL that invokes the IMS DBFDBMAO utility.
The DBFDBMAO utility requires as input a correct MSDBINIT dataset together with an updated copy of a MSDBINIT dataset and a set of control cards that specify the actions to be performed. The output from the utility is an updated MSDBINIT dataset that contains a copy of the original and modified databases together with a set of IEBUPDTE statements that are intended to update the DBFMSDBx member that is required by the IMS Control region for initialization.
The fields on the panel allow specification of the input MSDBINIT dataset, the suffix of the DBFMSDBx member (that resides in the IMS Proclib) and the Lsys name of the COPE system to be converted.
If an asterisk (*) is specified for the Lsys COPE name, a copy is made of the input MSDBINIT dataset for every active Lsys.
The default suffix for the DBFMSDBx member is specified with the XCOPEMSS ZDEFAULT parameter. The COPE system MSDBINIT dataset is specified with the XCOPEMSD System parameter, and the IMS Proclib is specified with the XCOPEPRC System parameter. After conversion, the generated JCL should be submitted.
Remove duplicate and obsolete DBD entries (Option B;6.12)
DBD's may be imported that refer to identical DD names. This can result in incorrect DD name conversion by COPE processes. This application detects duplicate DD names and allows you to select the ones you want to delete. In addition, the application allows you to delete entries that have no matching source.