I used threads only to simulate delay in servlet preocessing. Other
than that it all happens in one thread inside the request.How do I
specify the timeout server close on disconnected requests, can I get
some notification in the code to break the loop in request? Would the
timeout affect connections while browser still waiting fro response
but no data is being sent?

Thanks,
Mike


On Fri, Feb 6, 2009 at 9:18 AM, Artashes Hovasapyan
<artashes.hovasap...@gmail.com> wrote:
> If client terminates the connection the server will close it after the
> timeout (should be specified in server configuration). Another thing is that
> IMHO it is not a good idea to manage threads manually inside of any
> component - you should leave it for container, it is container's job to
> control threading for you.
>
> --
> Regards,
> Artashes Hovasapyan
>
>
> On Fri, Feb 6, 2009 at 1:31 PM, Mikhail Gerdov <ger...@gmail.com> wrote:
>>
>> Hi,
>>
>> I have a servlet which processes a request for a long time. It suppose
>> to keep doing stuff in the loop inside doPost and send data through
>> response's out writer. Effectively that continuously appends data in
>> the clients browser .
>> But the problems accures when client just closes the browser. Inspite
>> of the broken connection the response's writer stream in the servlet
>> never gets closed, thus servlet is unaware of the brocen connection,
>> and keep dumping data into the writer without any errors. How is that
>> posssible? And how do I detect and cancel long request processing in
>> case of browser disconnect?
>>
>>
>> This is the servlet code which never stops:
>>    protected void processRequest(HttpServletRequest request,
>> HttpServletResponse response)
>>            throws ServletException, IOException
>>    {
>>        HttpSession session = request.getSession();
>>        System.out.println("Session " + session.getId() + " started");
>>
>>        response.setContentType("text/html;charset=UTF-8");
>>
>>        PrintWriter out = response.getWriter();
>>        try
>>        {
>>            while (!out.checkError())
>>            {
>>                try
>>                {
>>                    Thread.sleep(1000);
>>                } catch (InterruptedException ex)
>>                {
>>                    ex.printStackTrace();
>>                }
>>
>>                Date date = new Date();
>>
>>                // TODO append output to the client browser here
>>                out.println(".....");
>>
>>                System.out.println("Session " + session.getId() + "
>> data sent at: " + date);
>>
>>                out.flush();
>>            //break;  // _TEST
>>            }
>>        } finally
>>        {
>>            System.out.println("Session " + session.getId() + " finished");
>>            out.close();
>>        }
>>    }
>>
>>
>> Thanks,
>> Mike
>>
>>
>> --
>> Best regards,
>> Mikhail Gerdov                                     mailto:ger...@gmail.com
>>
>> >>
>
>
>
>



-- 
Best regards,
Mikhail Gerdov                                     mailto:ger...@gmail.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Java 
EE (J2EE) Programming with Passion!" group.
To post to this group, send email to 
java-ee-j2ee-programming-with-passion@googlegroups.com
To unsubscribe from this group, send email to 
java-ee-j2ee-programming-with-passion+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/java-ee-j2ee-programming-with-passion?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to