BTREE.EXTRACT - Lock the index? (OpenInsight 32-Bit)
At 05 JUN 2007 12:10:35PM chip fichot wrote:
When an indexed table is being flushed, BTREE.EXTRACT calls get stuck in a loop waiting for the flush to be complete (apparently because it wants to lock the index before reading).
Is there a parameter that can be passed to BTREE.EXTRACT to bypass the lock? Alternatively, is there another way to read a BTREE index that gets around this issue?
TIA
At 06 JUN 2007 04:31AM [url=http://www.sprezzatura.com]The Sprezzatura Group[/url] wrote:
No, there is not a way to bypass the lock.
You could, theoretically, use BTREE.READ and process the nodes yourself, however I'd recommend locking the index to ensure it doesn't modify out from under you. Of course, if you follow this recommendation, then you're just putting yourself into the same problem you have, but with the option to abort out. In the end, it's not really a viable solution for you.
As with the other post, I'd look at the LIST_USER_LOCKS window and verify who has what locked. It might be that your system is not releasing locks correctly.
World leaders in all things RevSoft
Revelation Conference 2007, London - Wednesday 27th June Click here to register for the premier Revelation Software EMEA event of 2007
At 06 JUN 2007 10:23AM chip fichot wrote:
Thanks, Sprezz.
The issue is that the indexing machine has the lock on the index. This occurs during a batch process whereby approximately 10,000 (or more) records at a time are updated with 5-6 indexed fields on the file.
Once the indexer flushes, the lock releases
Our workaround in some cases has been to build our own cross-reference index in a single record in a file which can be read and processed without locking. Of course, since this requires custom coding, I was hoping to be able to find a way of using the internal routines.