hi,

in your case, you should use a connection pool in your application instead
of using a global variable in your servlet or tying to establish a database
connection for each request...

1. servlet is multi-threaded, one database connection cannot be shared among
multiple threads.
2. sun's jdbc-odbc bridge is not thread-safe.
and more...:)


>From: zengjj <[EMAIL PROTECTED]>
>
>Hi there,
>Now I use the javawebserver2.0 to develope a three-tier Database
>Applications.
>The client want to query the database in the applet through our servlet.
>Because it usually take serveral minuters to build a connection, so I use a
>global Connection variable,
>this connection will be built in the init function.
>And all request will use this global Connection
>variable to query the database. Certainly I ensure the only a request can
>aceess the variable at the same time.
>I test the servlet using the servletrunner. There are no
>problem in all cases.
>But when I use the servlet in the javawebserver2.0(trial version) and
>connect the oracle
>database,  I found a problem:
>      first query has no problem, but later query will hang forever (do not
>return).
>
>
>The problem do not happen when connecting other database. If using the
>servletrunner to test this servlet, it can connect to all database
>including the oracle database too.
>
>My oracle version is 7.3.3 in the WindowsNT.
>
>Following is my code segment:
>
>
>public class MapdPHServlet extends HttpServlet
>{
>Connection connection ;
>
>public MapdPHServlet()
>{
>   super () ;
>try
>    {
>     String URL=new String("jdbc:odbc:testdb");
>     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
>     connection = DriverManager.getConnection(URL);
>    }
>    catch (Exception e) {System.out.println ("# Initialize Error : " +
>                          e.toString()) ;} ;
>}
>
>public void init (ServletConfig config) throws ServletException
>{
>    super.init (config) ;
>    System.out.println (" # Initalize MapdPH Servlet...") ;
>}
>
>public void destroy()
>{
>   super.destroy();
>   try
>   {
>     connection.close();
>   }
>   catch (Exception e) {System.out.println ("# Destroy MapdPH Servlet
>Eorror") ;} ;
>   System.out.println (" # Destory...") ;
>}
>
>/************* doPost() ***********************/
>
>protected void doPost (HttpServletRequest req,
>                        HttpServletResponse res)
>       throws ServletException,IOException
>   {
>// do a simple query and return the result to the client
>// I ensure there are only a request at the same time
>   try {
>
>     Statement      statement=connection.createStatement();
>     String SQLStatement = "Select * from person";
>     if( statement.execute(SQLStatement) )
>     {   //send the result to the client
>.....
>     }
>     else  // with Result Set
>     {
>     }
>
>     statement.close();
>     }
>   catch (Exception e)
>     {
>       System.out.println (e) ;
>     }
>
>
>   } // end of doPost()
>
>
>Do you think it is my problem or the javawebserver's problem? Can you give
>me some
>suggestion to deal with the problem? At present, I build the connection in
>the doPost and
>close the connection before exit the doPost in order to solve this problem.
>
>By the way, there are some parameters in the javawebserver:
>Service Tuning -----  General ------------  Capacity
>                             ---  Handler Threads
>                             ---  Connection Persistence
>I found the javawebserver often hang when there are two many users(about
>50)
>accessing the server simultaneously if I use the default value of these
>parameters.
>Even if I maximize all parameters, the javawebserver still hang
>occasionally.
>Do you think it is my problem or the javawebserver's problem?
>
>
>
>
>thanks in advance,
>
>
>jianjiang zeng
>
>________________________
>Are you ChinaRen?
>感受中国人的电子生活
>http://www.chinaren.com
>
>___________________________________________________________________________
>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

________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com

___________________________________________________________________________
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

Reply via email to