----------------------------------------------------------------
BEFORE YOU POST, search the faq at <http://java.apache.org/faq/>
WHEN YOU POST, include all relevant version numbers, log files,
and configuration files.  Don't make us guess your problem!!!
----------------------------------------------------------------


Well, my problem appears to be related to this. When I cranked up
maxConnections, the problem goes away.

# (this number does not identify the maximum number of concurrent servlet
# requests: see the JServ protocol specification for more info on this)

This is from the jserv.properties comments. What does this mean? I looked
in the ApJServ docs and couldn't find anything relating to this. If I
request 200 concurrent connections, don't I need
security.maxConnections=200?

Also, what's confusing me is that JServ *does* appear to be restarting. The
logs show nothing (except Apache error_log shows "premature end of script
headers", which I also find mysterious). All my servlets' init() methods
are being called again after this.

I think the solution to my problem is to crank up security.maxConnections;
I'd like to understand what's happening.

Thanks,
Ben Flaumenhaft

>JServ is serving up to maxConnections socket connections at the same
>time (default 50)
>JServ won't accept more that maxConnections, so Apahce will probably
>'return internal server errors', but I are you sure that JServ
>restarts itself ? please take a look at the logs.
>
>        while (true) {
>            //Here we make sure that the number of
>            //parallel connections is limited
>                semaphore.throttle();
>            try {
>                JServConnection connection = new JServConnection();
>                Thread t = new Thread(connection);
>
>
>Wednesday, January 19, 2000, 7:22:02 AM, you wrote:
>
>rle> ----------------------------------------------------------------
>rle> BEFORE YOU POST, search the faq at <http://java.apache.org/faq/>
>rle> WHEN YOU POST, include all relevant version numbers, log files,
>rle> and configuration files.  Don't make us guess your problem!!!
>rle> ----------------------------------------------------------------
>
>
>
>rle> Ben,
>rle>      Can you also include the script you are using for the stress
>testing ?
>rle> I can try and run it on my machine and see what turns up.
>
>rle> best regards
>
>rle> Raghu
>
>rle> From:"B. Flaumenhaft" <[EMAIL PROTECTED]> on 01/18/2000 07:37 PM GMT
>
>rle> Sent by: "B. Flaumenhaft" <[EMAIL PROTECTED]>
>
>rle> Please respond to "Java Apache Users"
>rle> <[EMAIL PROTECTED]>
>
>
>rle> To:  "Java Apache Users" <[EMAIL PROTECTED]>
>rle> cc:  (bcc: Raghu V Singh/rsingh1/LSU)
>
>rle> Subject:  Re: Apache/JServ under high-volume requests?
>
>
>
>rle> ----------------------------------------------------------------
>rle> BEFORE YOU POST, search the faq at <http://java.apache.org/faq/>
>rle> WHEN YOU POST, include all relevant version numbers, log files,
>rle> and configuration files.  Don't make us guess your problem!!!
>rle> ----------------------------------------------------------------
>
>
>rle> Thanks for all the suggestions, but I'm afraid I've managed to duplicate
>rle> the problem with an extremely basic servlet (no database access or
>rle> potential resource issues).
>
>rle> I took the SimpleServlet program, included as an example in the JSDK.
>This
>rle> servlet simply opens an output stream and prints a "hello world"; I
>added a
>rle> small delay to it (Thread.sleep() for ten seconds). Several hundred
>rle> connections kills Apache/JServ quite effectively.
>
>rle> I've attached this servlet code to the end of this message, in case
>anyone
>rle> would like to try it for themselves.
>
>rle> It certainly occurred to me that there might be bugs in my code (or in my
>rle> VM). Still, to reiterate what noone has responded to: *** I'm not seeing
>rle> deadlock, and I'm not seeing exceptions. I'm seeing JServ restart itself
>rle> and Apache return internal server errors while this is happening. ***
>
>rle> Under what conditions should JServ die and restart? I was under the
>rle> impression that it shouldn't be possible for my code to kill the VM.
>
>rle> I have a number of ideas as to what's happening here (most of them
>rle> involving APJserv issues), but they're pure speculation, and I don't know
>rle> the JServ internals very well. That's why I'm posting this here.
>
>rle> To reiterate: a very vanilla servlet is killing Apache/JServ under
>rle> high-load conditions, and this is perfectly duplicable under Linux and
>rle> Solaris (using several VMs, including the JavaSoft VM).
>
>rle> Thoughts?
>
>rle> Thanks,
>rle> Ben Flaumenhaft
>
>
>
>rle> here's the code that's causing problems when requested by one or two
>rle> hundred concurrent threads:
>
>rle> import java.io.*;
>rle> import javax.servlet.*;
>rle> import javax.servlet.http.*;
>
>rle> public class SimpleServlet extends HttpServlet
>rle> {
>rle>         public void doGet ( HttpServletRequest  request,
>rle> HttpServletResponse     response )
>rle>                 throws ServletException, IOException
>rle>         {
>rle>                 PrintWriter             out;
>rle>                 String                  title = "Simple Servlet Output";
>
>rle>                 // set content type and other response header fields
>first
>rle>                 response.setContentType("text/html");
>
>rle>                 // then write the data of the response
>rle>                 out = response.getWriter();
>
>rle>                 out.println("<HTML><HEAD><TITLE>");
>rle>                 out.println(title);
>rle>                 out.println("</TITLE></HEAD><BODY>");
>rle>                 out.println("<H1>" + title + "</H1>");
>rle>                 out.println( "<p> Delaying 10 seconds ..." );
>rle>                 out.flush();
>
>rle>                 try
>rle>                 {
>rle>                         Thread.sleep( 10 * 1000 );
>rle>                         out.println( "done" );
>rle>                 }
>rle>                 catch( InterruptedException e )
>rle>                 {
>rle>                         out.println( "interrupted" );
>rle>                 }
>
>rle>                 out.println("<P>This is output from SimpleServlet.");
>rle>                 out.println("</BODY></HTML>");
>rle>                 out.close();
>rle>         }
>rle> }
>
>
>rle> --
>rle> --------------------------------------------------------------
>rle> Please read the FAQ! <http://java.apache.org/faq/>
>rle> To subscribe:        [EMAIL PROTECTED]
>rle> To unsubscribe:      [EMAIL PROTECTED]
>rle> Archives and Other:  <http://java.apache.org/main/mail.html>
>rle> Problems?:           [EMAIL PROTECTED]
>
>
>
>
>
>
>
>
>
>
>rle> --
>rle> --------------------------------------------------------------
>rle> Please read the FAQ! <http://java.apache.org/faq/>
>rle> To subscribe:        [EMAIL PROTECTED]
>rle> To unsubscribe:      [EMAIL PROTECTED]
>rle> Archives and Other:  <http://java.apache.org/main/mail.html>
>rle> Problems?:           [EMAIL PROTECTED]
>
>
>
>
>--
>Best regards,
> Ivan                            mailto:[EMAIL PROTECTED]
>
>
>
>
>--
>--------------------------------------------------------------
>Please read the FAQ! <http://java.apache.org/faq/>
>To subscribe:        [EMAIL PROTECTED]
>To unsubscribe:      [EMAIL PROTECTED]
>Archives and Other:  <http://java.apache.org/main/mail.html>
>Problems?:           [EMAIL PROTECTED]



--
--------------------------------------------------------------
Please read the FAQ! <http://java.apache.org/faq/>
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Archives and Other:  <http://java.apache.org/main/mail.html>
Problems?:           [EMAIL PROTECTED]

Reply via email to