I've noticed that if you install a database and reset very quickly after it has 
been installed, it can disappear on the TX.  For instance, if you do SysReset() 
in response to a dmsync (I think that's the name) launch code, and then install 
the app, the system will reset and the app will instantly disappear.  DmSync() 
doesn't help, but a delay loop does.  I suspect the culprit is NFFS write 
cache.  

There may be some other conditions where this happens.  One possibility is that 
if the db is left open, the reset might happen just when the NFFS driver is 
committing it to flash.  This could mean that the flash version of the file is 
corrupt when the OS starts up, and corrupt files are deleted by the NVFS 
system.  

And I assume you know that, typically, if you open a DB, make changes, but 
don't close the DB, then any changes may be lost if a reset happens.  Judicious 
calls to DmSyncDatabase() can help.  (That makes me think that I should 
probably put some calls to DmSyncDatabase() in ChronMemo.)

This stuff is hard to debug because the details of the behavior are 
undocumented.  Basically, you should assume that a database will not be 
committed to flash unless a DmSync*() routine is called and even then there 
might be a small lag time.  
-- 
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/

Reply via email to