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

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

> 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.

View raw message