Consolidating Multi-Volume Physical Extents (z/OS Data Sets)

Hi All,

I have volumes with a lot of fragmentation of free space and I would like to move the physical extents onto “fresh” volumes using all the space on the volume. The physical extents would still be multi-volume but not on as many volumes as currently, and with no fragmentation of free space.
Are there any easy ways to consolidate the multi-volume extents of the underlying z/OS data sets?
Or is it a matter of doing a full database save, re-allocate and format the data sets, then restore the database?



It is a matter of doing a full save, re-allocate, format and restore. Adabas keeps track of where the physical disk space is, so just moving the extents around will cause problems.

Hi Douglas,
Thanks for the reply. I thought that was the case. Pity as this is quite a large database and it only comes down briefly for a few minutes once a week. Would take a reasonable outage to perform these actions.
Oh well it’s not desperately required at the moment so I will leave it alone.

There is a way to do this without an extended downtime.

  • Use Douglas’s procedure to create a new database.
  • Apply Production’s PLOGs since the backup to the new database.
  • Take down Production.
  • Apply the final Production PLOG to the new database.
  • Swap the DBIDs.
  • Bring up the new Production database.
  • Delete the former production database.

Hi Ralph,
That sounds like an interesting way of doing it.
Couple of questions:
I take it you would apply the PLOGs using ADARES REGENERATE with the source database specified in the PLOGDBID parameter. Is that correct?
I would need to rename the underlying data sets as they are referenced in some utility jobs as well as in the nucleus JCL and it would be handy not to have to do a stop/rename/start. Can the PLOGs be applied to the new data sets while this new database is down/off-line in single user mode?
After the renames and swapping the DBIDs I would then just start the normal nucleus started task proc. Do you see any problems with this approach?
How do you actually swap the DBIDs?
I don’t suppose you have any docs or sample jobs you could share with me to perform this task?

Jim Poole, the SAG community’s Adabas guru, has presented and discussed (t)his procedure numerous times, but I was unable to find his Wiki article here in the Tech Community. Try SAG-L (, searching author’s name “poole” and string “downtime”. A Google search for “7X23.99 For Adabas” will give you his PowerPoint presentation which should answer all your questions (and point out areas of concern).

Thanks again Ralph.
Some good resources there, and I was unaware of that listserv.