Subject Re: [Firebird-Architect] Fwd: couldn't set uid - message in fbembed linux
Author Ann W. Harrison
>My application has embedded firebird db. When I connect db through
>classic libraries in linux , I get a messages that "lock manager:
>couldn't set uid to superuser". I get this messages when i make
>multiple connection in my firebird embedded application. I get this
>message only in linux,

The embedded firebird for linux is actually the old 'classic'
architecture and quite different, structurally, from the embedded
version on windows. Windows uses a multi-threaded server library
which opens the database file exclusively then handles all connections
coming from the application and allows them to share a page cache
and a metadata cache.

The classic architecture has a single threaded library of database
services - implemented as a shared object library. Each connection
gets its own page and metadata cache. The classic architecture uses
a shared memory area called the lock table to coordinate access.
When the lock management code discovers that one process needs a
resource that another process has locked, it signals the other
process. On some Unix variants, processes can signal only within
their process groups, which works very badly if a database is
shared by process that don't share groups. In that case, a process
variously called gds_lock_manager and gds_relay runs with setmod
privilege to relay signals.

That process must be installed and run with the correct privileges.