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.
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:
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.
|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.
|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).|
Only users with "control" status may set or change the attributes "privileged", "unrestricted", or "before-logon".
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.
Only users with "control" status are allowed to access the catalog entry $DEFAULT.
Initial access to ULIB is gained by entering on the COM-PASS main menu screen the call request:
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)
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.
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 pressingor 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. 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 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.
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.
Pressto write the entry to Com-plete's program catalog. Pressing 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.
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.
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.
Note that only the program attributes are reset; no action against the load module takes place.
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.