|Subject||Re: [SOLVED][firebird-support] linux, firebird embedded and $FIREBIRD_TMP|
>> [..]Of course, as it uses $HOME in the path, which points to the users home
>> Setting the FIREBIRD_LOCK variable to "$HOME/appname/fbtmp" solves my
>> problem. No /tmp/firebird is created anymore, but $HOME/appname/fbtmp
> And it will be different for every user, correct ?
> If different instances of the engine will use different lock tables (because ofAs I can see you did not recognize my ansers wo Alan's response. I
> different values of FIREBIRD_LOCK variable) to acces to the same database
> you'll corrupt data.
explained a little bit more how the software works:
I have one directory /opt/appname/fbembed with the folowing content:
The firebird.conf contains only:
RootDirectory = /opt/appname/fbembed
The application itself uses the embedded firebird to create a new
subdirectory in the users home directory which contains a firebird
database and some more files. So it is always one user accessing the
database in his own home directory.
The problem is, that the first time a users runs the app, firebird
creates a /tmp/firebird folder which is only writeable by the user. So
the second user gets a permission denied error.
To get around that, I tried to export the env variable FIREBIRD_TMP with
$HOME/.appname/fbtmp as value. But that seems to be ignored becaus I
can see from a strace output that /tmp/firebird still beeing tried to
open, which obviously fails.
I know that firebird-classic or -superserver makes everything easier.
But it makes one important thing not easier: shipping our app to Linux
end users in the desktop market.