Re-initialize database space?
Posted in 2003
We use IDS2000
9.21.UC1. During development of a datablade we have crashed
IDS multiple times. In several interesting and unique ways I might add. We
have 2 active databases on this instance and both are doing strange things.
For one example, consider the following 4gl snippet:
WHENEVER ERROR CONTINUE
LET pr_job.jb_id = 0
LET pr_job.jb_last_user = userid()
LET pr_job.jb_last_date = TODAY
LET pr_job.jb_last_time = CURRENT HOUR TO MINUTE
LET pr_job.jb_checked = "N"
INSERT INTO job VALUES (pr_job.*)
LET pr_job.jb_id = sqlca.sqlerrd[2]
LET new_rowid = sqlca.sqlerrd[6]
IF sqlca.sqlcode <> 0 THEN
LET success = FALSE
ERROR " Error during record insert, status = ",sqlca.sqlcode USING"-<<<<<&"
ELSE
Sometimes this code fails without giving an error. I get back a serial value
(sqlca.sqlerrd[2]) and a rowid (sqlca.sqlerrd[6]), but the record does not
get inserted into the database. Sometimes it works, sometimes it doesn't and
this code has been in use and working fine for years.
So, I have come to the conclusion that some internal Informix structure has
become corrupted. I have reread the oncheck docs and have run all of the
checks that seem reasonable with no positive result. My question to the
group is: Is there anyway to fix this without dumping the database to text
files and re-initializing the database space?
Thanks in advance for any advice you can offer.