Is "Tomcat 7 JDBC Connection Pool" good enough for production? And how is it compare to BoneCP?

17.2k views Asked by At

Our site get roughly 1M pv/day, and we use Tomcat for sure.

I couldn't find much information about jdbc-pool, not sure if it's stable enough for production. Anyone got experience on it? and any configuration/tuning stuff for reference?

As someone mentioned, BoneCP might be another choice. But seems it's discontinued (so sad...). Would it be a better choice?

btw, HikariCP is too young, I would keep an eye on it as it's the latest/fastest CP so far I found.

Thanks for any advice.

5

There are 5 answers

3
brettw On BEST ANSWER

I'm one of the authors of HikariCP. That said, the "new" Tomcat pool is among the best we've tested. It has a lot of options, so if you plan to use it in production make sure you understand them to get a reliable configuration.

Do not confuse the new Tomcat pool with Apache DBCP, which I would avoid.

We are starting the process of abuse testing various pools, including HikariCP, with tests such as bouncing the DB underneath the pool and measuring the resulting recovery. Check out site for results in the coming weeks.

EDIT: Re: HikariCP being too young. Young though it may be it has had several billion transactions run through it. As with anything, I would suggest you try it in a pre-production environment before deployment. But the same goes for any pool you might choose.

UPDATE 2015-06-01: I want to revise my statement above somewhat, it seems that Apache Commons DBCP is active once again, and has taken over for the dedicated/forked Tomcat DBCP. The refactors in Commons DBCP appear at first glance to be significant, and positive. However, due to their magnitude and despite being under the old Commons DBCP banner, I would characterize the pool as less mature than HikariCP at this point.

3
pauljwilliams On

Tomcat DBCP is production ready - its simply an evolution of commons DBCP.

DB conn pools are pretty simple beasts - I wouldnt regard its use as being particularly risky.

1
RyNo On

That's what the company I'm working for is using and we haven't had any problem with it.

We've been more limited by our web server's connection to our various data servers than the speed of Tomcat's connection pool, so unless speed is very important, it's probably not something you should be concerned about. As far as reliability goes, it hasn't dropped a connection yet in any of our testing, nor have we heard about it happening on our production site.

I doubt you'll have a problem if you use Tomcat's connection pool.

1
wwadge On

BoneCP is not discontinued, but consider it @Deprecated now that HikariCP is around; there's little point contributing significant resources to it now that something radically better is on the horizon. This is open-source, so let's all work collectively towards the best solution. Source: me (BoneCP author)

0
geoand On

Where I work we have a couple of systems running on the Tomcat pool.

I must say that initially it was sort of a pain to get a good understanding of all the options it provides and how their values actually impact performance and reliability.

After performing an initial trial and error phase, I have to admit that the Tomcat connection pool fits our needs perfectly. It seems robust and also have not caused any performance problems whatsoever.

With that said, I will definitely give HikariCP a try in my next project