This week's book giveaway is in the Jobs Discussion forum.
We're giving away four copies of Java Interview Guide and have Anthony DePalma on-line!
See this thread for details.
The moose likes Tomcat and the fly likes Must Restart Tomcat to Aquire A Connection From The Pool Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Products » Tomcat
Bookmark "Must Restart Tomcat to Aquire A Connection From The Pool" Watch "Must Restart Tomcat to Aquire A Connection From The Pool" New topic

Must Restart Tomcat to Aquire A Connection From The Pool

JiaPei Jen
Ranch Hand

Joined: Nov 19, 2000
Posts: 1309
I configured dbcp connection pool in Tomcat 4.1.18 server.xml file.
Here is an extract of it:

Everything works fine. But when our database server is restarted, I have to restart Tomcat
in order to aquire connection from the defined pool.
I wonder if there is a way to avoid restarting Tomcat when the database server is restarted.
I have added the parameters below to my pool config.

I recognize ,I've added that quite blindly.
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 17421

Hi Caroline,
The return address on the private email you sent me turned out to be my own address, so, since it's of fairly general interest, I'm pasting it below. Normally I'd put it in the Struts forum, but it's kind of connected to what you just asked, and I figured that you'd be more likely to see it here.
I'm out of practice on Struts Datasources, though I hope that before the week's out I'll be working on a project that uses them again. The original source code can be found under the "Get the code" hyperlink on the upper-right corner of the online version of the article at:
The demo site (which got eaten by the Slapper worm) was the identical code except that I'd put in footnotes at the bottom of each web page that displayed the source code for the Action Procedures, JSP's and the xonfig files.
The actual connection pool is defined at the top of the struts-config.xml file. The action processors call the FormBean load() and save() method to handle persistence (some people thing that persistence should be part of the Action processor itself, but I was thinking in EJB terms). The Form Bean load() and save() methods invoke the servlet.findDataSource() method to acquire a Connection from the connection pool.
A more recent project I did uses EJBs and the JBoss appserver. In this case, the EJBs and security system are also invoking JDBC. I think JBoss has its own connection pool management, so the struts-config.xml connection pool feature wasn't used, but I had to subclass the Struts ActionServlet in order to make the JBoss connection pool serve as a Struts connection pool. It wasn't hard, though I can't give any examples, since the machine with the source code for that project is currently offline. If you need it, let me know and I'll send a copy, though it might take about a week to get it.
Good luck!
Tim Holloway

An IDE is no substitute for an Intelligent Developer.
JiaPei Jen
Ranch Hand

Joined: Nov 19, 2000
Posts: 1309
Currently, I employ Tomcat for my Struts project. Tomcat also has its own connection pool management.
People have suggested to separate db access layer from struts for easier debugging, faster testing. Therefore, I did not configure the connection pool in the struts-config.xml file.
Does it mean that I have to subclass the Struts ActionServlet for Tomcat serving as the connection pool? If it is the case, I do want to see your example.
I have a utility/helper class that specialized in creating a connection pool:

And the Connection object (conn) returned from this helper/utility class is to be accessed in model objects. Is this the way your example works? My e-mail address is and I would like to learn the example provided by you.
I agree. Here's the link:
subject: Must Restart Tomcat to Aquire A Connection From The Pool
It's not a secret anymore!