Operating System - OpenVMS
1753404 Members
7040 Online
108793 Solutions
New Discussion юеВ

Re: OLB size differs lot after Applying the patches

 
SOLVED
Go to solution
Arch_Muthiah
Honored Contributor

OLB size differs lot after Applying the patches

All,

Platform: Itanium/OpenVMS 8.2-1, C V7.3-018 and C++ V7.3-023.

I created OLBs in May, and again I created the same OLBs. In between I have applied many patches till the patches VMS821I_UPDATE-V1100, and VMS821I_ICXXL-V0500.

Issue: I wondering the OLBs size differences are unbelivable. Before going ahead creating the EXEcuatables, I would like to make sure the size differences of OLBs are not a problem for the application. No new modules added, you can see below the "number of modules".

The details of the two same OLB are given below.

$ LIB/LIST LIBxxxxxx_new.OLB (created in May)
Creation date: 28-MAY-2008 12:26:58 Creator: Librarian I01-39
Revision date: 28-MAY-2008 12:26:58 Library format: 6.0
Number of modules: 57
Max. key length: 1024
Other entries: 434 Preallocated index blocks: 213
Recoverable deleted blocks: 0 Total index blocks used: 62
Max. Number history records: 20 Library history records: 1

====> Size of this OLB == 2370 Blks


$ LIB/LIST LIBxxxxxx_new.OLB (created today)
Creation date: 18-SEP-2008 23:40:17 Creator: Librarian I01-39
Revision date: 24-SEP-2008 17:34:11 Library format: 6.0
Number of modules: 57
Max. key length: 1024
Other entries: 731 Preallocated index blocks: 213
Recoverable deleted blocks: 4186 Total index blocks used: 118
Max. Number history records: 20 Library history records: 3

====> Size of this OLB == 8919 Blks (Not a debug version)


Thanks and waiting...
Archie
Regards
Archie
4 REPLIES 4
Phil.Howell
Honored Contributor

Re: OLB size differs lot after Applying the patches

there are deleted blocks, try LIB/COMPRESS
this will create a new library, probably of similar size to the original
Phil
John Gillings
Honored Contributor

Re: OLB size differs lot after Applying the patches

Archie,

8000 blocks is 4MB. It's not worth bothering about. It's not a problem.

To understand what's going on in detail, read the LIBRARIAN documentation, but here's a quick explanation.

As well as your modules, the librarian tracks the history of modules (try LIBRARY/LIST/HISTORY), and the allocation mechanism doesn't recycle free space automatically. As you replace modules, the library will tend to get bigger over time. Note your second listing says "Recoverable deleted blocks: 4186".

Use LIBRARY/COMPRESS to create a new version of your library. Use the /CREATE qualifier to preallocate space, or adjust the sizes of different parts of the library.
A crucible of informative mistakes
Robert Gezelter
Honored Contributor
Solution

Re: OLB size differs lot after Applying the patches

Archie,

I concur with John and Phil, this is expected and not a problem. LIBRARY/COMPRESS will certainly reduce the size of the library back to approximately the same size.

Applying the patches did not increase the size of the libraries. Replacing modules is the overwhelmingly most likely cause. OpenVMS libraries and similar files such as OS/360 Partitioned Data Sets (PDS) are managed in similar ways. When a member/module is replaced, the new version is appended to the end of the file, and the internal directory entries are modified to point to the new copy. The old copy is abandoned. The COMPRESS operation recovers the abandoned space.

Lilkely, one or more of the modules in this library are being somewhat actively revised and replaced. I rather suspect that doing a LIBRARY/LIST/FULL will show a range of dates, not just the date that the library was created.

Some more recent utilities (e.g. PKZIP) re-organize the library to compress the unused space after each add/replace operation. This different treatment is due to two facts: 1) mass storage space is less of an issue than in days past; and 2) the processing time is far less. Both presumptions are often true, but not always [Consider the case of a ZIP archive containing BACKUP Save Sets!].

I hope that the preceding is helpful.

- Bob Gezelter, http://www.rlgsc.com
Arch_Muthiah
Honored Contributor

Re: OLB size differs lot after Applying the patches

Phil/John/Bob,

Very useful information. Thanks for all of you. I have many OLBs, but I have given only one OLB details above. I missed to delete the previous copy of OLB in the default directory, so my "IF f$search("libxxx.olb") .EQS. "" THEN LIB/CREATE libxxx.olb" statement did not create the new libxxx.olb. I did not observe the deleted block and create/modification details as I was in a hurry to run my build and packaging script.

My HP support also great and immly pointed out the reason. Phil and John has captured the same problem.

Bob's depth information is extreamly useful for me. He also doubted /Replace qualifier.

Though it is my mistake, thanks for all your timings spent on my questions.

Finally I created new libxxx.OLBs. and the size is OK.

Pls do have a look at another library I created as a new. The size before applying the patch is 15084 blks. I just /replaced only one module today. the size become become 31763 blks. Though I am not happy with its size difference, I am going use it.

$ lib/lis/hist libxxx.olb

LIBXXX.OLB;2 on 25-SEP-2008 23:35:49
Creation date: 25-SEP-2008 02:57:10 Creator: Librarian I01-39
Revision date: 25-SEP-2008 21:04:59 Library format: 6.0
Number of modules: 132 Max. key length: 1024
Other entries: 2622 Preallocated index blocks: 213
Recoverable deleted blocks: 14 Total index blocks used: 520
Max. Number history records: 20 Library history records: 3

/*Archie... I excuted $ LIB cmnd two times (total of 132 modules) as the command become too lenthy */

SYSTEM inserted 62 modules on 25-SEP-2008 02:57:32
SYSTEM inserted 70 modules on 25-SEP-2008 02:58:47
SYSTEM replaced 1 module on 25-SEP-2008 21:04:59

Thanks
Archie
Regards
Archie