Subject Re: [firebird-support] linux, firebird embedded and $FIREBIRD_TMP
Author Helen Borrie
At 06:06 AM 30/09/2009, Milan Babuskov wrote:

>Is this new in Firebird 2.5? I don't recall having such problems with
>2.0 for example. IIRC, I did have multiple users running "embedded" at
>the same time without problems.

In v.2.1 and lower, when one connects to a database using a "serverless" connection string, e.g., /var/databases/mydatabase.fdb using libfbembed.so, the embedded server opens the database file directly in user space and also creates the lock objects in that user space. If one then opens another terminal on the same box as a different OS user and tries the same, it is blocked because the first process already has exclusive control.

libfbembed.so *can* be used as a TCP/IP local loopback client by multiple users on the same box, as clients of the localhost server, as long as xinetd is running.

AFAIU, the same distinction holds true with v.2.5. However, V.2.5 introduces what has been termed "Superclassic", an additional model whereby the xinetd daemon is replaced by a custom "listener" executable (fb_smp_server) that spawns Classic processes from libfbembed.so but controls inter-process objects globally.

It could well be that the OP will find his solution in Superclassic, i.e., the ability to deploy a self-contained single-box package for multi-terminal usage that doesn't require xinetd to be installed and running.

I think the changes - and their effects on installation and usage - are under-documented in the release notes so far. It is certainly time to move this thread to firebird-devel for further elucidation. It does not belong here.

^ heLen ^