When run local and on test server (local network) the session does not die, before the user either logs out or timeout is reached. The counter in the BoundObjectSerializable object increments fine.
But when run on production server the session dies, and the valueUnbound is called stating that the session has lasted approx 3300 seconds. But I am interested in why the session dies, as this is what I am trying to prevent with the refresh part. Regards, HC Hammerstoft > -----Original Message----- > From: A mailing list for discussion about Sun Microsystem's Java Servlet API > Technology. [mailto:[EMAIL PROTECTED]] On Behalf Of > Bhushan_Bhangale > Sent: 18. juli 2002 12:29 > To: [EMAIL PROTECTED] > Subject: Re: HttpSessionBindingListener behaves differently in test and production > > Are you sure that you are able to keep the session alive always? > As if the session is dying then certainly the unbounding will take place. > > -----Original Message----- > From: HC Hammerstoft, InterResearch A/S [mailto:[EMAIL PROTECTED]] > Sent: Thursday, July 18, 2002 3:30 PM > To: [EMAIL PROTECTED] > Subject: HttpSessionBindingListener behaves differently in test and > production > > > Hi, > > I also have problems with HttpSessionBindingListener. > We run a web application where the main window refreshes itself after 25 > minutes. The session timeout in web.xml is set to 30 minutes. The > refresh is to keep the session tracking alive, so the user is not logged > out as long as the main window is open. > In the session we have a single object (params) that implements > HttpSessionBindingListener in order to initialize and cleanup the > params. > The problem is that when run locally (JBuilder6 and Tomcat 3.2.3) and on > internal test server (Tomcat 3.2.3 standalone) sessions are kept alive > fine. But when deployed on our production server (Tomcat 3.2.3 > standalone) the session is unbound after approx. 3300 seconds...?? > I have made a simple test Servlet (see below), which behaves the same > way. > Any input will be much appreciated. > > package net.defgo.test; > > import javax.servlet.http.*; > import java.io.PrintWriter; > import java.util.Date; > import java.text.SimpleDateFormat; > > public class TestServlet extends HttpServlet { > private static final SimpleDateFormat timeFormatter = new > SimpleDateFormat("HH:mm:ss"); > > //Service the request > public void doGet(HttpServletRequest request, HttpServletResponse > response) { > try { > response.setContentType("text/html"); > PrintWriter out = response.getWriter(); > > HttpSession session = request.getSession(); > BoundObjectSerializable boSession = (BoundObjectSerializable) > session.getAttribute("boSessionDef"); > > if (boSession == null) { > boSession = new BoundObjectSerializable("js version"); > session.setAttribute("boSessionDef", boSession); > System.out.println(timeFormatter.format(new Date()) + ", > boSession = " + boSession + " created"); > } > > System.out.println(timeFormatter.format(new Date()) + ", id=" + > session.getId()); > > response.setDateHeader("Expires", 0); > response.setHeader("Pragma", "no-cache"); > if (request.getProtocol().equals("HTTP/1.1")) { > response.setHeader("Cache-Control", "no-cache"); > } > > out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 > Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">"); > out.println("<html>"); > out.println("<head>"); > out.println("<meta name=\"Language\" content=\"da,en-us\">"); > out.println("<meta http-equiv=\"Content-Type\" > content=\"text/html; charset=iso-8859-1\">"); > out.println("<script language=\"JavaScript\"><!--"); > out.println("var tID = '';\n"); > out.println("function executeTimer() {"); > out.println(" location.href = '" + > response.encodeURL(request.getRequestURI()) + "';"); > out.println("}"); > out.println("//--></script>\n"); > > out.println("</head>"); > out.println("<body onLoad=\"tID = > setTimeout('executeTimer()',1500000)>"); // 1500 secs = 25 min > out.println("<p>msg = " + boSession.getSomething() + "</p>"); > out.println("</body>"); > out.println("</html>"); > out.close(); > } catch (Exception e) { > e.printStackTrace(System.out); > } // catch > > } > > } > > > package net.defgo.test; > > import javax.servlet.http.HttpSessionBindingListener; > import javax.servlet.http.HttpSessionBindingEvent; > import java.text.SimpleDateFormat; > import java.util.Date; > import java.io.Serializable; > > public class BoundObjectSerializable implements > HttpSessionBindingListener, Serializable { > private static final SimpleDateFormat timeFormatter = new > SimpleDateFormat("HH:mm:ss"); > private String something = null; > private int counter; > private long started; > > public BoundObjectSerializable(String something) { > this.something = something; > started = System.currentTimeMillis(); > } > > public String getSomething() { > return something + " counter=" + counter++ + " session duration = " > + (System.currentTimeMillis() - started)/1000 + " secs"; > } > > public void valueBound (HttpSessionBindingEvent event) { > System.out.println (timeFormatter.format(new Date()) + ", > valueBound: I've been bound to \"" + event.getName () + "\" for session > id: " + (event.getSession()).getId ()); > } > > public void valueUnbound (HttpSessionBindingEvent event) { > System.out.println (timeFormatter.format(new Date()) + ", > valueUnbound: I've been unbound from \"" + event.getName () + "\" for > session id: " + (event.getSession ()).getId () + " session duration = " > + (System.currentTimeMillis() - started)/1000 + " secs" ); > } > > } > > Best regards > > HC Hammerstoft > > __________________________________________________________________ > _________ > 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 > > __________________________________________________________________ > _________ > 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 ___________________________________________________________________________ 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
