Subject Re: [firebird-support] Utilities link libfbembed.so on Linux CS. How does they access to remote database ?
Author Helen Borrie
At 10:23 AM 31/08/2007, you wrote:
>Hi Helen,
>
> Thank you for your reply. I learned a lot from it.

Hi Meiji,

I'll try to answer your questions as far as I can but really you will
get your best answers by trying things yourself.

> > Yes, when you access a database locally with the Classic server, the
> > "client" part of libfbembed.so accesses the database directly (as a
> > file) by way of the server that is embedded in the library, i.e., it
> > does not work through an instance of the fb_inet_server executable,
> > as remote clients do.
>In that time, FB can do exclusive operation properly ? for example,
>
>(1) gbak with libfbembed.so vs. isql with libfbembed.so
>(2) gbak with libfbembed.so vs. user application with libfbembed.so
>(3) gbak with libfbembed.so vs. user application with libfbclient.so

As far as I understand it (and I don't have a test station available
at the moment) the Linux user that has the *database* open will
exclude all other users from getting read/write access to the file,
i.e., another direct connect session by a different user or a
connection by an fb_inet_svr process.

So, (1) and (2) should be possible if the Linux user is the same and
the connections are not through localhost. Each session would use
its own instance of libfbembed.so. (3) would not be possible since
the Linux user would be firebird, a different user.


>Especially, User application don't use the same way like a gbak,

On Linux, gbak, etc., when run directly, are embedded
applications. When gbak is run through the remote interface, it
handles only the request. The actual operations would be run from
Service Manager, using the code located in the server.

ISQL is just a regular client application, like your user applications.

>If user use user application in the same PC with server, he(or she)
>have to link
>libfbembed.so in order to gain the good performance.

It's true that embedded applications are said to run faster than
client/server applications, so embedded webserver applications with
browser clients are purported to be the best-performing model.

For Kylix 2-tier apps with a stand-alone architecture, I have
observed no difference in performance between libfbembed.so with
direct connection and libfblclient.so and TCP/IP. But I could not
report on performance under heavy load, i.e., whether a local
loopback user suffers slow performance when competing with many other
concurrent users in the network.

>And there is any possibility to use user application via network, he(or she)
>have to link libfbclient.so.

Yes - if the user application runs on Linux. Or fbclient.dll if the
user application runs on a Windows client. :-)

>Is it correct recognition ?

Reasonable assumptions, perhaps. You really have to test these
things yourself. And wait for someone (such as Sean Leyne) to tell
you what works well for real-life production conditions where both
the servers and the clients are running Linux.

./heLen