Hello, Jari!
Just to give you a position, I used caching, that is, when the application starts, I place all records in memory, and when it finishes, I write them all back to the .db file. But I didn't use the observer pattern, because it isn't really necessary. What I did is, the records being displayed to the users are refreshed every time they call the server. For instance, if you have records 1, 2 and 3 being displayed, I update record 2, then you update record 3, then record 2 will be updated in your screen only when you update record 3.
Also, it is exactly what you guys are saying. It is only our application accessing the .db file. So, you can use caching without any problems and not worry about the file being updated out of your application and messing up the records!
Cheers, Roberto Perillo
SCJP, SCWCD, SCJD, SCBCD