help with full filesystem corruption
Posted in 2006
Topics: Error Codes & Troubleshooting, Connectivity: ESQL/C, 4GL & Embedded SQL, Platform-Specific Issues
I've been asked to fix a problem on a redhat linux 7.3 machine running
a version of informix 4gl (2.1 as best as I can tell). The error
started when the filesystem filled up. I have successfully expanded the
filesystem and the system works for the most part but when they try to
run an import utility get this error:
Program stopped at "load_comma_cd.4gl", line number 694.
SQL statement error number -314.
ISAM error number 0.
Table (load_comma) currently in use.
using isql I am able to view the table structure but any other
operation results in "file not found" or "in use" errors. I don't know
that much about informix and have been seaching out a solution for a
couple days. Can anyone provide me some pointers to get this fixed?
Thanks,
Andrew
ahum sounds like you have an Standard Engine.
do a ls -l $INFORMIXDIR/lib and check if an sqlexec is there.
if so you may have corruption in your db. (copy first and look at
secheck.)
you may have a version which uses kernel locking, if that is the case a
reboot
of the machine may help since you might see a stray lock.
if you have lock files you may need to delete it??!!
if i am not mistaken (sorry looongg time ago) the filename is
<partoftablename><somenumber>.lck????
try move it away if it exists....
please be carefull backup all first!!! maybe restore on a test box and
run
your stuff from there excluding the
<partoftablename><somenumber>.lck????
of course...
Check out the manual too specially f you have transaction log enabled.
you may need to restore afterall since it may have become corrupted.
if you have something like IDS so
onstat - says online then someother program has a (exclusive) lock on
it;
see prev entry from Danny de Koster how to find locks...
Superboer.
amcrory schreef:
> I've been asked to fix a problem on a redhat linux 7.3 machine running
> a version of informix 4gl (2.1 as best as I can tell). The error
> started when the filesystem filled up. I have successfully expanded the
> filesystem and the system works for the most part but when they try to
> run an import utility get this error:
>
> Program stopped at "load_comma_cd.4gl", line number 694.
> SQL statement error number -314.
> ISAM error number 0.
> Table (load_comma) currently in use.>
>
> using isql I am able to view the table structure but any other
> operation results in "file not found" or "in use" errors. I don't know
> that much about informix and have been seaching out a solution for a
> couple days. Can anyone provide me some pointers to get this fixed?
>
> Thanks,
>
> Andrew
Superboer, thanks for the reply. there is sqlexec in $INFORMIXDIR/lib
and I find no .lck files on the system. onstat does not exist nor do
some other utilities I've read about. In fact the only utilities are
$INFORMIXDIR/bin:
bcheck dbschema isql sacego salesdemo sperform
dbload deccon isqldemo saceprep sformbld
I've tried to drop and recreate the table but when I run drop I get:
314: Table (load_comma) currently in use. 2: No such file or directory
when I try to alter:
215: Cannot open file for table (load_comma). 2: No such file or directory
It's like the .dat and .idx files are missing? I have compared to the
backup and do not see any missing files.
In message <1147143606.550405.79520@i40g2000cwc.googlegroups.com>,
amcrory <amcrory@gmail.com> writes
>Superboer, thanks for the reply. there is sqlexec in $INFORMIXDIR/lib
>and I find no .lck files on the system. onstat does not exist nor do
>some other utilities I've read about. In fact the only utilities are
>$INFORMIXDIR/bin:
>
> bcheck dbschema isql sacego salesdemo sperform
> dbload deccon isqldemo saceprep sformbld
>
>I've tried to drop and recreate the table but when I run drop I get:
>
> 314: Table (load_comma) currently in use.> 2: No such file or directory
>
>when I try to alter:
>
> 215: Cannot open file for table (load_comma).> 2: No such file or directory
>
>It's like the .dat and .idx files are missing? I have compared to the
>backup and do not see any missing files.
>
You definitely have Standard Engine..
Your system is probably using the UNIX lock table instead of .lck files,
and has a rogue entry in there. Try rebooting it. Also check what is
in systables for load_comma - you will find out what the name of the
.dat & .idx files is, and remember they don't have to be in the same
directory as the system catalogues.
Also check the permissions of the Unix files - create an empty database
to see what they should be first.
Of course you might have a corruption in the system cataloges. :(
Sometimes I've managed to repair those with bcheck -s, sometimes I've
had to unload the whole damned database and reload it, and the
corruption often stops dbexport working so other methods have to be
resorted to.
Can dbschema create a schema for the whole database? And if it can,
does the load_comma table exists?
BTW - it isn't a temporary table, is it?
--
Surfer!
Email to: ramwater at uk2 dot net