Subject Re: [firebird-support] Embedded use
Author Helen Borrie
At 03:13 PM 14/09/2005 -0600, you wrote:
>Can Firebird be used on Linux as an embedded database? I see it
>mentioned on Windows that it can but I can't make it work on Linux. I'm
>looking for a way for my application to directly open databases and work
>with them without any servers running and need to know if this can be
>done with Linux and if so, what are the files that need to be installed
>to do this?

With Classic and the libfbembed.so client, yes. Just do a regular Classic
install and connect directly to /home/firebird/mydb.fdb and libfbembed.so
will start an instance of the server directly (literally! it doesn't ask
xinetd for a process.) This is the model that the command line tools use
when you use them locally with a Classic installation.

You'll need a firebird group with rwx permissions to the directories where
the database file is, and rw for the file itself. The user needs to be in
that group.

There are differences from the "Windows embedded" model. Windows uses the
Superserver engine, which exclusively locks the database file at the first
connection. Embedded on **x uses Classic, which starts a separate process
for each connection. If the firebird script is present in xinetd.d and
fb_inet_server is there, there's nothing to stop network clients from
attaching simultaneously to the database while an embedded client is
connected. Conversely, a "direct" connection to a database is not
available to the Windows implementation of the Classic server.

What I can't tell you for sure is whether libfbembed needs the
fb_inet_server executable. I don't think so...I don't have a Fb 1.5
Classic installed on any of my Linux boxes at the moment to test that; but
it should be pretty easy just by renaming fb_inet_server and seeing whether
you can make the local connection...

./hb