Subject | Re: Firebird in readonly root environment |
---|---|
Author | paul_lowman |
Post date | 2008-10-01T19:50:59Z |
--- In firebird-support@yahoogroups.com, Helen Borrie <helebor@...> wrote:
and correct there).
the Classic packages. Check in your bin directory whether you have
it. You'll need to symlink it so your apps find it rather than
libfbembed.so.
exclusive. So your attempts to have multiple apps connect as network
clients will fail. But more to the point I guess is that the
environment variables are not available to remote clients.
The existing situation which you've said worked flawlessly is within a
very limited space: one local user with exclusive access to a
database, which it is reading as a file. The new situation is
client/server, where you have a full-blown server handling remote clients.
Thanks for your response. I have remote access working fine as long as
the firebird root is writeable so thats all OK. But as you suggest it
appears that remote access ignores the environment variables. I will
have to try another tack such as unionfs :-)
Cheers
>connect to database *file*
> At 14:26 1/10/2008, you wrote:
> >Helen
> >
> >I have been running firebird classic 1.5 with read only root file
> >systems for some years by symlinking the security database and setting
> >the environment variables to writeable directories. This has always
> >worked flawlessly.
>
> It seems that there you have been using libfbembed.so w. direct
>xinetd to be up-and-running (and of course the firebird script present
> >The difference now is that I need to access
> >databases (which are all located in read write directories) by using a
> >url and not just local paths. This is because although previously only
> >one application accessed the data now two (or more) processes need to.
>
> Right, so you need to activate fb_inet_server, which will require
and correct there).
>libfbclient.so. In latter years, Alex has distributed both clients in
>
> >So for example if I use isql to connect with
> >
> >connect /var/mydata/adatabase.fdb;
> >
> >all works fine
> >
> >but if I use
> >
> >connect localhost:/var/mydata/adatabase.fdb;
> >
> >it doesn't.
>
> As a rule of thumb, you'll need your POSIX applications to use
the Classic packages. Check in your bin directory whether you have
it. You'll need to symlink it so your apps find it rather than
libfbembed.so.
>correct. A direct connect, i.e. one made through libfbembed.so, is
>
> >In the first case the isc_lock* and init file are written to the
> >directory specified in FIREBIRD_LOCK but in the second the files are
> >written to the firebird root folder (if the file system is set rw else
> >fails). So the issue is why does firebird ignore the environment
> >variable when it uses the second connection form?
>
> Hmmm, I don't think the conclusion being made here is necessarily
exclusive. So your attempts to have multiple apps connect as network
clients will fail. But more to the point I guess is that the
environment variables are not available to remote clients.
>From my POV, I'd regard any such fiddling about to be experimental.
> >The root filesystem is set up readonly with various tmpfs mounts for
> >directories that need write access - such as /var, /tmp etc. This is
> >because the system is used in a machine control and it is desirable
> >that the system is not modified or corrupted readily.
>
> Fair enough...others may have some tips for you in this regard.
The existing situation which you've said worked flawlessly is within a
very limited space: one local user with exclusive access to a
database, which it is reading as a file. The new situation is
client/server, where you have a full-blown server handling remote clients.
>Helen
> ./heLen
>
Thanks for your response. I have remote access working fine as long as
the firebird root is writeable so thats all OK. But as you suggest it
appears that remote access ignores the environment variables. I will
have to try another tack such as unionfs :-)
Cheers