Hi,
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 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();
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