ULIB - Program Catalog Maintenance Utility

ULIB is Com-plete's library maintenance utility that allows you to:

  • maintain parameters for programs intended for use under Com-plete;

  • maintain Com-plete's instorage program directory.

In addition to those load module attributes defined by the program itself and by the linkage editor, many utilities and application programs for execution under Com-plete require specific parameters such as region size, thread/task group, affinity, unrestricted use or PV attributes. The online utility program ULIB is designed to maintain these and other parameters.

All programs are loaded directly from the resident areas of Com-plete, from the resident areas of the operating system, or from Com-plete's COMPLIB load library chain.

Maps and other load modules that do not need to be assigned any Com-plete specific attributes need not to be cataloged. To avoid cataloging a large number of modules with a unique set of parameter values, defaults may be defined.

Note:
Setting applymods 79 or 80 causes Com-plete to load or invoke a program (maps are not affected) only if it has been cataloged.

To avoid searching for a load module each time it is being loaded, Com-plete keeps the BLDL / LOADLIST information for the most recently used load modules in an instorage directory. This enhances performance, but may cause a load module newly stored or replaced in a load library not to become available for use under Com-plete while an entry for this module exists in the instorage directory. Using the ULIB utility program, you can make sure a newly stored load module becomes available immediately.

This document covers the following topics:


Program Parameters

The following parameters can be defined for a program intended for use under Com-plete:

RG=region size Default: If no region size is specified for a program, ULIB stores a value of zero. When a non-cataloged program is being invoked, Com-plete uses the region size specified for the dummy member $DEFAULT. If none exists, the actual load module size rounded up to the next multiple of 4K will be used.
Specifies the region size to be used as a limiting factor for program executing GETMAINs, LOADs, etc. concerning storage below the 16MB line. This parameter is taken into account only when the program is the one initially invoked in a thread. When the program is being loaded by another program already executing in the thread, the space occupied by the program being loaded is its actual load module size.
Note that the region size may be any integer multiple of 4K not exceeding 1008K.
Note that the amount of storage available above the 16 MB line is the same for all programs and can be defined only by the THSIZEABOVE sysparm.
TG=Task Group Default: If no task group is specified, the program will be serviced by the DEFAULT task group.
Specifies the name of the task group the program is to run in.
PG=Thread Group Default: If no thread group is specified, the program will run in the DEFAULT thread group.
Specifies the name of the thread group the program shall run in.

Note:
(Important performance implications)
Software AG recommends that all programs assigned to the same thread group always be assigned to the same task group also. In other words, it should be avoided that programs running in the same thread group are serviced by different task groups. This will minimize the overhead caused by programs competing for both tasks and threads.
On the other hand, from the performance point of view, having multiple thread groups serviced by the same task group is not expected to have a negative impact.

PV Privileged. A program having this attribute assigned can execute any privileged machine instruction and any standard operating system SVC (e.g., OPEN, CLOSE, etc.) without the performance of validity checking by Com-plete.
Warning:
You must take great care when using this option, otherwise loss of system integrity could be the result. Note that in z/OS, FORTRAN programs must always be cataloged as PV because FORTRAN always tries to open an "FT06001" DD name for its error files.
UR Unrestricted. A program having the "unrestricted" attribute assigned can be invoked by any terminal user, i.e., its usage is not controlled by the COM-PASS Program Services Tables.
BL Before-logon. (Only for sites using the accounting facility.) A program having this attribute assigned can be executed by a terminal user before logon processing has been completed.
AF Affinity. A program having this attribute assigned always runs on the same task. This definition can be necessary for programs calling task-related system services (e.g. GETMAIN, OPEN/CLOSE).

Note:
Only users with "control" status may set or change the attributes "privileged", "unrestricted", or "before-logon".

Defining a Default Parameter Set

You can catalog a dummy module with the reserved name $DEFAULT. When loading a non-cataloged program, Com-plete uses the parameter values defined in this catalog entry. Also, for modules cataloged with a zero region size, the region size defined in $DEFAULT will be used if this value is higher than the actual physical size of the load module.

If there is no $DEFAULT entry in ULIB, Com-plete uses the size of the smallest DEFAULT thread subgroup as region size.

Note:
Only users with "control" status are allowed to access the catalog entry $DEFAULT.

Command Format

Initial access to ULIB is gained by entering on the COM-PASS main menu screen the call request:

*ULIB 

As the result, the ULIB main menu is displayed:

 17:15:55        TID    22          COM-5.1.          User MBE          22.04.97
                             -- Program Catalog --                          ULI0

     Function                          ID  Operand
     --------------------------------- --  ------------------------------
     Program overview ................ OV  Prefix/Name, System
     Catalog ......................... CA  Name, System
     Modify catalog entry ............ MO  Name, System
     Delete catalog entry............. DE  Name, System
     Refresh load module ............. RF  Name





               Select function .......
               Operand ...............
               System ................



 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   End

As an alternative, the subfunctions CATALOG, DELETE, and REFRESH can be executed directly from the COM-PASS menu. In this case, no menu screen will be displayed; instead, you will be given a message informing you about completion of the command. The command formats for this mode are:

*ULIB CAT,program(,RG=regionsizeK)(,PG=taskgroup)
(,TG=threadgroup)(,PV)(,UR)(,BL)(,AF)
*ULIB DEL,program
*ULIB REF,program

where program is the load module name and all other parameters specify the program attributes as described above.

The subfunctions CATALOG, DELETE, and REFRESH are also available via the computer operator command USER.

Function OV - Program Overview

If you select funtion OV from the ULIB main menu, contents of the Com-plete program catalog are displayed on your screen in alphabetical order, for example:

16:00:14        TID     9          COM-PLETE          User SAG          20.12.11
 System: GLOBAL              -- Program Overview --                         ULI1
                                                                                
 FC  PGMname   RGsize  PV UR BL AF SU  Thrd Grp  Task Grp              Note     
 -------------------------------------------------------------------------------
 .   ADACALL      300K                                                          
 .   ADINT        256K                                                          
 .   ADMC         768K X                                                        
 .   ADMI         768K X                                                        
 .   ADMP         768K X                                                        
 .   ADMV         768K X                                                        
 .   AQAD         508K X                                                        
 .   AQAQ         500K X  X  X                                                  
 .   AQAR         500K X                                                        
 .   ARGS           0K                 NATURAL   NATURAL                        
 .   BCOCMSA      128K                                                          
 .   CBAMAINT      80K X                                                        
 .   CBRD          24K X                                                        
 .   COBSKU         8K                                                          
 .   COBSKUGB     200K                                                          
 FC:  M odify  D elete  R efresh            Reposition to:                  MORE
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   End                           Forwd

You can start the display from any program name by typing a name or prefix in the Operand field of the ULIB main menu.

The Program Overview screen displays the program names cataloged and the attributes assigned to each of them. You can scroll the catalog forward by pressing PF8 or restart the display from any program name by entering a name or prefix in the field prompted Reposition to.

From this menu you can call the Modify, Delete, and Refresh functions for one or more of the catalog entries displayed. To do this, enter M, D, or R respectively in the first column of the appropriate line and press ENTER. The menu of the subfunction selected is displayed. After completion, the Program Overview menu is displayed again with a note about the subfunction executed in the appropriate line. After you press ENTER once more, attribute modifications become visible and deleted entries disappear.

If you select more than one line for subfunction calls, they are executed consecutively top-down, with the Program Overview displayed only after completion of the last subfunction call or after an error occurred.

Function CA - Catalog a Program

If you select the CA function from the ULIB main menu, the Program Catalog Information screen is displayed, initialized with default values for all parameters:

16:01:28        TID     9          COM.PLETE          User SAG          20.12.11
                       -- Program Catalog Information --                   ULI2
System: GLOBAL                                                                 
                                                                               
Name= MYTEST                                                                   
-------------------------------------------------------------------------------
                                                                               
Region size:............    0 Kbyte                                            
                                                                               
Privileged:............. N (Y/N)                                               
Unrestricted use:....... N (Y/N)                                               
Allowed before logon:... N (Y/N)                                               
OS task affinity:....... N (Y/N)                                               
Application suspended:.. N (Y/N)                                               
                                                                               
                                                                               
Thread group name:......                                                       
Task group name:........                                                       
                                                                               
                                                                               
                                                                               
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                  End         Cat   

You can now enter the parameter values required for the program (see also the section Program Parameters above).

Note that you must have control status to set or change any of the attributes privileged, unrestricted, or before-logon.

Press PF5 to write the entry to Com-plete's program catalog. Pressing PF5 or ENTER causes all data entered to be checked for validity; in case of an error a message is displayed and the cursor is placed on the erroneous input field.

Function MO - Modify a Program Catalog Entry

If you select the MO function from the ULIB main menu or from the Program Overview screen, the Program Catalog Information screen is displayed, indicating the current parameter values for the program.

You can now make the required changes. For details, refer to the description of the Catalog function above.

Function DE - Delete a Program Catalog Entry

If you select the DE function from the ULIB main menu or from the Program Overview screen, the Program Catalog Information screen for the selected program is displayed (see the description of the Catalog function above).

To delete the catalog entry, press PF5.

Note that only the program attributes are reset; no action against the load module takes place.

Function RF - Refresh a Program

To avoid searching for a load module each time it is loaded, Com-plete keeps the BLDL / LOADLIST information for the most recently used load modules in an instorage directory. This enhances performance, but may cause a load module newly stored or replaced in a load library not to become available for use under Com-plete as long as an entry for this module exists in the instorage directory.

The Refresh function causes Com-plete to search for a load module. During execution of the Refresh function, if an entry for the module specified exists in Com-plete's instorage directory, it will be deleted. If the module is in Com-plete's program lookaside buffer due to sysparm PGMLOOKASIDE, the old entry will be marked as 'disabled' and the new entry added to the instorage directory. If the module was loaded RESIDENTPAGE, the command PGM REFRESH,modname will be issued. UCTRL CM will be fetched so you can see the result of your request.

When executing the Refresh function, ULIB does not search for the load module; the search will be done only the next time the program is requested to be loaded into a thread.

Notes:

  1. Using this function does not require the selected program to be cataloged using the Catalog function of this utility.
  2. No warning message is issued if no entry for the module exists in Com-plete's instorage directory or if the load module does not exist at all.
  3. Execution of any ULIB Catalog, Modify, or Delete function also implies a Refresh against the appropriate program.
  4. For RESIDENTPAGE programs:
    Com-plete checks to determine if the module to be refreshed is in use by any active transactions at the same time. If it is, the new module will be loaded along with the old one; from then on the new module is used for all load requests. Deletion of the old module is deferred until its active use count becomes zero.