6 Replies Latest reply on Jun 29, 2009 9:43 AM by brian.stansberry

    Two asterisks in JSESSIONID before jvmRoute

      Good evening:

      In our clustered environment, we are using 2 JBoss 4.3 and Apache with mod_jk. The jvmRoute of the nodes are Node1 and Node2 respectively.

      When some time passes, the JSESSIONID starts failing sometimes, and after a while, is never set in the cookie. The "failure" is, instead of JSESSIONID examples like "(random-string)**.Node1" and "(random-string)**.Node1" , we get the same, but without the random-string and asterisks, only 4 JSESSIONIDs of the kind ".jvmRoute.jvmRoute" thing, what gives us the problem of only 4 sessions that don't work properly.

      Also, we have a "exactly identical" (obviously is not) environment in which the asterisks do not appear, more users are logged in, and this problem never happens...

      What could be the reason for this two behaviours?

      Thank you very much.

        • 1. Re: Two asterisks in JSESSIONID before jvmRoute
          brian.stansberry

          Do you mean you are using EAP 4.3? Or JBoss 4.2.3? If it's EAP 4.3 and you have a support contract, I recommend you open a support ticket on the Customer Service Portal, where there's an SLA.

          In your other environment where you aren't seeing the asterisks, the webapp must not have the

          <distributable/>
          element in web.xml.

          I suspect the problem you are seeing is an issue in the JvmRouteValve, which is responsible for changing the session cookie when it detects a failover has occurred. There have been a number of changes in this valve, so before I start chasing this please confirm exactly what version you are using. This gets logged in the server.log at the end of startup, e.g.

          11:36:23,621 INFO [Server] JBoss (MX MicroKernel) [4.3.0.GA_CP03 (build: SVNTag=JBPAPP_4_3_0_GA_CP03 date=200904141024)] Started in 1s:210ms


          Also, please confirm, when you wrote

          of the kind ".jvmRoute.jvmRoute"


          you meant, for example

          .node1.node2.node1.node2


          Ideally please paste an example of a healthy JSESSIONID (i.e. before problem happens) and a broken one.

          • 2. Re: Two asterisks in JSESSIONID before jvmRoute

            Thank you for your answer. I'll explain more in detail the environment. We have two virtual machines. Each of them we have two instances of JBoss running (with different configurations of course). And one of the instances of one machine forms part of a cluster with other instance in the other machine. So, in the end, we have two clusters, lets call them Spain and Colombia (the real ones).

            Here is an example of the JSESSIONID of the Colombian cluster, the ones without eh two asterisks (so, this is an indicative of clustered JSESSIONID? ). Also is an example of a JSESSIONIDSSO:

            JSESSIONIDSSO=16D95E07D7FD37CC0D09BF5B726F3B20
            JSESSIONID=2D52EA0E56A4330C145C44075E4316F9.Node2

            We use the same pattern for defining the jvmRoute for both clusters: both have one called Node1 and other called Node2.

            In the Spain cluster, when the JSESSIONID works correctly, it is like this:

            JSESSIONIDSSO=EEEED918158A844B050B822E8835940F
            JSESSIONID=qjL2rvE2+Ly5+oWp7q0bTA**.Node1;

            And when it fails, it's like this

            JSESSIONID=.Node2 -> the first time you access JBoss
            JSESSIONID=.Node2.Node1 -> the second and subsequent times. 2 and 1 value varies depending of the server accessed.

            We use Apache mod_proxy_ajp, sorry, I told you wrong. The problem is we use sticky sessions, and the balancer uses the jvmRoute string to distinguish between one instance and the other (we have two virtual host and two balancers, for redirecting to Spain and Colombia respectively ).

            I read the TwoClustersInTheSameNetwork document in JBoss online docs, and yesterday we have applied a workaround explained there in another environment (that is a exact replica of this one). This was about setting emptySessionPath=false in the connector in jboss-web.deployer/server.xml file. The problem has not occurred since then... but I'm not very confident myself with this fix.

            About the tag, yes I've confirmed that in this cluster is not set, AND this problem does not occur.

            About JBoss, We use JBoss 4.3 EAP.

            Thank you!

            • 3. Re: Two asterisks in JSESSIONID before jvmRoute
              brian.stansberry

               

              "jjfevs" wrote:

              I read the TwoClustersInTheSameNetwork document in JBoss online docs, and yesterday we have applied a workaround explained there in another environment (that is a exact replica of this one). This was about setting emptySessionPath=false in the connector in jboss-web.deployer/server.xml file. The problem has not occurred since then... but I'm not very confident myself with this fix.


              Did you mean the http://www.jboss.org/community/wiki/TwoClustersontheSameNetwork page? I looked there and saw no discussion of emptySessionPath. Please provide the full URL of the page you're referring to.


              About JBoss, We use JBoss 4.3 EAP.


              Please provide the full version number, e.g. as presented in the server.log statement I quoted in my last post.

              There have been a few changes in the JvmRouteValve class since EAP 4.3.0.GA came out. I want to understand exactly what release you are working with.

              • 4. Re: Two asterisks in JSESSIONID before jvmRoute

                About the version: here is the info:

                Version: 4.3.0.GA_EAP (build: SVNTag=JBPAPP_4_3_0_GA date=200801031548)

                Version Name: EAP

                Built on: January 3 2008



                About the webpage I mentioned: I was implying that I have read it and the cluster "seems" to be weel configured. The web where I read about the JSESSIONID is this.

                https://jira.jboss.org/jira/browse/JBAS-5810



                Thank you! If you need any more info, please ask for it.

                • 5. Re: Two asterisks in JSESSIONID before jvmRoute

                  About the version: here is the info:


                  Version: 4.3.0.GA_EAP (build: SVNTag=JBPAPP_4_3_0_GA date=200801031548)
                  
                  Version Name: EAP
                  
                  Built on: January 3 2008


                  About the webpage I mentioned: I was implying that I have read it and the cluster "seems" to be weel configured. The web where I read about the JSESSIONID is this.

                  https://jira.jboss.org/jira/browse/JBAS-5810



                  Thank you! If you need any more info, please ask for it.

                  • 6. Re: Two asterisks in JSESSIONID before jvmRoute
                    brian.stansberry

                    Thanks.

                    The companion issue for JBAS-5810 that tracks the issue for EAP is https://jira.jboss.org/jira/browse/JBPAPP-1021 . That JIRA shows a fix for EAP 4.3.0.GA_CP03. If you use CP03 or later, do you still see the problem?