Lotus Notes ver. 6.5.1 - Need advice/direction on best transaction recovery process.

Hello...Could someone provide a brief explanation or provide a url that offers a possible direction on how to recover from an error on a  "batch' update.  We do not want to rely on restoring from back-ups as this "batch' update is run multiple times each day.  

I have a button on a form that launches lotusscript that reads/updates many detail records (documents)....if for some reason the process errors half way thru the batch, I need a means of fast recovery, to restore the updated documents to their original state.

In a true database environment, one can use commit/rollback.    

I can only see writing a separate piece of code that identifies the documents updated and undo everything the original code put in place.

Is there any other means of "file" restoration.  

Writing perfect code that never allows an error is one solution.....is there any other?

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Sjef BosmanGroupware ConsultantCommented:
There is Transaction logging in Domino, mainly for backup and recovery procedures. There's no commit/rollback in Domino. What is the reason for you to want to have one transaction of multiple updates? The next best think would be to update documents twice. Are there many relations between documents?


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
you can only do "rollbacks" using Archive-style transaction logging, and even then, it has to be done "in cooperation" with backup software that does the point-in-time restores from tha backed-up archive transaction logs.  So, if yuo don't want to do restores, you may be stuck.  You can do the restores from diaks instead of tape, if your backup software supports that, and if it works well with your IT backup strategy.

Otherwise, I suggest taking a copy of each document before updating it, in a run-specific database.  You can then have a simple restore script.  You might wat to have some way of flagging whether a document's last update was via your batch job or a user action, so your restore does not write over subsequent user changes. or, rewrite the job so it can pick up where it left off, instead of starting over (that would bullet-proof most things, no?)
BeastDanAuthor Commented:
There are parent child relationships.......

The user keys in a "Summary" type document, containing fields representing different total amounts, then they key in one to many "Detail" type documents.
When they are finished creating the "Detail" type documents, the user selects a "Balance" button.  The script reads all of the "Detail" type documents, totalling different numeric fields.  These totalled fields are then compared to the "Summary" fields.  If the fields are in agreement, the user is then permitted to then launch code that applies the Detail type document data for updates to other existing documents.

On one test, halfway thru applying the updates, a type mismatch error derailed the process.
To recover manually is a tedious process.

I will write a separate process that identifies what documents were modified, and undo the updates that originally occurred.

I just wanted to make sure there was not a system in place to facilitate the restoration process.


Sjef BosmanGroupware ConsultantCommented:
Wouldn't it be a lot simpler to verify totals using a view and viewentries? No offence meant...

Okay, assuming that Detail works, as well as Balance, the error occurred in the "Update other documents" code? Why do so many documents need to be updated? Is the database document structure suitable for Notes, didn't you devise a structure that is more of a relational type? If the database already exists and is operational for some time, then we'd have to stick with it, otherwise I'd like to suggest to you to present (some of) the database's ERD here.

It is always good to build in error traps, using
    On Error Goto label
BeastDanAuthor Commented:
The developers never had much say in this, but we always believed Lotus Notes was not the proper tool for this task.  Software that has commit/rollback features would be suitable.  Employees with Notes experience have gone on to greener pastures.  I have had little formal training.

I will flag documents that were updated and then undo the updates that occurred.
Just making sure what the options were.

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Lotus IBM

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.