So how is the performance of Tomcat 4.1.3 comparing to 4.0?

Bill

"Shapira, Yoav" wrote:

> Howdy,
> I know you already solved the problem (was userid).
>
> As an aside, it's a bad idea to unpack 3rd party jars.  You probably
> want to rename classes12.zip to classes12.jar so tomcat will pick it up.
>
> Yoav Shapira
> Millennium ChemInformatics
>
> >-----Original Message-----
> >From: Victor Popiol [mailto:[EMAIL PROTECTED]]
> >Sent: Thursday, June 20, 2002 4:24 AM
> >To: Tomcat Users List
> >Subject: RE: Tomcat 4 performance issues - Trying Tomcat 4.1.3 Beta
> >
> >Hi. I installed Tomcat 4.1.3 and deployed my application. But I
> >consistently get en error trying to connect to our database. This error
> >only happens in Tomcat 4.1.3.
> >
> >The database is Oracle 8.1.7 and I expanded the classes from the
> >classes12.zip JDBC distributable (as I had done on Tomcat 4.03).
> >
> >The error happens when trying to open the connection. To isolate the
> issue,
> >I wrote a small jsp page that exercise the data source to get the
> >conection. Here it is:
> >
> ><%@ page contentType="text/html"
> >import="javax.naming.*,java.sql.*,javax.sql.*" %>
> ><html>
> ><body>
> ><%
> >       System.out.println("Starting<BR>");
> >       Context initCtx = new InitialContext();
> >       Context envCtx = (Context) initCtx.lookup("java:comp/env");
> >       DataSource ds = (DataSource)
> >         envCtx.lookup("jdbc/duwi");
> >       if (ds != null) {
> >               System.out.println("Data Source is not null<BR>");
> >               Connection conn = ds.getConnection();
> >               conn.close();
> >       }
> >%>
> >Ready!
> ></body>
> ></html>
> >
> >The execution of this jsp throwas the following exception:
> >
> >org.apache.jasper.JasperException
> >       at
> >org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.j
> ava:
> >232)
> >       at
> >org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289
> )
> >       at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
> >       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >       at
> >org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic
> atio
> >nFilterChain.java:247)
> >       at
> >org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil
> terC
> >hain.java:193)
> >       at
> >org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVal
> ve.j
> >ava:260)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:646)
> >       at
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 483)
> >       at
> >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> >       at
> >org.apache.catalina.core.StandardContextValve.invoke(StandardContextVal
> ve.j
> >ava:191)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:646)
> >       at
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 483)
> >       at
> >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> >       at
> >org.apache.catalina.core.StandardContext.invoke(StandardContext.java:23
> 49)
> >       at
> >org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.jav
> a:18
> >0)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:646)
> >       at
> >org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherV
> alve
> >.java:170)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:644)
> >       at
> >org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.jav
> a:17
> >1)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:644)
> >       at
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 483)
> >       at
> >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> >       at
> >org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve
> .jav
> >a:174)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:646)
> >       at
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 483)
> >       at
> >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> >       at
> >org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
> >       at
> >org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:4
> 05)
> >       at
> >org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process
> Conn
> >ection(Http11Protocol.java:376)
> >       at
> >org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:5
> 08)
> >       at
> >org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPoo
> l.ja
> >va:518)
> >       at java.lang.Thread.run(Thread.java:479)
> >
> >
> >root cause
> >
> >java.lang.NullPointerException
> >       at java.util.Hashtable.put(Hashtable.java:375)
> >       at
> org.apache.commons.dbcp.BasicDataSource.createDataSource(Unknown
> >Source)
> >       at org.apache.commons.dbcp.BasicDataSource.getConnection(Unknown
> >Source)
> >       at org.apache.jsp.test$jsp._jspService(Unknown Source)
> >       at
> >org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
> >       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >       at
> >org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.j
> ava:
> >188)
> >       at
> >org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289
> )
> >       at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
> >       at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> >       at
> >org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic
> atio
> >nFilterChain.java:247)
> >       at
> >org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil
> terC
> >hain.java:193)
> >       at
> >org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVal
> ve.j
> >ava:260)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:646)
> >       at
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 483)
> >       at
> >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> >       at
> >org.apache.catalina.core.StandardContextValve.invoke(StandardContextVal
> ve.j
> >ava:191)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:646)
> >       at
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 483)
> >       at
> >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> >       at
> >org.apache.catalina.core.StandardContext.invoke(StandardContext.java:23
> 49)
> >       at
> >org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.jav
> a:18
> >0)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:646)
> >       at
> >org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherV
> alve
> >.java:170)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:644)
> >       at
> >org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.jav
> a:17
> >1)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:644)
> >       at
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 483)
> >       at
> >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> >       at
> >org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve
> .jav
> >a:174)
> >       at
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.
> invo
> >keNext(StandardPipeline.java:646)
> >       at
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 483)
> >       at
> >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> >       at
> >org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
> >       at
> >org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:4
> 05)
> >       at
> >org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process
> Conn
> >ection(Http11Protocol.java:376)
> >       at
> >org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:5
> 08)
> >       at
> >org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPoo
> l.ja
> >va:518)
> >       at java.lang.Thread.run(Thread.java:479)
> >
> >Any ideas?
> >
> >Thanks
> >Victor
> >
> >
> >
> >-------------------------------
> >Thanks.
> >
> >We'll try it and let you know.
> >
> >Regards
> >Victor
> >
> >-----Original Message-----
> >From: Remy Maucherat [mailto:[EMAIL PROTECTED]]
> >Sent: Wednesday, June 19, 2002 1:04 PM
> >To: Tomcat Users List
> >Subject: Re: Tomcat 4 performance issues
> >
> >
> >Victor Popiol wrote:
> >> Hi all.
> >>
> >> We have deployed a new web application to our production server and
> have
> >noticed that the performance is terrible.
> >>
> >> We then configured 2 test environments running Tomcat 4 and JRun 4.
> After
> >testing we determined that JRun's performance (out of the box) is
> orders of
> >magnitude better than Tomcat's.
> >>
> >> We believe that our Tomcat configuration could be twicked to improve
> >performance.
> >>
> >> These are the details about our deployment:
> >> - Win 2K, 1 CPU 700 Mhz, 512 M Ram
> >> - IIS front end using isapi_redirector.dll
> >> - One Tomcat instance
> >> - Minimum memory (-Xms) is 128 MB. Maximum memory is 256 MB
> >> - Server logging includes the Access Log
> >> - Application uses Struts
> >>
> >> We have twicked the AJP connector to preallocate 100 threads, grow up
> to
> >200 and allow a queue of up to 50 requests. We have never reached these
> >limits.
> >>
> >> The main and evident symptom is that the requests to Tomcat seam to
> be
> >serialized and handled one by one. Also the CPU utilization is pegged
> at
> >100% while the requests are being served.
> >>
> >> Before making a decision to replace Tomcat, I would like to hear some
> >advice regarding configuration and tuning.
> >
> >Applications with pages having lots of tags can be very slow when using
> >Sun JVMs because of a Sun JVM bug.
> >Jasper 2 (included in Tomcat 4.1.3 Beta) fixes the code it generates,
> so
> >that we don't trigger the JVM bug anymore.
> >
> >IMO, you should try Tomcat 4.1.3 to see if it helps.
> >
> >Remy
> >
> >
> >--
> >To unsubscribe, e-mail:   <mailto:tomcat-user-
> >[EMAIL PROTECTED]>
> >For additional commands, e-mail: <mailto:tomcat-user-
> >[EMAIL PROTECTED]>
> >
> >
> >--
> >To unsubscribe, e-mail:   <mailto:tomcat-user-
> >[EMAIL PROTECTED]>
> >For additional commands, e-mail: <mailto:tomcat-user-
> >[EMAIL PROTECTED]>
>
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>


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

Reply via email to