Delay (40 seconds) on first jsp access
Delay (40 seconds) on first jsp access Hi, On Windows 98, Tomcat 3.2.1 3.3M2 (they both show the delay) Stand-alone... I have some Servlets, that I include into some pages like so: ... h2Favorite Public Virtual Slides/h2 jsp:include page="servlet/GroupFavorites" flush="true" / ... Q: Is there any better way to include the output from a servlet in an otherwise static page? The very first time I start Tomcat, and access this page, there is a very very long delay. Everything is running on localhost, so I don't think there is any kind of name lookup that is timing out... If I turn on LogEvents in 3.3M2, I get the following: ... 2001-03-22 10:33:47 - LogEvents: preServletInit DEFAULT:/mbfvs ServletH TOMCAT/J SP/intro.jsp(SW (/intro.jsp CN=intro_1)) 2001-03-22 10:33:47 - LogEvents: postServletInit DEFAULT:/mbfvs ServletH TOMCAT/ JSP/intro.jsp(SW (/intro.jsp CN=intro_1)) 2001-03-22 10:33:47 - LogEvents: preService R( /mbfvs + /intro.jsp + null) Long delay 2001-03-22 10:34:21 - LogEvents: postService R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: postService R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: beforeCommit R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: afterBody R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: postRequest R( /mbfvs + /intro.jsp + null) The delay is _much_ longer than it would take to compile the jsp page, and there is no hard drive activity during the time. Does anyone have any idea what would be stalling at this point??? Thanks!!! -James Carroll MicroBrightField Inc.
RE: Delay (40 seconds) on first jsp access
The Psuedo-Random Number Generator (PRNG) used to create session ids took several seconds to initalize on some platforms. This caused a very noticable delay for the first request that created a session. This has been changed in Tomcat 3.2.2. The PRNG initialization is now *much* faster and is also done when Tomcat starts instead of when the first session is created. Has this change happened in 3.3M2 'cause my delay happens there too. Best Regards, -James Carroll MicroBrightField Inc. -Original Message- From: Marc Saegesser [mailto:[EMAIL PROTECTED]] Sent: Thursday, March 22, 2001 10:50 AM To: [EMAIL PROTECTED] Subject: RE: Delay (40 seconds) on first jsp access Tomcat 3.2.2b1 is available now. Tomcat 3.2.2 beta 2 should be available sometime tomorrow. -Original Message- From: James Carroll [mailto:[EMAIL PROTECTED]] Sent: Thursday, March 22, 2001 9:38 AM To: [EMAIL PROTECTED] Subject: Delay (40 seconds) on first jsp access Delay (40 seconds) on first jsp access Hi, On Windows 98, Tomcat 3.2.1 3.3M2 (they both show the delay) Stand-alone... I have some Servlets, that I include into some pages like so: ... h2Favorite Public Virtual Slides/h2 jsp:include page="servlet/GroupFavorites" flush="true" / ... Q: Is there any better way to include the output from a servlet in an otherwise static page? The very first time I start Tomcat, and access this page, there is a very very long delay. Everything is running on localhost, so I don't think there is any kind of name lookup that is timing out... If I turn on LogEvents in 3.3M2, I get the following: ... 2001-03-22 10:33:47 - LogEvents: preServletInit DEFAULT:/mbfvs ServletH TOMCAT/J SP/intro.jsp(SW (/intro.jsp CN=intro_1)) 2001-03-22 10:33:47 - LogEvents: postServletInit DEFAULT:/mbfvs ServletH TOMCAT/ JSP/intro.jsp(SW (/intro.jsp CN=intro_1)) 2001-03-22 10:33:47 - LogEvents: preService R( /mbfvs + /intro.jsp + null) Long delay 2001-03-22 10:34:21 - LogEvents: postService R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: postService R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: beforeCommit R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: afterBody R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: postRequest R( /mbfvs + /intro.jsp + null) The delay is _much_ longer than it would take to compile the jsp page, and there is no hard drive activity during the time. Does anyone have any idea what would be stalling at this point??? Thanks!!! -James Carroll MicroBrightField Inc.
RE: Delay (40 seconds) on first jsp access
Hi Alan, What initialisation is your servlet doing?? The servlet itself is attaching to MySQL, and doing a quick query. If I access the servlet directly, (no jsp) there is _no_ delay whatsoever. The MySQL connection, query, formatting all take less than a tenth of a second even on the very first access after Tomcat has started. I'm not creating any sessions yet, so the randomizing of the session ID isn't the cause of the problem... This is the last problem I have before I start doing some deployment! Now that I've spent the time to get to know Tomcat, I'm loving it. During Initialization: - the Servlet checks the context for an existing Database Engine and then (when it doesn't find one) instantiating one and adding it to the servlet context: // make sure that the VSDBEngine is running ServletContext context = getServletContext(); if (null == (itsEngine = (VSDBEngine)context.getAttribute("vsdbEngine"))) { itsEngine = new VSDBEngine(context); context.setAttribute("vsdbEngine", itsEngine); } - It initializes a database Connection Pool, and a JDBC Table-oriented helper class. public VSDBEngine(ServletContext sc) { // necessary for logging itsServletContext = sc; log("-- ( r e ) l o a d "); // load a database driver that the driver manager try { // The newInstance() call is a work around for some // broken Java implementations Class.forName("org.gjt.mm.mysql.Driver").newInstance(); } catch (Exception e) { log("Unable to load driver."); e.printStackTrace(); } // should work with Tomcat... databaseURL is defined in the web.xml file. String dbURL = config.getServletContext().getInitParameter("databaseURL"); // initialize the Connection Pool String dbURL = (String)sc.getInitParameter("databaseURL"); itsConnectionPool = new VSDBPool(dbURL); itsConnectionPool.sc = sc; itsTableJDBC = new TableBasicJDBC(); itsTableJDBC.setContext(sc); itsTableJDBC.setPool(itsConnectionPool); } - It does a query // set content type and other response header fields first statement = c.createStatement(); sql = "SELECT slideID FROM slide"; sql += " WHERE"; sql += " favorite='yes' "; statement.execute(sql); result = statement.getResultSet(); while (result.next()) { ids.addElement(new Long(result.getLong("slideID"))); } - then prints results. -James Carroll MicroBrightField Inc. -Original Message- From: Alan Stenhouse [mailto:[EMAIL PROTECTED]] Sent: Thursday, March 22, 2001 10:43 AM To: [EMAIL PROTECTED] Subject: AW: Delay (40 seconds) on first jsp access Delay (40 seconds) on first jsp access Hi, On Windows 98, Tomcat 3.2.1 3.3M2 (they both show the delay) Stand-alone... I have some Servlets, that I include into some pages like so: ... h2Favorite Public Virtual Slides/h2 jsp:include page="servlet/GroupFavorites" flush="true" / ... Q: Is there any better way to include the output from a servlet in an otherwise static page? The very first time I start Tomcat, and access this page, there is a very very long delay. Everything is running on localhost, so I don't think there is any kind of name lookup that is timing out... If I turn on LogEvents in 3.3M2, I get the following: ... 2001-03-22 10:33:47 - LogEvents: preServletInit DEFAULT:/mbfvs ServletH TOMCAT/J SP/intro.jsp(SW (/intro.jsp CN=intro_1)) 2001-03-22 10:33:47 - LogEvents: postServletInit DEFAULT:/mbfvs ServletH TOMCAT/ JSP/intro.jsp(SW (/intro.jsp CN=intro_1)) 2001-03-22 10:33:47 - LogEvents: preService R( /mbfvs + /intro.jsp + null) Long delay 2001-03-22 10:34:21 - LogEvents: postService R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: postService R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: beforeCommit R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: afterBody R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: postRequest R( /mbfvs + /intro.jsp + null) The delay is _much_ longer than it would take to compile the jsp page, and there is no hard drive activity during the time. Does anyone have any idea what would be stalling at this point??? Thanks!!! -James Carroll MicroBrightField Inc.
RE: Delay (40 seconds) on first jsp access
Thank you Mark!!! I thought you were talking about the kind of sessions that you instantiate when you want to use cookies or URL rewriting to give a user a persistant experience I got rid of the delay by adding: %@ page session="false"% before the body of my .jsp pages! -James Carroll MicroBrightField Inc. -Original Message- From: Marc Saegesser [mailto:[EMAIL PROTECTED]] Sent: Thursday, March 22, 2001 10:50 AM To: [EMAIL PROTECTED] Subject: RE: Delay (40 seconds) on first jsp access The Psuedo-Random Number Generator (PRNG) used to create session ids took several seconds to initalize on some platforms. This caused a very noticable delay for the first request that created a session. This has been changed in Tomcat 3.2.2. The PRNG initialization is now *much* faster and is also done when Tomcat starts instead of when the first session is created. Tomcat 3.2.2b1 is available now. Tomcat 3.2.2 beta 2 should be available sometime tomorrow. -Original Message- From: James Carroll [mailto:[EMAIL PROTECTED]] Sent: Thursday, March 22, 2001 9:38 AM To: [EMAIL PROTECTED] Subject: Delay (40 seconds) on first jsp access Delay (40 seconds) on first jsp access Hi, On Windows 98, Tomcat 3.2.1 3.3M2 (they both show the delay) Stand-alone... I have some Servlets, that I include into some pages like so: ... h2Favorite Public Virtual Slides/h2 jsp:include page="servlet/GroupFavorites" flush="true" / ... Q: Is there any better way to include the output from a servlet in an otherwise static page? The very first time I start Tomcat, and access this page, there is a very very long delay. Everything is running on localhost, so I don't think there is any kind of name lookup that is timing out... If I turn on LogEvents in 3.3M2, I get the following: ... 2001-03-22 10:33:47 - LogEvents: preServletInit DEFAULT:/mbfvs ServletH TOMCAT/J SP/intro.jsp(SW (/intro.jsp CN=intro_1)) 2001-03-22 10:33:47 - LogEvents: postServletInit DEFAULT:/mbfvs ServletH TOMCAT/ JSP/intro.jsp(SW (/intro.jsp CN=intro_1)) 2001-03-22 10:33:47 - LogEvents: preService R( /mbfvs + /intro.jsp + null) Long delay 2001-03-22 10:34:21 - LogEvents: postService R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: postService R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: beforeCommit R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: afterBody R( /mbfvs + /intro.jsp + null) 2001-03-22 10:34:21 - LogEvents: postRequest R( /mbfvs + /intro.jsp + null) The delay is _much_ longer than it would take to compile the jsp page, and there is no hard drive activity during the time. Does anyone have any idea what would be stalling at this point??? Thanks!!! -James Carroll MicroBrightField Inc.
[Tomcat-user] Servlet Context Parameter... illegal characters...
Hi, in my web.xml in the part that specifies: context-param param-namedatabaseURL/param-name /context-param this works: param-valuejdbc:mysql://localhost/db/param-value but this doesn't: param-valuejdbc:mysql://localhost/db?user=namepassword=pw/param-valu e Either the ? or the is messing up the parser... Is this a bug? or is there a way of escaping the special characters? Thanks! -Jim Carroll -Original Message- From: Martin Ko [mailto:[EMAIL PROTECTED]] Sent: Friday, March 16, 2001 9:08 PM To: [EMAIL PROTECTED] Subject: RE: escape() Problem... Thanks, Wouter M$ IE javascripting engine is working differently from NS js engine. That is, in NS, escape function returns uri encoded string by *%CF%DF* format, but in IE, escape function returns by *%uABCD* unicode format, and this lead to decode error in apache web server. Yes, to use java.net.URLDecorder.encode() is an only way to solve this problem. Thanks again. Martin At 03:54 2001-03-16 +0100, you wrote: Hi, Don't rely in JavaScript. Use java.net.URLDecoder.encode(), and java.net.URLEncoder.decode() before you push the parameters to the browser. Wouter -Original Message- From: Martin Ko [mailto:[EMAIL PROTECTED]] Sent: 16 March 2001 14:52 To: [EMAIL PROTECTED] Subject: escape() Problem... Hi, all. I wrote a jsp page which send request by QUERYSTRING with a parameter containing international characters, and which get the parameter. I'm working with apache as a web server and tomcat as a jsp engine. And, with Netscape browser, I encode the string by escape function (javascript) before sending it, and it works fine. However, in IE, it doesn't. When I use only tomcat as a web server without apache, I saw a strange thing. In this case, if I use escape function in NS, and if I don't use escape function in IE, then it goes well !! But with apache as a web server, this action does not solve the problem... So, I think I should set some configurations on apache web server, but I have no idea... Can anyone help me? My jsp page is: %@ page language="java" % javascript:test()Test -- %=request.getParameter("t1")% Regards Martin
RE: web.xml
I -think- that you don't have to create all of the servlet servlet-name Test1 /servlet-name servlet-class Test1 /servlet-class /servlet There is an Invoker servlet that you associate with the path for the servlets... and the invoker looks for the class file, and runs it. in the tomcat/conf/web.xml: servlet servlet-name invoker /servlet-name servlet-class org.apache.tomcat.servlets.InvokerServlet /servlet-class /servlet and you associate this with a path in your app web.xml: servlet-mapping servlet-name invoker /servlet-name url-pattern /vsj/* /url-pattern /servlet-mapping Can anyone confirm this? I can't find any docs for the ServletInvoker... and can not get things running. The lack of detailed documentation is extremely frustrating. Even the the recent article in Linux Journal glosses over all the important details. -Jim -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Friday, March 16, 2001 3:55 PM To: [EMAIL PROTECTED] Subject: web.xml I want to know, whenever you want any servlets to run do you have to put an entry in the web.xml file? Can you run a servlet without putting an entry in there. Lets say I write a servlet called "Test1.java" that uses the 'RequestDispatcher's methods "forward()" or "include()". And lets say that I want to either "foward()" or "include()" a servlet call "Test2.java" , does that mean that I have to put an entry in the web.xml like this: servlet servlet-name Test1 /servlet-name servlet-class Test1 /servlet-class /servlet servlet serlvet-name Test2 /servlet-name servlet-class Test2 /servlet-class /servlet If this is true, meaning, if I have to put an entry in the web.xml file for every script I write would it get pretty messy and hard to organize with all these entrees in the web.xml file.There must a another way.
RE: Using JAR files
The only two things I have found that work are putting the jar directly in a classpath, and putting the jar in jre1.2\lib\ext. I've started really liking the lib\ext, because I don't have to create huge CLASSPATHs. -Jim --- I have a servlet that requires classes from xalan.jar. I've tried placing this JAR file in TOMCAT_HOME/lib, WEB-INF/lib, in the CLASSPATH and nothing seems to work. When the servlet runs it invariably fails with a NoClassDefFound exception when it tries to access org.apache.xpath.XPathAPI. Any advice on how to get tomcat to see JAR files required by a servlet? Thanks, Michael
RE: Cache problem with IE
I've had success with the following: META HTTP-EQUIV="Expires" CONTENT="Tues, 01 Jan 1980 00:00:00 GMT" Which looks like this in a servlet: response.setHeader("Expires", "Tues, 01 Jan 1980 00:00:00 GMT"); Best Regards, -James Carroll MicroBrightField Inc. -Original Message- From: Zsolt Koppany [mailto:[EMAIL PROTECTED]] Sent: Tuesday, March 13, 2001 12:49 PM To: [EMAIL PROTECTED] Subject: Re: Cache problem with IE I have tried 'no-store' and 'must-revalidate' but none of them helped. Christopher Kirk wrote: To verify Duncans point: Cache-Control on the request is for proxies. Cache-Control on the response is for proxies+browser. (as stated by 'Core Servlets and JSPs by Marty Hall, published by Sun). You could try Cache-Control 'no-store', or 'must-revalidate'.. to see if IE handles them differently. Also, just to check, you are setting the response to HTTP/1.1? Pragma was never consistent between browsers, and Cache-Control will only be used if the response specifies HTTP/1.1. - Chris. -Original Message- From: Duncan Irvine [mailto:[EMAIL PROTECTED]] Sent: 13 March 2001 16:25 To: '[EMAIL PROTECTED]' Subject: RE: Cache problem with IE I'm sure someone will jump on this from a great height if I'm wrong, but I seem to recall that the cache settings are for intermediate caches - not the browser. The browser can cache pages as it sees fit - provided that it checks to see if they've been updated, but the cache control settings are there to stop intermediate caches from falsely reporting a page as not having changed. Duncan. -Original Message- From: Zsolt Koppany [mailto:[EMAIL PROTECTED]] Sent: 13 March 2001 16:13 To: [EMAIL PROTECTED] Subject: Cache problem with IE Hi, with the code below I can get netscape not to cache a jsp page but it does not work with Internet-Explorer. Does anybody know why? response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache");\ Zsolt -- Zsolt Koppany Intland GmbH www.intland.com Schulze-Delitzsch-Strasse 16 D-70565 Stuttgart Tel: +49-711-7871080 Fax: +49-711-7871017 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED] ** ** This message contains information which may be privileged and confidential and subject to legal privilege. If you are not the intended recipient, you may not peruse, use, disseminate, distribute or copy this message. If you have received this message in error, please notify the sender immediately by e-mail, facsimile, or telephone and return or destroy the original message. Sopheon and its officers are not responsible for any statements or material in this e-mail and in any attachment to it which might give rise to any criminal or civil claim. ** ** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED] -- Zsolt Koppany Intland GmbH www.intland.com Schulze-Delitzsch-Strasse 16 D-70565 Stuttgart Tel: +49-711-7871080 Fax: +49-711-7871017 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
Advise needed...
Hello, I have a web site that serves up images as fast as it can (saturating whatever bandwidth it can find). (see http://neuroinformatica.com/ for an example) I currently am using Apache JSERV, with Servlets that not only do the CGI-like work, but produce all the images. It crashes after serving up over 300 images in five minutes on my LAN. I've tried all the command line switches to increase available memory... I have to come up with something a little more lean-and-mean. My alternatives are: - keep trying to debug and optimize JSERV - Try out Tomcat - Write a mod_image plug-in that serves up the images. This is a commercial package, where we are going to sell the hardware, our software and install the web server. It has to be totally bulletproof low-maintenance. The only reason I haven't tried Tomcat is because I am making heavy use of SERVLET ... style JSSI. I think I can replace these with jsp:include ... statements. Anyone been there done that Thanks!! -James Carroll MicroBrightField Inc. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
RE: set CLASSPATH DOS 8.3 names maybe used in TOMCAT_HOME
Don't forget: Windows ME doesn't look at your AUTOEXEC.BAT!!! On my system, I have to choose Start, Run, msconfig msconfig adjusts the registry to do do the same things that you would usually do in Autoexec.bat. ( It still requires frequent reboots :( ) I actually don't believe in setting CLASSPATH during start-up. This is what the startup.bat is (correctly) doing for you. Any classes that I want available on the machine go in C:\jdk1.3\jre\lib\ext And I set the classpath on the command line via -cp whenever possible. Best Regards, -James Carroll MicroBrightField Inc. -Original Message- From: Darrell Porter [mailto:[EMAIL PROTECTED]] Sent: Monday, March 12, 2001 3:16 PM To: '[EMAIL PROTECTED]' Subject: RE: set CLASSPATH DOS 8.3 names maybe used in TOMCAT_HOME You must set a CLASSPATH variable. As you have used extended directory names (i.e. C:\Program Files\Apache Web Server\Jakarta-Tomcat), you'll need to explicitly set a CLASSPATH environment variable. something like set CLASSPATH=%TOMCAT_HOME%\webapps\ROOT\WEB-INF\classes set CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%\webapps\ROOT\WEB-INF\lib\struts.jar set CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%\lib\servlet.jar set CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%\webapps\ROOT\WEB-INF\lib\jdom.jar set CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%\webapps\ROOT\WEB-INF\lib\xerces.jar set CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%\webapps\ROOT\WEB-INF\lib\jturbo.jar set CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%\webapps\ROOT\WEB-INF\lib\j2ee.jar set CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%\lib\jaxp.jar set CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%\lib\parser.jar I hope this helps _ Darrell Porter Operations Manager 415.355.9990 x290 [EMAIL PROTECTED] WiseConnect, Inc. http://www.wiseconnect.com/ http://www.wiseconnect.com/ "Powering the people behind stores" Visit our GlobalShop booth #4473 in i3 Go wireless with the WiseConnect Workspace Palm! Enter to win a Palm VII by selecting: Enter to Win! http://www.wiseconnect.com/palmVII.html http://www.wiseconnect.com/palmVII.html -Original Message- From: Richard Tham [mailto:[EMAIL PROTECTED]] Sent: Monday, March 12, 2001 11:01 AM To: [EMAIL PROTECTED] Subject: set CLASSPATH DOS 8.3 names maybe used in TOMCAT_HOME Hi, I'm running Win ME. Here is a copy of my autoexec.bat file: SET COMSPEC=C:\WINDOWS\COMMAND.COM SET windir=C:\WINDOWS SET winbootdir=C:\WINDOWS SET PROMPT=$p$g SET TEMP=C:\WINDOWS\TEMP SET TMP=C:\WINDOWS\TEMP SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\JDK1.3\BIN SET JAVA_HOME=C:\JDK1.3 SET ANT_HOME=C:\Progra~1\Apache~1\jakart~1\ SET TOMCAT_HOME=C:\Progra~1\Apache~1\jakart~1\ However, when running startup.bat file, I got the following error msg: Unable to set CLASSPATH dynamically Note: To set CLASSPATH dynamically in Win9X systems only DOS 8.3 names maybe used in TOMCAT_HOME!! I've posted a copy of the screenshot here: http://pwp.maxis.net.my/richardtham/screen.jpg http://pwp.maxis.net.my/richardtham/screen.jpg Pls help !! What does it mean by DOS 8.3 names use in TOMCAT_HOME ?? Is this the right way to set path in Win ME ?? Any help is greatly appreciated !! Best Regards, Richard - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]