I creaded a FAQ section on the wiki, feel free to add stuff in the future: https://cwiki.apache.org/confluence/display/empiredb/Frequently+asked+questions
On Mon, May 17, 2010 at 1:34 PM, Rainer Döbele <[email protected]> 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 > > > [email protected] 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 > -- http://www.somatik.be Microsoft gives you windows, Linux gives you the whole house.
