Re: Informix SE Errors
Posted in 1998
In article <3509820d.2354489@meganews.idirect.com>, Rajendra Singh
<rajsingh@hotmail.com> writes
>We've recently installed Informix SE 7.2 on HP-UX 10.20. We're getting the
>following errors when we try to update a single column in a single (large)
>table:
>346: Could not update a row in the table.>
>121: ISAM error: cannot write log record>
>I've looked up these error codes in the manual, but they are of little help.
>Can anyone else shed some light as to why these errors are occuring.
>
>We have another installation of Informix 6.0 running on HP-UX 9.04 using the
>exact same table(s) and that error does not occur.
>--
>Mr. Rajendra Singh, B. Sc. (rajsingh@hotmail.com)
>"What is understood need not be discussed." - Loren Adams
I've seen this error (often until I found out what was causing it) with
Informix 4.10 on SCO.
If you update many rows using a singleton SQL statement (e.g. update
fred set eric = "Y") then each row is locked prior to update. After a
while you run out of (UNIX) record locks and bang!
This seems to be a good way to corrupt an Informix table as after an
error like this index pointers and free lists go all wobbly. Run bcheck
to fix (usually works but not 100% reliable) or use SQL to drop all
indexes (to make sure that a duff index doesn't prevent all data being
recovered), copy the data into a temporary copy of the original table
and rebuild indexes (email me if you want some sample scripts to do
this). Then replace the damaged table with the new copy (also has the
advantage of recovering slack space and optimising indexes).
Alternatively, prevent it happening by locking the table before
performing any large updates (begin work;lock table in shared mode; ...)
Have fun
Steve
--
Steve Williamson