Update_Index vs. Manual Index Update (OpenInsight 32-Bit)
At 09 AUG 2006 06:11:19PM chip fichot wrote:
I ran into a situation yesterday where I had a problem with one of my index files. When the file was programmatically flushed using a call to Update_Index, it would hang and when I debugged it would either be in Index.Flush or F.Indexer.
However, if I updated the indexes either via a dedicated indexer or manually through the database manager, it appeared to flush without problems or errors.
I eventually discovered what was causing the problem (a corrupt index) by having the system monitor open and running an Update_Index - an error msg appeared in System Monitor. Solution was to manually remove indexing and rebuild.
Just wanted to post this in case any one runs into a similar problem. But I'm also curious as to why manually updating the indexes didn't produce an error while programmatically updating them would?
At 10 AUG 2006 05:46PM [url=http://www.sprezzatura.com]The Sprezzatura Group[/url] wrote:
Chip,
But I'm also curious as to why manually updating the indexes didn't produce an error while programmatically updating them would?
I'd imagine that the routines that appeared to work simply didn't report any errors they encountered - when you use something like the system monitor you get to see all the results - the system reports any errors flagged via the set_Status() call in the programs you've just executed.
World leaders in all things RevSoft
At 18 AUG 2006 10:53AM chip fichot wrote:
Thanks, Sprezz.
But I think my question is not really why am I not seeing an error so much as why a manual update of the index would appear to complete without a problem, while a programmatic update just hangs? Both should be performing the same process, so why does one hang and not the other?
Further, why does the program just hang? If I force the debugger, it's running INDEX.FLUSH. Is it caught in a loop? Is it possible that the index file is locked and it's waiting for it to be available (this happened in ARev, but it would tell you if that was the case). Is it trying to update a corrupt index? If either some, all, or none of the above, why doesn't INDEX.FLUSH have some error trapping in it?