× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Jerome implied that his disk was full and needed to be burped-- he wanted to know the best way to do it.

The motto where I work is, "The only good disk drive is a full disk drive." And all of our programmers do their best to make it so.

From time to spare time, I browse the lists of libraries, looking for things I recognize as old and unused, and for things I do NOT recognize, and try to track down someone who knows what it is and why we have it. It's not pretty, and there's no easy way to automate this process.

Yes, you can do 'date of last use' reporting, but a human still has to decide.

Once we've identified the potential unused library, we rename it by putting a "Z" in front of the name (ie FRED becomes ZFRED). Except for one package we purchased, NO ONE uses "Z" as the first character of a library name. But we were using Z to indicate a potential cleanup candidate first! (:

Then we let the Z libraries sit until we've run a month end cycle. The theory is that if nothing needs that library through a month end, it's probably safe to remove it from the system. If a job does scream that it's missing a library, it's a simple task to name the library back and give the job a retry.

After that month ending (or any time, at your convenience), make 2 backups of the Z libraries, and delete them from the system. 2 copies, because 1 may be bad.

I've started backing up the Z libraries whenever I get a bunch of them. I then change the description to "Already saved on tape #23958." This lets me know that the backup is already done, and when I need the space NOW, I just have to delete the library.

We actually carry this Z naming to the object and source level, although it's not a formal process.

One reason disk space tends to grow is that programmers can create new libraries and copy data to those libraries without asking. Lock down the CRTLIB command, so only the system administrator can create a new library. Make sure all programmers have their own libraries, and tell them to keep their stuff in it.

Now you can browse the programmer libraries and see who's been hoarding stuff.

If your test and production environments have become one and the same, you need to enforce some controls over who can do what to production libraries. The first step is to get someone in management to decree that This Is The Way It Will Be. It usually takes just one major screwup for managment to agree that this is a Good Thing.

Make the programmers *PGMR users. No special authority. *USERs shouldn't need special authority either.

Lock down the production libraries. The programmers only need -read- rights to production data, -use- rights to production objects, and -read- rights to production source code. Do it; I don't care how loudly the programmers protest that they can't do their jobs and that it'll slow down development. Your users will thank you!

Make copies of the production libraries for the programmers to play in.

Use a change management system. If you can't afford to buy one, you can write a bare bones one yourself. We used to use our own command. It was used for about 5 years (and we still use pieces of it now and then).

Our system has (had) 2 main components:

--ARCHIVE command-- this works like the MOVOBJ command, but if the object already exists in the destination library, it is renamed with $$$ padding the name to 10 characters. If a version with $$$ exists, it is renamed with ###, if ### --> @@@. If a version with @@@ exists, it is deleted. This gives the current version, plus 3 prior versions. Yes, it does keep all of the old stuff in the destination library, but it's easy enough to spot. If the name has 10 characters, we replace the last character with the $,#, or @. Using these characters, a library list shows them in order by age (Plain newer than $$$ newer than ### newer than @@@). This command does a lot of error checking needed to make sure the from object exists, and to make sure this command is solid. I still use this command instead of MOVOBJ.

--ARCHIVESRC command-- does the same thing, but for source members.

Our Change Management Command then wrapped around these 2 commands (and a few others), did some editing and existence checking, and moved the source and object from wherever the developer put them and placed them in the production library.

Only the CMC had the authority to place something in a production library-- and it was restricted to the technical support group (who weren't application programmers).

By cleaning up old libraries, and controlling who can create libraries, and who can touch production data, you can start to clean up your system.

--Paul E Musselman
Paulmmn@xxxxxxxxxxxxxxxxxxxx

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.