Subject Re: [firebird-support] Embedded use
Author Brad Pepers
Helen Borrie wrote:
> With Classic and the client, yes. Just do a regular Classic
> install and connect directly to /home/firebird/mydb.fdb and
> 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.

Thanks for all the info Helen! I find it too bad that Firebird on Linux
doesn't have an embedded version like the Windows side. From what it
looks like, I will actually have to install most of Firebird and setup
special permissions and everything to make it work on Linux which isn't
really embedded at all. What I wanted was to be able to directly attach
to a database without running servers or multi-user or anything and to
not have the security database or much else besides the library to link
with. Basically to me thats an embedded database and what is available
on Windows but is not available on Linux.

> 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...

It doesn't look like it needs the fb_inet_server but it does need the
fb_lock_mgr and that needs to have particular permissions it seems and
it looks like the security database is needed as well.

What I wanted on Linux was exactly what exists on Windows so that I
could just add a single library to my application and so that a user
could easily install it in their home directory if they wanted to for a
demo version and they wouldn't have to be root or anything. But if I
need to setup users and groups and setuid the fb_lock_mgr program and
all that then its not going to work...

Did this use to exist? I found a web page that detailed using just and it said you didn't need the password database and all
that which made it sound just like the Windows method.

Brad Pepers