> The obvious quick fix is to retry these file operations that must
> succeed,...
Can some windows programmers suggest patches to os_win.c to
implement this.
Subversion had the same issues for the same reasons. I'd suggest
a similar solution and parameters:
http://subversion.tigris.org/faq.html#windows-access-denied
Yes, I agree. But microsoft is unlikely to address the
gross deficiencies in their filesystem. So I suppose it
will fall to me to find a work-around.
Strictly speaking it is the Win32 api that enforces some things
(like being unable to delete an open file) rather than the NT
api or the filesystem itself.
However the underlying cause of this situation is the provision
and usage of change notification. All operating systems now
provide this functionality and it is widely used by search
agents, virus scanners, backups, policy checkers etc. Some
of those programs do not play nicely with others and cause
this problem. Ultimately there will always be crappy programs
out there, so making SQLite play well despite the behaviour of
other programs will benefit SQLite users.
It may be worth considering a solution for all operating
systems. I don't know if anyone has tracked how well
Spotlight (Mac) or Beagle (Linux) work with SQLite files.
I'd also like to take the opportunity to name and shame the
Veritas backup agent which prevented me from completing
Subversion checkouts because it didn't play nicely with
others.
Roger