Re: C-ISAM Coding Problem
Posted in 1995
Those functions are from the ALL-II library which used to be part of the plain Informix 3.30 (pre-SQL) product, and which was for a while provided in the ESQL/C-ALL product (now withdrawn). They are not part of C-ISAM per se. As to what's wrong, I've no idea, but you shouldn't still be using them. What has changed recently for it to have become a problem? If the program used to work and now doesn't, then you must have changed something, and whatever it was you changed was incompatible with what you used to have. I'd suggest rewriting to avoid using those functions. I don't have a 3.30 manual to be able to tell you exactly what the code does, but it opens datafile.{idx,dat} for use, somehow, and goes on to other things with it, but I don't know exactly what. Yours biassedly and not singularly helpfully, Jonathan Leffler (johnl@informix.com) #include <disclaimer.h> }From: garypfeffer@interramp.com }Date: 15 Dec 1995 16:37:33 GMT }X-Informix-List-Id: <news.19716> } }INFORMIX CISAM PROBLEM: } }dbselect(FILEOPEN,"datafile"); }dbstructview("datafile",fldatafile,DATAFLDS); }dbadd("datafile",&datafile); }dbfind("datafile",CURRENT+LOCK,(char *)0,&length,&datafile); }dbupdate("datafile",&datafile); } }These lines come from an application that our company uses. }The functions that begin with 'db' are in a library to which }I have no source code. } }All functions are executed successfully except that the }'dbupdate' takes forever. The more records that are in the file, }the longer the update takes. Using HP's System Monitor (glance), }one sees the disk access and CPU usage climb dramatically during }this wait. } }Obviously, it has something to do with indexing, and since this }is informix code, the 'dbupdate' function probably calls }informix's 'isrewrite' function. } }Anyone have some theories or answers as to what might be the }problem and how might I resolve it? } }Any help is greatly appreciated.