Subject | Re: Is embedded version of the FireBird can handle request from more than one ap |
---|---|
Author | Adam |
Post date | 2006-04-20T23:47:27Z |
> Is embedded version of the FireBird can handle request from more thanDisclaimer: I am talking about embedded for Windows here.
> one app ?
The embedded server put simply is the SuperServer database guts
embedded inside what the client application sees as the client library.
That means that your process launches an instance of a Superserver
(without all of the TCP listening stuff). You can make multiple
connections to the server from different threads of your application
(the client library is not threadsafe so a different connection per
thread is required).
You can NOT however use two different applications to connect to the
single database using the embedded server. Each application would
create their own instance of the database engine, and then you would
have the same sort of scenario if two SuperServer database engines
attempted to play with the same database file (ie Fireworks).
You can write a data abstraction layer service that wraps around the
embedded server. It would work as a proxy to the database engine, and
both of your programs could connect to your service.
The embedded server is a good fit for multi-tier applications, where
there is only a single application or service talking to a given tier
database. It is not a good candidate for a client-server scenario. You
can technically hit a nail into a wall using a spanner, but it is an
inappropriate tool, a hammer is a better choice. It is the same with
embedded. Its architecture is great in some cases, but this can also
get in your way in other cases. Embedded has less flexibility (only
supports local connections, only accepts connections from single
process which means no admin tool browsing while your application is
running, does not enforce password security, tricky to do a 'hot
backup') but is easier to manage from an installation perspective
(drop in the files and forget, not that the full server is that complex).
Other options you have is that you can install more than one instance
of Firebird on different ports.
Adam
>
> I want to create an application. I used SQLite before, but SQLite does
> not have high isolation level just like FireBird.
>
> The FireBird can provide cannot changeable snapshot. If other users
> modify the database, I cannot see it. That is good.
>
> SQLite don't handle this, if other user use commit, I see it's
> modifications... The corruption and insconsistency possible.
>
> So I want to change to FireBird, but I don't want to use FireBird
> server, because if in the machine already exists server, I have
> problems with usernames/passwords; and outer software (fbinstall)
> needed...
>
> The embedding systems have more flexibility, I can use them without
> installation...
>
> But I need two applications:
> 1.) a deamon, who working in the background, and fillup database
> 2.) reporter, who controll gui, and can reporting.
>
> But if fbembed not handle requests of two applications, I need to use
> Firebird Server.
>
> Can anyone help me ?
>
> Thanx for it:
> dd
>