Hello,
I have a program crashing. I do not need to go into all the details because I just want to know based on the scenario what is the best way to handle this. Program processes documents in a user mail database. There is some corruption of the database that causes automatically fixup to be run and this is when our program has a problem. Fixup prevents the program from modifying any documents to the database. Currently as a solution, we just allow fixup to finish on the database and then the program works fine again. But I am wondering how the program can be coded so that in can recognize fixup now processing the database and logically decide to stop.
I would imagine the error coming back would be from NSFNoteUpdate() but I am not sure what the error code would be. In looking at the nsferr.h here are some promising errors I found:
ERR_NO_FILE_SHARING “This database is currently in use by another person or process, and cannot be accessed at this time.”
ERR_NSFOPEN “Database is currently in use by you or another user”
ERR_NSF_IN_USE “Cannot do that to an NSF that may be in use”
ERR_FIXING “Performing consistency check on ____…”
Thank you
Subject: that is it
Hi John,
That is it. I accidentally overlooked that one which is the reason why I posted here. The wealth of knowledge here is what makes this forum so great.
Thank you
Subject: simple enough…
Thank you for the response Barry.
Yeah, I could do that to just logically to determine I cannot write to the document but I was looking for the specific error to test for that would occur if fixup was running. Testing the way you mention would just say I can not touch this document so I could move on to the next document, and the next, etc. Each would fail. But if I knew which error was passed back because of fixup running then the code would be able to just close the DB being there is no way we could process any document in the DB until after the fixup is complete. If someone knows then great but if not I can run some tests later tonight to determine. I am just concerned that fixup will be finished so fast in my testing that I will not be able to run my code fast enough to determine the error… Actually I think I have a plan, I could write some code to just open database, open document, get field test, if 1 change to 2, if 2 change to 1, NSFNoteUpdate, if error print error on screen. While loop is running then run fixup against the database. I think a test like this could work.
Subject: ERR_FIXUP_IN_PROGRESS