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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]







--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to