Subject Re: [firebird-support] What is ForcedWrites default?
Author Olivier Mascia
On Fri, 10 Dec 2004 14:33:24 -0000,
"kimon_the_athenian2" <kimon_the_athenian2@...> wrote:

k> What could have caused this? (My client admits having turned power
k> off when the program hanged but I believe there was no db request in
k> progress at that time; im not sure, though).

If your program hang, then the embedded server too.
If your program has a bug and wipes out a part of its memory space, the
embedded server and its data structures (in your memory space) are at
risk. This risk is even higher than a hard stop. It can lead to writing
erronenous bytes in the database.

If you're concerned by robustness, forget the embedded dll.
If you want the server to be tightly integrated with your app, install
its server components along with your app (through your own app setup)
to some subdirectory of your application target. Ship a firebird.conf
file preconfigured for your needs. You can even go as far as having your
app start and stop the independent server when the app start/stop. But
you run the database in a separate process space than the app. It is
much more robust. And if you take care of keeping forced writes on and
teach the users not to power off, you will have success and zero support
requests.

If you read among the lines... Yes I am among the ones who think that
the server as an embedded DLL is something that should never have
existed, especially on Windows OS.

Installing a per-application private copy of the server, as described
(very shortly) above, involves installing some more files than a single
DLL, yes. But not hundreds of files, not even tens of them.

Embedded server in a DLL might be usefull for some short-running tools
or utilities. For an application serving end-users, I would not even try.

--
Olivier Mascia