Quote:
Under certain conditions process can crash. |
What causes the crashes? The best way to avoid issues with running
recovery is to not have to run it in the first place...
Quote:
The only way for me to resume normal operation was shutdown my process,
run db_recover utility and then restart. |
That's right -- after a crash, you need to shut down all processes, run
recovery once (without anyone access the data in parallel), then
restart.
Quote:
In actual deployment multiple instances of my process will be running
on the same machine.
And mulitple threads in each process will be running in each of these
processes. So if one process core dumps, every other process cannot
perform any operations on BDB. This problem has made my application
unusable. |
The recent Berkeley DB 4.4 release has two new features to address
this: you can clean up after a thread or process that exits with
handles open (DB_ENV->failchk), or you can detect whether recovery is
required when a process opens an environment (the DB_REGISTER flag).
Regards,
Michael.