incubator-empire-db-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Francis De Brabandere <>
Subject Re: using of empire-db in multithreaded environment with multiple connections
Date Tue, 18 May 2010 10:39:48 GMT
I creaded a FAQ section on the wiki, feel free to add stuff in the future:

On Mon, May 17, 2010 at 1:34 PM, Rainer Döbele <> wrote:
> Hi Leszek,
> please appologize that I have not been able to answer your request earlier. In case you
have not found out already, here are my comments to your questions of last Friday:
> To 1: We use empire-db a lot in Web applications which of course use mutlithreaded requests.
Normally the data model definition is static i.e. once it is set up, it is not changing and
thus accessing it from multiple threads is not a problem. All stateful objects used to access
and manipulate data such as DBRecord and DBReader are allocated on a per thread basis. However,
if you plan to make dynamic changes to your data model at runtime you will have to make sure
that these changes are thread-safe. This must be done at application level.
> To 2: The conneciton used when opening the database is not stored with the database.
It's purpose is soley to allow the driver to perform intialization functions and may not be
used at all. Hence the conneciton may even be null, when opening the database. The open function
on the database must only be called once in order to attach the driver. You may then use as
many connections as you want - everytime a connection is needed you must supply it with the
API call.
> In our (web-)projects we usually obtain a connection from a connection pool managed by
the application server on a per request basis.
> I hope my answer is helpful for you.
> P.S. Thanks for your contribution of the DdlUtils interoperability code. I will have
a look at it as soon as possible.
> Regards
> Rainer
> wrote:
>> re: using of empire-db in multithreaded environment with multiple
>> connections
>> Hello
>> I am new on this list. First of all I think empire-db is a framework
>> which does a good job without
>> overuse of annotations (in fact it does not use them at all).
>> I have some questions regarding use of empire-db in multithreaded
>> environment (in example in a service layer of a web server)
>> 1 Is DBDatabase (and related DBTable, DBColumn) thread-safe? I mean that
>> only one instance of database model exists and
>> it may be acessed by multiple threads. I also assume that DBCommand,
>> DBRecord are created locally in functions.
>> 2 DBDatabase must be opened before use by call of
>> open(driver,connection). What to do if application creates/uses multiple
>> connections? Should DBDatabase be reopened on every connection or it is
>> enough to open it only once.
>> Regards
>> Leszek Piotrowicz

Microsoft gives you windows, Linux gives you the whole house.

View raw message