Jared, you need to use a connection pool. There are plenty of examples of how to set one up and you don't have to modify your code that much. Just do a google search. If you are using a MySQL database then the JDBC driver, ConnectorJ? Has some examples. Tomcat has some examples too.
Good Luck T.K. -----Original Message----- From: A mailing list for discussion about Sun Microsystem's Java Servlet API Technology. [mailto:[EMAIL PROTECTED] On Behalf Of Jared Pace Sent: Friday, July 18, 2003 5:20 PM To: [EMAIL PROTECTED] Subject: JDBC Servlet Problems I wrote several servlets that access a MySQL database using a single, persistent, sychronized connection. About eight servlets use this connection (the code for the connection class is at the bottom of this email, with username/password information changed). Lately, my Tomcat server has been crashing after being up only a short time. My webhosting company has moved me to three different servers only to see the same thing happen at each one and has determined that it's my servlets that are crashing Tomcat. Other than using JDBC and the one single connection, my servlets perform rather trivial operations. So, my questions are: can I use a single connection for a site that receives around 3000 hits per day? Is it possible that my single connection is crashing Tomcat? Some of the information I retrieve from the database is very large since it's for a fan fiction site and some of the queries retrieve stories whose data type is medium-text. Is there anything I need to do to buffer the response when dealing with output of >= 32KB? Also, I slightly modified the single connection class using one written by my computer science professor, so I thought it was good practice...now, I'm wondering if it's responsible for my problems. Thanks in advance for your assistance. Jared import java.sql.*; public class MySQLConnection { private Connection conn; private MySQLConnection(){ try { Class.forName("org.gjt.mm.mysql.Driver").newInstance(); conn = DriverManager.getConnection("jdbc:mysql://localhost/myDB", "username", "password"); } catch (Exception e){ conn = null; } } public Connection getConnection(){ try{ if(conn.isClosed()){ Class.forName("org.gjt.mm.mysql.Driver").newInstance(); conn = DriverManager.getConnection("jdbc:mysql://localhost/myDB", "username", "password"); } } catch (Exception e){ conn = null; } return conn; } // Static members and methods below. private static MySQLConnection theConnection = new MySQLConnection(); public static synchronized MySQLConnection getInstance(){ return theConnection; } } ________________________________________________________________________ ___ To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff SERVLET-INTEREST". Archives: http://archives.java.sun.com/archives/servlet-interest.html Resources: http://java.sun.com/products/servlet/external-resources.html LISTSERV Help: http://www.lsoft.com/manuals/user/user.html ___________________________________________________________________________ To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff SERVLET-INTEREST". Archives: http://archives.java.sun.com/archives/servlet-interest.html Resources: http://java.sun.com/products/servlet/external-resources.html LISTSERV Help: http://www.lsoft.com/manuals/user/user.html