Yoav,

yes, you were correct. I looked over the servlet spec and it indeed says nothing about the format of session id's. I did initially have this question because clustering - or specifically session replication - weren't working properly for me. I think I resolved part of that problem, when i realized that the clocks of the two nodes in my cluster were 3 hours apart. I'm new to clustering, but I'm guessing session replication logic involves timestamp comparisons. But I'm not out of the woods yet...

I think I need to set my expectations of apache/mod_jk/tomcat realistically, so I'm hoping someone will be kind enough to clarify the following:
Setup: 2 clustered nodes running jboss4/tomcat5, one node running apache/mod_jk with sticky round-robin. a distributable web app is farmed out to the cluster. Consider the following scenario:
-User accesses webapp for the first time and is directed to node A
-session is established in A, and immediately replicated to B
-successive requests (let's say refresh) for that session keep going to A
-A goes down, next request goes to B
-A is brought back up, a bit later B goes down
-next incoming request goes back to A
-repeat the above steps
and so on...


I've done the above quite slowly, terminating jboss server instances, waiting for them to shut down, and then playing "user" role and hitting refresh. In that scenario, clustering worked perfectly! However, if user keeps hitting refresh about once a second, while the target node is being brought down, the user eventually sees a 404. A few clicks later, the user does get a valid response, served by node B (ie load balancing worked), but with a *new* session (i guess session replication didn't work).

Am I expecting too much from this setup? In practice, is there now way to ensure that a user will never see a 404 or lose a session as long as load balancer and at least one cluster node are alive? Is there a minimum time between user requests assumed? Or should one be able to blast a cluster using JMeter with low (say 300 millis) delay between successive requests, alternatively bring down nodes and still have the sessions preserved?

In my current jboss/tomcat config, session replication is set to "instant". Are there any setting in mod_jk.conf that can be used to make sure that a cluster node is alive and well *immediately* before sending a request to it?

thanks a lot
-nikita

Shapira, Yoav wrote:

Hi
What you think is one matter, and servlet specification compliance is
another ;)  Is there something in the Servlet Spec that's being
violated, or is the clustering behavior not working for you?  In other
words, are you seeing a bug or just unhappy that the session ID is not
human-readable?

When you set distributable, it's a big deal.  The clustering code kicks
in and among other things it can modify session IDs to prepare for
replication and state synchronization among cluster nodes.  So if you
change between distributable and not on the fly, you can expect this
session management behavior change.

Yoav Shapira
Millennium Research Informatics




-----Original Message-----
From: Nikita [mailto:[EMAIL PROTECTED]
Sent: Thursday, August 19, 2004 3:35 PM
To: Tomcat Users List
Subject: Re: adding <distributable/> garbles sesion id string

i don't think this behavior is correct. for example, i deploy an app
without <dist.> and get a session id. then, on the fly, i add this tag
to web.xml (i originally deployed an exploded war), and if the web page
is then refreshed, i get this new, garbled string. but, if i use
stand-alone tomcat, i *never* get a session stings with alternating


case


and '*'. seems to me like there's something wrong with character
encoding...

-nikita

Shapira, Yoav wrote:



Hi,
As long as the session ID is a valid string, it's not a bug. There's


no


requirement that the session ID be human-readable right? ;)

Yoav Shapira
Millennium Research Informatics






-----Original Message-----
From: Nikita [mailto:[EMAIL PROTECTED]
Sent: Thursday, August 19, 2004 3:25 PM
To: [EMAIL PROTECTED]
Subject: adding <distributable/> garbles sesion id string

Hello,

I have a very simple war app. it consists of only test.jsp, a page


that


prints out session id string. The problem is that if i add
"distributable" to web.xml, this string becomes garbled (both in the
browser and in console output):

without <distributable/>:
        "session id: 5129D795478E6529E233E1909EF85CB7.node1"

with <distributable/>:
        "session id: gDMzbOR3bJ8SNSmC3dDMWQ**.node1"

I deployed the same war as in stand-alone tomcat 5.0.27 under both xp
and linux and saw no problems. So seems like this is a jboss issue.
however, jboss 4.0rc1 uses tomcat 5.0.27-dev, and i'm wondering if
upgrading to 5.0.27 would help at all.

Could this be related to the fact that i'm using mod_jk 1.2.6? If so,
should i post this in clustering forum? I'd really appreciate any




insight




my setup:
jboss 4.0 rc1, clustered with mod_jk 1.2.6, tomcat 5.0.27-dev




integrated




os: jds 1 linux (based on suse enterprise desktop 1.0), also tried


win




xp




kernel: 2.4.21-189-default
java version "1.4.2_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05)
Java HotSpot(TM) Client VM (build 1.4.2_04-b05, mixed mode)


thanks,

-nikita

----------test.jsp----------------
<%@ page contentType="text/html; charset=iso-8859-1" language="java"
import="java.sql.*" errorPage="" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd";>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;




charset=iso-8859-1">




<title>Untitled Document</title>
</head>
<body>
session id: <%=session.getId()%>
<P>
last accessed: <%=new java.util.Date()%>
</body>
</html>
-------------------end test.jsp----------------------

-----------------web.xml-------------------------------

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd";>
<web-app>
<display-name>Test Application</display-name>
<description>
        Sample session jsp
</description>
</web-app>
-------------------end web.xml-------------------------------


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






This e-mail, including any attachments, is a confidential business


communication, and may contain information that is confidential,
proprietary and/or privileged. This e-mail is intended only for the
individual(s) to whom it is addressed, and may not be saved, copied,
printed, disclosed or used by anyone else. If you are not the(an)


intended


recipient, please immediately delete this e-mail from your computer


system


and notify the sender. Thank you.


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





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






This e-mail, including any attachments, is a confidential business communication, and 
may contain information that is confidential, proprietary and/or privileged.  This 
e-mail is intended only for the individual(s) to whom it is addressed, and may not be 
saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) 
intended recipient, please immediately delete this e-mail from your computer system 
and notify the sender.  Thank you.


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





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



Reply via email to