Request for help on some CISAM problems.
Posted in 1994
Topics: Transactions, Locking & Isolation, Clustering, Grid & MACH11
I have a few questions about CISAM and any comment/solution would be welcome. The application is written in CISAM library calls. It basically read info from a data file and then upload the info to different tables in the database. The problems are : 1. When several of such applications are run at the same time (each application read different data file), we got error 45 which is "Lockf deadlock detection". According to the FAQ and informix manual, one possible origin of the problem is "not enough lock entries in the kernel". The no. of lock entries for the system is config. to 200. Is it enough ? If it is enough, then what would be the possible cause of this error ? (Although the application open the table with manual lock, but it did not actually apply any record locking at all. However, it start a transaction fairly early and then do a lot of searching and updating before committing it at the very end. But I think the transaction should take care about the deadlock situation.) 2. We also try to use the iscluster() function to rebuild the tables every night (because we did a lot of insertion and deletion to the tables everyday). However, we find that after iscluster() was run, the index was corrupted (i.e., when we try to search something by a key, it actually fetch the wrong record). Is there any tricks/pitfalls about iscluster() I should know about ? I notice that if I create a table (with one key) using isql, the 'bcheck' program will report that there is two indices. Is the addition index reserved for cluster index ? If the table is created by CISAM library, that additional index does not exist. The additional index only appear AFTER we applied iscluster() to the table (which apparently corrupted our primary key as well). So, should I call iscluster() immediately after the table is created ? 3. Occasionally, we experience data corruption on the .dat file. If the corruption is on .idx file, we can use 'bcheck' to repair it. So, is there any tools (public domain or comercial) which allow us to repair/delete the corrupted data record in .dat file ? Thanks for your help in advance. -- Ellis Luk, Internet: ellisl@sw.oz.au Softway Pty Ltd PO Box 305, Strawberry Hills, NSW 2012, Australia Tel: +61 2 698 2322 79 Myrtle St, Chippendale, NSW 2008, Australia Fax: +61 2 699 9174