Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

BIGOPEN

The program you run when your DMSII database will not open.

When you need it

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.

What it does

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.

What it costs

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.

How to compile

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>

How to run

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.

Related

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.

License

MIT — see LICENSE.

About

Opens a DMSII database whose control file no longer recognises its own files.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors