Subject | Re: Firebird in readonly root environment |
---|---|
Author | paul_lowman |
Post date | 2008-10-01T04:26:47Z |
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. 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.
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.
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?
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.
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. 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.
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.
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?
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.