How to recover when H2OS will not start


A program named H2OS_RECOVER.EXE is included with the H2OS installation.


This program runs independently of H2OS, and thus can change, rename, delete and create H2OS tables without colliding with H2OS (H2OS itself cannot be running when the Recovery Console is started).


Important: Before the H2OS Recovery Console can be used, a Windows shortcut must be setup to launch it  (click here for instructions)



When the H2OS Recovery Console is launched, a screen like this will appear.




The H2OS Recovery Console can be used to










Additional comments


Apply database structure changes


Causes H2OS to (attempt to) re-apply all database maintenance changes introduced by software changes since the program was installed.


Changes will be applied during the next startup.


In a system where the current (customers) database is never changed after initial installation, this action will never be needed.


BUT, if you restore or switch to an H2OS database that was created before one or more TABMODS changes, then those changes will need to be applied to this (now current) database.


This is accomplished by hiding (renaming) the file named MAINTLOG.DBF.




, which contains a record of changes made and is used by TABMODS to skip attempting to make changes again once they are already applied.






How this works:


Ongoing changes to H2OS database tables are made by a program called TABMODS which is run every time H2OS is started.


Each change in TABMODS is performed by one procedure in TABMODS, named MOD001, MOD002, etc. There is one MODnnn procedure per change


The TABMODS will call each procedure, which will in turn apply it's change, if the change hasn't already been made. The result is that the current database is kept in sync with changes made to it over time.


For record keeping and efficiency, TABMODS creates a record in MAINTLOG.DBF for each changes it makes.


These records are used by TABMODS to skip attempting to re-apply changes already made.


This works all well and good until the operator switches (or restores) the current database to one  in which one or more TABMODS changes have not been applied.


This is a problem because TABMODS will check MAINTLOG.DBF to see if  changes have been made, and if they have been made - to the old database - then TABMODS will not attempt to make them tot he current database.


By renaming MAINTLOG.DBF, TABMODS will not be able to find it when annot find it when H2OS is started again. TABMODS will then think none of the changes have been made and attempt to make them all. It will also build a new MAINTLOG.DBF showing these changes have been applied to the current database.


Note that each procedure (change) called by TABMODS will check to see if the change it will make has already been made, and not attempt to make it again.  


(so, you can see that MAINTLOG.DBF is first checked to see if the change procedure has been run or not. We've hidden MAINTLOG.DBF, so each will be called. Then, once called, each will check to see if it's really needed, so there are 2 levels of processing that occur before TABMODS attempts to make a change).


Each procedure, when called, will first check to see if the change it is to make has already been made, and if so it will skip attempting to make the change, thus TABMODS can be run repeatedly without harming the database



Disconnect a workstation from a LAN

This option will switch H2OS from operating as a LAN workstation to a standalone installation, accessing the local (on this machine) installation's files and not those on the LAN server.


Reset the current database


If it appears that the problem is that H2OS cannot find or connect with the current database, you have 2 options using the Recovery Console.


Option 1:  Switch the current database to a test database


Clicking this command will switch the current Customers database to a sample database that was installed with H2OS, which should permit H2OS to start.  Once started, it may be possible to use the FILE menu to select and open (connect) with the desired customers database.


Option 2: use the "Browse or edit a database table" option on this screen to point to the H2OS database you wish to be the current database.  









Restore a backup


will ask you to point to the backup to be restored and the root folder to restore into.


Turn off automatic backups

, in case this action is causing or in some way exacerbating a problem. Selecting this option will rule this possibility out. Later, when H2OS starts, you can use setup->options->backup to turn this option back on.




Using the recovery console

If H2OS fails to start for any reason,  Click H2OS Recover shortcut on your desktop (see below).


The Recovery Console can be used to make changes to H2OS without H2OS being active, which makes it possible to make changes that would not be possible when H2OS is running, or to make changes not currently supported by H2OS screens.


If, for example, you cannot start H2OS because there is a problem with a database, using the Reset Current Database option will change H2OS to use a different database (a sample database) at startup, which will make it possible to start H2OS and perhaps recover from there.