Certain objects ( programs, panel groups, menus, display files, printer files,modules and service programs ) can be compressed to save storage. These objects will be automatically decompressed by the OS when ever they are used again or you decide to decompress them yourself. If an object is decompressed by the system it will be placed in temporary storage until it is reclaimed by an IPL or RCLTMPSTG command is run. Also if a temporarily decompressed object is used often enough the system will automatically decompress the object permanently and remove the temporary storage. We did some initial testing on our system showed compression rates of around 70% on programs and service programs which can reduce our storage requirements significantly considering all of the products we build and maintain.
Decompressing objects was added as well, even though the OS will automatically decompress an object when required we thought it would be safer to add our own capability.
An option to delete the objects is provided, this allows you to clean up large objects which are no longer required such as old journal receivers etc. Normal deletion rules apply to the objects.
When we first built the utility we thought it would be used to identify what was taking up the system storage, but we are now seeing additional benefits with the ability to compress the objects that will make the utility more useful. Allowing individual libraries to be reviewed can also reduce some of the clutter when looking for objects which can be removed or compressed.
Here are a couple of sample screens, we ran the LSTLRGOBJ command over a couple of our old PTF libraries with a small object size parameter so that we got all of the objects in the library. This allowed us to list the programs and service programs which we used to test the compression features.
In the above panel group we have listed the objects from the HA471PTF01 library using the command LSTLRGOBJ LIB(HA471PTF01) MINSZ(1) and then displayed them. we have selected the HA4I410 *PGM which is 4,182,016 bytes to be compressed, the CPROBJ command is prompted as shown below.
Pressing enter caused the system to compress the object which take a few seconds to complete, a message CPC3B01 is sent detailing the compression completed and some information about the objects size before and after the compression process.
Message ID . . . . . . : CPC3B01 Severity . . . . . . . : 00 Message type . . . . . : Completion Date sent . . . . . . : 03/21/16 Time sent . . . . . . : 14:16:39 Message . . . . : Object HA4I410 in HA471PTF01 compressed. Cause . . . . . : The size of object HA4I410 type *PGM in library HA471PTF01 was reduced from 4084.0KB to 1308.0KB. The compression reduced the object size by 68 percent. Technical description . . . . . . . . : When a compressed program, service program, or module is saved and then restored to the system or duplicated using the Create Duplicate Object (CRTDUPOBJ) command, the size of the object may be further reduced.As you can see we achieved a 68% compression of the object, the screen is refreshed to show the new information as shown below.
We think this will be a useful tool for many sysadmins who are constantly trying to identify which objects are taking up all of their system storage and allow them to either compress the objects if the are not used often or simply delete them. (We would suggest saving them to offline storage before deleting.)
That is about it for the large object display (unless you have some suggestions). We are now working on a new IFS Large Object search tool as we are sure we have some pretty large IFS files hidden deep in the directories that could be cleaned up. Another utility we have started to work on is a journal management utility which will build on the JRNMASTER utility we built sometime ago. We have a number of addition features we want to add such as being able to create a full journal/remote journal environment from a single command plus the usual code improvements.. If you have any comments please let us know. Chris…