The program you run when your DMSII database will not open.
Something extraordinary has happened and the DMSII control file no longer recognises the data sets. The physical files are on disk and they are fine, but the database will not come up, because the control file and the files disagree about who they are.
Evaluate the situation carefully before reaching for this. There are scenarios that look like this one and are not, and the fix below is not reversible.
For every structure in the database it performs a FIND FIRST, which makes the
DMSUPPORT library compare its timestamps against the physical file's. When the
timestamps disagree, the program goes into WAITING, holding for an operator to
answer AX:OVERRIDE.
The trick is that it answers itself.
Run against a database of a few hundred structures, that is the difference between an operator sitting at a console for an hour and a job that finishes on its own.
After this runs, the control file accepts the files currently on disk as the valid files of the database.
Every previous backup stops being usable. Not degraded — unusable. Back the database up immediately afterwards, before anything else touches it. If that trade is not acceptable in your situation, this is not your tool.
Open BIGOPEN.dma_m with Programmer's Workbench — if you do not have it, copy
the source to a disk on the ClearPath machine — and compile with the ALGOL
compiler (Ctrl + Shift + F9 in Workbench). From CANDE directly:
C <source> AS <object>
BIGOPEN does not open your database. It generates a program that will, specific to one database:
RUN BIGOPEN;FILE DB=<database name>
So for a database called SAMPLEDB, assuming the utility was compiled as
OBJECT/BIGOPEN and DESCRIPTION/SAMPLEDB exists:
RUN BIGOPEN;FILE DB=SAMPLEDB
That writes a DMALGOL program, SYMBOL/BIGOPEN/SAMPLEDB. Compile it:
COMPILE SYMBOL/BIGOPEN/SAMPLEDB AS $BIGOPEN/SAMPLEDB
and run it:
RUN $BIGOPEN/SAMPLEDB
Then take the backup.
Two programs for the other end of the same problem — knowing your database is heading for trouble before it gets there:
DBANALYZER and SDSANALYZER report how much room is left in every structure, as a printed page and as XML respectively. A structure that fills its declared population stops the database too, and that one you can see coming.
dmsii-to-sql compiles the DASDL description into a relational schema, for when the answer to a fragile database is to get the data out of it.
MIT — see LICENSE.