Deployed Runtime and indexing (OpenInsight Specific)
At 21 MAY 1998 08:50:45AM Jeff Word wrote:
We finally deployed our app using the RDK and received no errors. When we run the runtime version we get the following senerio:
Neccesary info:
- All of the following work in the develoment copy
- Background indexing is set to wait 5 seconds
1. When we add records, no indexes are built, not btree, cross reference, or relational (no matter how long we wait)
2. We swap the engine and look at the pieces of the index (using tech #56) they all seem to be there
3. From database manager we can rebuild cross refererences and they rebuild, however adding a new record will not add to the cross refererence
4. Relational indexes will not even rebuild
What is happening? Any ideas appreciated. Is there some master setting relating to indexing that we are missing? Should we set Set_Env differently?
At 21 MAY 1998 04:05PM Jeff Blinn wrote:
What is happening? Any ideas appreciated. Is there some master setting relating to indexing that we are missing? Should we set Set_Env differently?
Jeff,
We had similar problems when we deployed our first app. It looked like everything was there - although we had few different symptoms that I'm not sure apply to your app.
However, something you might try would be to swap engines (again), and run the system editor in the runtime version. Attach (reattach) the volume containing the files/indexes, and then execute DEFINE_DATABASE from the command line to, overwriting the current database definition file.
I would probably be tempted to remove/recreate the indexes as well, in the runtime environment if the above procedure doesn't solve the problems.
Jeff
At 23 MAY 1998 06:59AM Jeff Word wrote:
Cross references began to work after doing what you suggested. The relationals are still giving us grief. We are writing a program to remove all indexes and add them again.
Was deployment a major problem area for you? We have been trying to deploy for weeks. I am weary of messing with it. This seems like time spent that we should not have to. I wish some of these things would just work.
At 25 MAY 1998 03:51PM Jeff Word wrote:
Here is an update of where we are at:
5-22-98
We have several hundred indexes, so I wrote a program to delete all indexes in our entire app. I also wrote a program to put them back on. I did find several tables that I could not get the indexes off cleanly or back on cleanly. I deleted these tables and created them from scratch. Then I created their dictionaries from scratch. Now I can remove and add all indexes cleanly. (Who knows what made these tables "go bad"?? They were just simple tables with two real fields in them.) We removed them all and put them all back on and then deployed. Same results.
5-23-98
Jeff Blinn told me to swap the engine and detach, attach, define_database so I did. It did not seem to help but actually made things a little weirder. If I look at indexes in database manager I have less than I did before. I have no idea what that means. After spending two more full days on this, I basically have the same results in the runtime that I had before.
5-25-98
Again I tried swapping the engine and detach, attach, define_database. Then I wrote records into some tables. These tables had all three types of indexes on them. It still did not create the indexes so then I went in to the !tables and looked around. I found that transactions were que'd up for all indexing types. so I ran update_index to flush the transactions. It worked for btree and cross ref, but not for relational?!? I set the environment settings to 1 second and update indexes before query. I tried querying the database. I tried index update from the database manager. I tried update_index from the system editor exec line. No matter what I tried I could not get the relational indexes to update. All the transactions are sitting there but I cannot flush them. Is there something I am forgetting? How can I get them to update?
At 25 MAY 1998 04:47PM Jeff Word wrote:
Swapping the engine and running update_index using the development engine did not help.
Setting Sys_Env number of seconds to 1 (dedicated indexing) did nothing either.
At 26 MAY 1998 11:48AM Jeff Blinn wrote:
I'm not sure if you're still having the problem or not. If running define_database didn't fix it - then removing/rebuilding is probably necessary. When you remove the indexes - I would recommend (we had to do this) removing to the point of making sure the !filename files are completely deleted as well. Running 'remove indexes' from the database manager seems to do this 'sometimes' - but there were cases where we needed to actually delete the !filename files. Once you are at the point of a 'clean' runtime application with no indexes - adding indexes will update the *.dbt file accordingly.
As far as the environment setting for updating indexes - I'm not convinced that it is as accurate as you might like. Our environment is set to 5 seconds or something that - and it usually takes longer than that for the indexes updates to occur - but they do happen. I've added some test records, go get a cup of coffee, and when I come back the index updates are complete. I wonder how 'idle' time is determined in OpenInsight.
At 26 MAY 1998 11:19PM Don Bakke wrote:
I wonder how 'idle' time is determined in OpenInsight.
My guess is that there is no true idle time in OpenInsight ala AREV. Rather OpenInsight is using a Windows timer which will repeat itself every specified amount of time regardless of whatever else is going on. However, if the system is currently running with some other resource instensive process then this could effectively "delay" the timer, but only until the very next gap of time is exposed.
dbakke@srpcs.com
At 27 MAY 1998 08:29AM Jeff Word wrote:
I put the development engine in the runtime. I detach, attach, and define_database so indexing will work at all. Then I ran a program to delete all indexes and then add them back in. Then when I write records to tables with relational indexes the indexes build on-the-fly like they are supposed to.
Conclusion: RDK is missing deploying some piece(s) that would allow relationals to flush the queue. They get queue'd up as transactions but they will not flush. In our estimation the index flush routine has a condition required to build relationals that is not being met in the deployed runtime.
At 28 MAY 1998 08:05AM Cameron Revelation wrote:
Jeff,
I would very much appreciate if you could send us a deployed app with the indexes not working. If we can see the problem here that you are experiencing we can fix it (if it is a bug) or improve the error reporting (if there is a problem in your database).
Revelation Software
Attn: Quality Assurance
201 Broadway
Cambridge MA 02139
Send it on ZIP or CD preferably, or you can email it to info@revelation.com with a subject of ATTN:QA. Please include an explanation of the problem.
Cameron Purdy
info@revelation.com