Kimsue,
The most frequent cause of Index corruptions over Netware, is due to users "Rebooting", or improper shutdown of applications with the tables still open. This happens frequently if they have a machine "Lock UP", or they are just not used to an environment where they follow "Good shutdown" procedures.
In the event of a lockup, you can minimize this effect by "Releasing" the user from the server. This actually allows the server to shut down the connection to the table gracefully, and keeps index corruptions from happening so frequently. Also, the more users do this, the worse it is.
Typically, any table that might be open during the "Shutdown" is at risk, but the one that is MOST at risk is whatever the currently selected work area is. If a user is going to be away from the system, even for a few minutes, encourage them as well, to not stay in a "Screen", but maybe retreat up to a "Top-line" menu level, where you usually don't have tables open.
Also, with your reindexing process, ensure you are NOT using Fox's REINDEX command. This causes bad, bad, bad problems in the index itself, and can bloat them to rediculous sizes. (This is due to the fact that sometimes, not always, and I was never able to put my finger on the WHY, but it is a known Fox "Gotcha", it does not "Delete" the old index values, but instead creates new ones in the same file. The old one's don't really effect much, but the index bloats, and does get slower). I personally also found that indexes were more prone to corruption when created with "REINDEX".
If you're not already doing so (and perhaps you are), I recommend this process instead:
PROCEDURE REINDEX
SELECT <table>
DELETE TAG ALL
*
INDEX ON <expression> TAG <firsttag>
INDEX ON <expression> TAG <secondtag>
etc., until you have rebuilt all of your indexes.
As an added measure, I will usually take the same oppertunity to Pack the tables, but I usually do that as a seperate item. If I issue a "Pack", you must always issue a "REINDEX".
Some other little known facts about Fox indexes and corruption, avoid the following pitfalls as well:
DO NOT use any TRIM() functions (LTRIM, RTRIM, ALLTRIM) in your index expressions. These, in the best case scneario, will yield unreliable search results, and lead to index corruption when new records are added.
Avoid REINDEXING with Deleted recods in your table, especially if SET DELETED ON is set.
Ensure that your index expressions create unique values. (Yes Virginia, every index should be a candidate...) Even if you have to concatinate fields to creat a unique index value, in 2.x indexes, it is highly recommended. (Or, if you are just not able to do it, that table should be REINDEX at minimu weekly.)
The final note, try to limit your index's to less than 6 tags. (Unless you have a truely static table, then you can exceed that number).
Hope this will solve some of your problems. I've worked with Netware and 2.x for 10 years now, and I've gotten pretty good at dealing with index corruptions.
Best Regards,
Scott
Please let me know if this has helped
![[hammer] [hammer] [hammer]](/data/assets/smilies/hammer.gif)