Subject Re: Another process is locking the database file ...
Author Adam
--- In firebird-support@yahoogroups.com, Lucas Franzen <luc@...> wrote:
>
> Hello,
>
> Scenario:
> Firebird 1.5.3 Superserver
> Windows 2003 (but it also happened with W2K, always latest SP)
> Application, written with Delphi/IBO, doing loooong data analysis
> operations, no problems so far.
>
> I had to drive to a customer this week where the program always fails
> after some time (different durations, maybe 2 hours, maybe 5, maybe
> more). It's the only site where this happens.

Yuck, do what normal people do and enable terminal services :)

>
> My error log shows:
>
> ISC ERROR CODE:335544344
>
> ISC ERROR MESSAGE:
> I/O error for file "E:\DB\DATABASE.FDB"
> Error while trying to read from file
> Der Prozess kann nicht auf die Datei zugreifen, da ein anderer Prozess
> einen Teil der Datei gesperrt hat.
> (The process cannot access the file since another process locked some
> part of the file.)
>
> Never seen and experienced that before.
> Looks like something's able to override the servers file lock.
> And it's really Superserver running, not embedded one.
>
> Analysing the Win systemprotocol I saw that approximately 90 seconds
> before the program stopped a "volume shadow copy" process (vssvc.exe)
> did run.
> (On the Win2K server the same, the process was certsrv.exe)
>
> So the service that started the VSC process was disabled.
>
> The program was restartet in the afternoon, but failed with the same
> error again in the evening.
>
> I haven't received the log of the system protocol so far (so I'm not
> sure if the 90-seconds-in-advance-process was really stopped by
> disabling the VSC service)
>
> Any clues for me?

Firebird does not use a file system level exclusive write lock. For
one, it wont work under classic, but apart from that you would not be
able to use gstat etc if it was exclusively locked by a single process.

But your problem is occurring because something is taking a file
system level copy of the database file (in this case Volume Shadow
Copy). Either switch it off, or move the database to a volume that
does not need to be shadowed.

You will have problems if ANY process tries to directly copy the file.

Adam