Subject Re: [ib-support] Working with IB from an application running seve
Author Claudio Valderrama C.
""Wilson, Fred"" <Fred.Wilson@...> wrote in message
news:E9E4431A916AD21191FD00104B986AEF9776D5@......
> I just want to confirm, that I'm reading this correctly, and that it
means:
> =20
> - Only a single connection (one thread per connection) can run at a time
an=
> d
> all other connections are blocked.

Fred, she was writing about LIBS, local IB.
It uses mapped memory files to communicate with the client. Due to the way
IPC (Inter-process communication) implementation was "injected" under the
y-valve (or in the middle, maybe <g>), one client being serviced blocks
other clients. Basically, one connection is serviced by a thread that does
its job (for example, answering a SELECT statement) and when it finishes,
the next thread can execute its request. Borland doesn't allow LIBS to
accept localhost connections.

This is mitigated by the following factors:
- LIBS was meant for single local access. If you have several single-user
apps competing for access against LIBS, they will experience delays.
- If you want the typical multiuser, networked app, you will use IB OE,
IB6.5 paid or Firebird, where blocks only happen in some places of the
internal code, not on the whole request.

Never mix local and remote connections. The local one is likely to stall the
remote connections. This is for a peer network where one PC is user and
server at the same time. The local user ought to specify TCP localhost or
netbeui connection to his/her own PC. But for typical deployments where
there's a dedicated server, nobody can use local connections, unless the
admin is working locally on the server at the same time than remote users.

C.
--
Claudio Valderrama C. - http://www.cvalde.com - http://www.firebirdSql.org
Independent developer
Owner of the Interbase® WebRing