empire-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Döbele <doeb...@esteam.de>
Subject re: connection pooling with empire-db
Date Tue, 24 Jun 2014 06:46:31 GMT
Hi Harald,

please apologize that I have not been able to answer you request earlier.

I use connection pooling with all my web projects.

Empire-db itself does not do anything to fetch or release a connection at all. The reasons
for this are:
1. The requirements for how connections are handled varies for each application type.
2. The user should be able to clearly define the scope his/her transactions

Both issues often cause problems with other ORM or DB frameworks like e.g. JPA.

For my Web-projects I always use this approach:
1. I have a static method called getConnection that checks if a connection is already available
for the request. If not a connection is fetched from the pool (DataSource) and then stored
on request scope.
2. I have an interceptor of in JSF a PhaseListener that automatically returns all connections
to the pool after the request. If an exception has occurred then a rollback is automatically
performed before the connection is returned, otherwise a commit is performed. However one
can always commit or rollback manually in the action handler.

If you use our Web-extensions (Struts2 or JSF) it is easy to implement connection pooling
as you only have to override one method in the application object (e.g. getAppDataSource(DBDatabase
db)).

So to answer your question:
In multi-user, multi-threading applications you really should use connection pooling.

I hope this answer is sufficient for you.
Best regards
Rainer


> from: Harald Kirsch [mailto:Harald.Kirsch@raytion.com]
> to: user@empire-db.apache.org
> re: connection pooling with empire-db
> 
> Hi all,
> 
> I have the need to use connection pooling with empire-db. Are there any
> best practices or code examples of how to organize this.
> 
> Or asking directly: is it good to use the connection pool for the JDBC
> connection and have code like
> 
> conn = datasource.getConnection(); /** get one from the pool **/
> myDbDatabase.open(driver, conn); ....
> myDbDatabase.close();
> conn.close(); /** ?? **/
> 
> or would it be better to somehow create a DataSource that creates
> myDbDatabase and pools it?
> 
> Regards,
> Harald.

Mime
View raw message