tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Geery <geery.and...@doc.state.sc.us>
Subject Re: [OT] JDBC confusion
Date Thu, 07 Aug 2003 11:19:47 GMT
The "preferred" way of doing this is to use connection pooling. The 
primary reasons are scalability, speed and simplicity. If you have 5,000 
people using your app at the same time, by your method you will have to 
have 5,000 connections to the database (one per user) stored in the 
various sessions. However, those 5,000 connections aren't being used at 
the same time: each one probably has only an infrequent burst of 
activity on it. This is where connection pooling comes in. The 
connection pool has n connections (say, 10 - 20) that are kept active. 
When an application needs a connection to the database, it checks one 
out from the pool (it doesn't need to create and open one because it is 
already created and open -- a win in terms of speed), uses it and closes 
it just any other database connection. However, when it closes the 
connection, the connection isn't really closed; it's just returned to 
the pool. So, the application developer is hidden from the complexity of 
actually creating the connections to the database, making sure they are 
in good working order, etc.

To get started with connection pooling in Tomcat, see 
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html

And check out the mailing list archives: the question of setting up 
connection pooling comes up very frequently.

HTH
Andrew

P.S. Depending on the size/complexity of your project, you might be 
better off using an O/R mapping tool like OJB 
(http://db.apache.org/ojb/) or Hibernate 
(http://hibernate.bluemars.net/) instead of using JDBC directly.

john-paul delaney wrote:

>Hello List... newbie question coming up:
>
>If I set up a jdbc connection object in one servlet, do I have to close it each time or
can the same connection be re-utilized by other servlets each using a different sql statement
(perhaps storing the connection as a session attribute?).
>
>Is there a significant resource saving by not creating a JDBC connection object for each
database access?
>
>I'm thinking of storing a connection for each user in the session, as opposed to pooling
- primarily because I'm not sure how a database pool works nor how to set it up.  Should I
do a re-think on this?
>
>I'm using one postgresql 7.3.3
>
>thanks
>/j-p.
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
>
>  
>



Mime
View raw message