In-memory replication and no. of sessions - clarification

          a small question/clarification
          Lets say we have 2 servers in cluster with in-memory repication. Let say maximum RAM for jvm heap can use is 1.5GB.
          I understand that HTTP Session Data is stored in heap (am i wrong?).
          Now lets say if we set weblogic.httpd.session.cacheEntries=1024 (default).
          The documentation says...
          weblogic.httpd.session.cacheEntries=x
          Where x limits the number of cached sessions at any time. If you are expecting high volumes of simultaneous active sessions, you do not want these sessions to soak up the RAM of your server since this may cause performance problems swapping to and from virtual memory. When the cache is full, the least recently used sessions are stored in the persistent store and recalled automatically when required. If you do not use persistence, this property is ignored, and there is no soft limit to the number of sessions allowed in main memory. By default, the number of cached sessions is 1024. The minimum is 16, and maximum is Integer.MAX_VALUE. An empty session uses less than 100 bytes, but will grow as data is added to it.
          If lets say 1025 user comes in what happens in followin scenario
          1. no heap memory available:
          Does is throw out of memory exception or what does it do to accomodate new user?
          Does swapping occur for HTTP data on the heap? (or am i talking nonsense?)
          2. heap memory available:
          What does the following mean for in-memory replication?
          When the cache is full, the least recently used sessions are stored in the persistent store and recalled automatically when required.
          thanks in advance
          

shivu wrote:
          > a small question/clarification
          >
          > Lets say we have 2 servers in cluster with in-memory repication. Let say maximum RAM for jvm heap can use is 1.5GB.
          Dont' allocate 1GB for heap. Try not to allocate more than 512 MB.
          > I understand that HTTP Session Data is stored in heap (am i wrong?).
          >
          > Now lets say if we set weblogic.httpd.session.cacheEntries=1024 (default).
          >
          > The documentation says...
          > -----------
          > weblogic.httpd.session.cacheEntries=x
          > Where x limits the number of cached sessions at any time. If you are expecting high volumes of simultaneous active sessions, you do not want these sessions to soak up the RAM of your server since this may cause performance problems swapping to and from virtual memory. When the cache is full, the least recently used sessions are stored in the persistent store and recalled automatically when required. If you do not use persistence, this property is ignored, and there is no soft limit to the number of sessions allowed in main memory. By default, the number of cached sessions is 1024. The minimum is 16, and maximum is Integer.MAX_VALUE. An empty session uses less than 100 bytes, but will grow as data is added to it.
          > ------------
          >
          > If lets say 1025 user comes in what happens in followin scenario
          >
          > 1. no heap memory available:Does is throw out of memory exception or what does it do to accomodate new user?
          > Does swapping occur for HTTP data on the heap? (or am i talking nonsense?)
          If you are out of memory you are out of luck.
          >
          > 2. heap memory available:
          >
          > What does the following mean for in-memory replication?
          > -----
          > When the cache is full, the least recently used sessions are stored in the persistent store and recalled automatically when required.
          > ----
          Hmm. I don't think there is any hard limit with in memory replication. But I would check and let you know.
          >
          > thanks in advance
          Cheers
          - Prasad
          

Similar Messages

  • Out of memory session store + in memory replication

    I think I know the answer, but I am going to ask anyway.
              Appearantly, if I use file based session persistance, weblogic will manage
              the in-memory session cache and store least recently used sessions to disk
              in order to preserve memory.
              Of course, file based persistance is slower than in-memory replication, and
              it doesn't work so well if we don't have a shared filesystem for our cluster
              (we don't), but the ability to manage memory in this way is very compelling.
              Is it possible to have a hybrid, where session state is replicated between
              nodes using in-memory-replication techniques, but each node only keeps a
              limited number of sessions in memory and swaps the rest out to disk?
              I think the answer is no, but it seems like a good feature.
              

              "Erik Speckman" <[email protected]> wrote in message
              news:[email protected]..
              > I think I know the answer, but I am going to ask anyway.
              >
              > Appearantly, if I use file based session persistance, weblogic will manage
              > the in-memory session cache and store least recently used sessions to disk
              > in order to preserve memory.
              >
              > Of course, file based persistance is slower than in-memory replication,
              and
              > it doesn't work so well if we don't have a shared filesystem for our
              cluster
              > (we don't), but the ability to manage memory in this way is very
              compelling.
              >
              > Is it possible to have a hybrid, where session state is replicated between
              > nodes using in-memory-replication techniques, but each node only keeps a
              > limited number of sessions in memory and swaps the rest out to disk?
              >
              > I think the answer is no, but it seems like a good feature.
              >
              >
              I don't think you can explicitly tune it, but of course any stuff in memory
              that doesn't get used for a while is going to end up on disk anyway if your
              physical memory is all allocated. Your swap system will probably do as good
              a job of this as being able to specify how many sessions are kept in memory
              would do.
              Loz
              

  • Questions on replication and h/w load balancer

              Why does h/w load balancer have to support passive cookies and inspect them to
              dispatch the request to the primary server first? If we have in-memory replication
              and if h/w loadbalancer just dispatches the http request from the client to any
              of the weblogic servers in the cluster wouldnt this work?
              Is it to pin the session to the creator server to minimize the chance of replication
              misses due to n/w issues, member server slow speed, buffer overwrite etc.
              -Shiraz
              

    Yes, and previous to 6.1 (?) if the request showed up at the wrong server it
              would fail.
              Peace,
              Cameron Purdy
              Tangosol Inc.
              Tangosol Coherence: Clustered Coherent Cache for J2EE
              Information at http://www.tangosol.com/
              "Shiraz Zaidi" <[email protected]> wrote in message
              news:3c15aa10$[email protected]..
              >
              > Why does h/w load balancer have to support passive cookies and inspect
              them to
              > dispatch the request to the primary server first? If we have in-memory
              replication
              > and if h/w loadbalancer just dispatches the http request from the client
              to any
              > of the weblogic servers in the cluster wouldnt this work?
              >
              > Is it to pin the session to the creator server to minimize the chance of
              replication
              > misses due to n/w issues, member server slow speed, buffer overwrite etc.
              >
              > -Shiraz
              

  • 3rd party distributed SW load balancing with In-Memory Replication

              Hi,
              Could someone please comment on the feasibility of the following setup?
              I've started testing replication with a software load balancing product. This
              product lets all nodes receive all packets and uses a kernel-level filter
              to let only one node at the time receive it. Since there's minimum 1 heartbeat
              between the nodes, there are several NICs in each node.
              At the moment it seems like it doesn't work: - I use the SessionServlet - with
              a 2-node cluster I first have the 2 nodes up and I access it with a single client:
              .the LB is configured to be sticky wrt. source IP address, so the same node gets
              all the traffic - when I stop the node receiving the traffic the other node takes
              over (I changed the colours of SessionServlet) . however, the counter restarts
              at zero
              From what I read of the in-memory replication documentation I thought that it
              might work also with a distributed software load balancing cluster. Any comments
              on the feasability of this?
              Is there a way to debug replication (in WLS6SP1)? I don't see any replication
              messages in the logs, so I'm not even sure that it works at all. - I do get a
              message about "Clustering Services startting" when I start the examples server
              on each node - is there anything tto look for in the console to make sure that
              things are working? - the evaluation license for WLS6SP1 on NT seems to support
              In-Memory Replication and Cluster. However, I've also seen a Cluster-II somewhere:
              is that needed?
              Thanks for your attention!
              Regards, Frank Olsen
              

    We are considering Resonate as one of the software load balancer. We haven't certified
              them yet. I have no idea how long its going to take.
              As a base rule if the SWLB can do the load balancing and maintain stickyness that is fine
              with us as long as it doesn't modify the cookie or the URL if URL rewriting is enabled.
              Having said that if you run into problems we won't be able to support you since it is not
              certified.
              -- Prasad
              Frank Olsen wrote:
              > Prasad Peddada <[email protected]> wrote:
              > >Frank Olsen wrote:
              > >
              > >> Hi,
              > >>
              > > We don't support any 3rd party software load balancers.
              >
              > Does that mean that there are technical reasones why it won't work, or just that
              > you haven't tested it?
              >
              > > As >I said before I am thinking your configuration is >incorrect if n-memory
              > replication is not working. I would >strongly suggest you look at webapp deployment
              > descriptor and >then the config.xml file.
              >
              > OK.
              >
              > >Also doing sticky based on source ip address is not good. You >should do it based
              > on passive cookie persistence or active >cookie persistence (with cookie insert,
              > a new one).
              > >
              >
              > I agree that various source-based sticky options (IP, port; network) are not the
              > best solution. In our current implementation we can't do this because the SW load
              > balancer is based on filtering IP packets on the driver level.
              >
              > Currently I'm more interested in understanding whether it can our SW load balancer
              > can work with your replication at all?
              >
              > What makes me think that it could work is that in WLS6.0 a session failed over
              > to any cluster node can recover the replicated session.
              >
              > Can there be a problem with the cookies?
              > - are the P/S for replication put in the cookie by the node itself or by the proxy/HW
              > load balancer?
              >
              > >
              > >The options are -Dweblogic.debug.DebugReplication=true and
              > >-Dweblogic.debug.DebugReplicationDetails=true
              > >
              >
              > Great, thanks!
              >
              > Regards,
              > Frank Olsen
              

  • Evaluation license for ejb-in-memory-replication!!!

              Hi,
              Has anyone tried using in-memory replication for a stateful-session bean in the evaluation
              copy of WebLogic 6.0 ? I have a simple stateful session bean with <replication-type>InMemory</replication-type>
              set in weblogic-ejb-jar.xml. But when I try to generate a deployable jar file, I
              get the following message,
              % java weblogic.ejbc -compiler jikes std_simple_stateful.jar simple_stateful.jar
              Couldn't find a license for in-memory replication of EJB's, this feature is disabled
              <Jan 31, 2001 1:40:21 PM EST> <Info> <EJB> <Couldn't find a license for in-memory
              replication of EJB's, this feature is disabled>
              The license file seems to have the product enabled.
              any suggestions ???
              thanx in advance
              -Ram
              [email protected]
              

    Make sure the license is in ejbc's classpath.
              We fixed this for SP1 to make it so ejbc will always compile regardless
              of your license. The actual license check occurs when you deploy the
              bean.
              -- Rob
              Ram Munjuluri wrote:
              >
              > Hi,
              >
              > Has anyone tried using in-memory replication for a stateful-session bean in the evaluation
              > copy of WebLogic 6.0 ? I have a simple stateful session bean with <replication-type>InMemory</replication-type>
              > set in weblogic-ejb-jar.xml. But when I try to generate a deployable jar file, I
              > get the following message,
              >
              > % java weblogic.ejbc -compiler jikes std_simple_stateful.jar simple_stateful.jar
              > Couldn't find a license for in-memory replication of EJB's, this feature is disabled
              > <Jan 31, 2001 1:40:21 PM EST> <Info> <EJB> <Couldn't find a license for in-memory
              > replication of EJB's, this feature is disabled>
              >
              > The license file seems to have the product enabled.
              >
              > any suggestions ???
              >
              > thanx in advance
              > -Ram
              > [email protected]
              Coming Soon: Building J2EE Applications & BEA WebLogic Server
              by Michael Girdley, Rob Woollen, and Sandra Emerson
              http://learnweblogic.com
              

  • WLS Express and in-memory replication

              I will be purchasing WLS and or WLS Express. I'm looking at using Zeus as my Web Server and then using the Apache-Proxy Plugin for redirecting dynamic content to my Web-Cluster.
              Question: Can WebLogic Express do clustering and in-memory session replication? If so I would be very intrested. We will be migrating our business logic into EJB's soon enough but I have a proof of concept comming up real quick and I I could use WLS Express for my Web-Cluster and then use the more "Expensive" but robust App-Server in the back I would simply love it!
              Please help me:)
              the Viking!
              

    XMLViking wrote:
              >
              > Rob,
              >
              > Thanks for the rapid response. I had conducted a little research later today and arrived at the same conclusion. So it's my understanding that you create the in-memory replication through the usage of the Proxy-Plug in and the usage of a Replication Group?
              >
              Basically, yes. The docs should cover this in detail.
              > BEA mentions a considerable overhead for the serialization of the servlets session state? Does anyone have any data on the latency we are talking about here? Does this even begin to compare with the costs of a JDBC call for session retrieval from a DB?
              >
              For most applications, the in-memory rep performance should be very
              good. In the benchmarks I've seen, it approaches the performance of
              using no session persistence. JDBC adds quite a bit of overhead.
              The in-memory rep performance is proportional to how much data you are
              sending across the wire. In general, I would not recommend huge
              sessions.
              -- Rob
              > Thank you very much!
              >
              > Rob Woollen <[email protected]> wrote:
              > >XMLViking wrote:
              > >>
              > >> I will be purchasing WLS and or WLS Express. I'm
              > >> looking at using Zeus as my Web Server and then
              > >> using the Apache-Proxy Plugin for redirecting
              > >> dynamic content to my Web-Cluster.
              > >
              > >Zeus is not currently a supported web server, but I believe Zeus
              > >supports NSAPI so our Netscape plug-in may work.
              > >
              > >>
              > >> Question: Can WebLogic Express do clustering and
              > >> in-memory session replication? If so I would be very
              > >> intrested. We will be migrating our business logic
              > >> into EJB's soon enough but I have a proof of concept
              > >> comming up real quick and I I could use WLS Express
              > >> for my Web-Cluster and then use the more "Expensive"
              > >> but robust App-Server in the back I would simply
              > >> love it!
              > >
              > >You can purchase WebLogic Express with clustering support. Essentially
              > >you get the in-memory replication of servlet session state.
              > >
              > >Contact your sales representative or [email protected] for more info.
              > >
              > >-- Rob
              > >
              > >>
              > >> Please help me:)
              > >>
              > >> the Viking!
              

  • Session in-memory replication problem

    Hi,
              I am running into some cluster HttpSession replication problems. Here is
              the scenario where replication fails (all servers mentioned here are a
              part of a cluster).
              1a - 2 Weblogic servers (A&B) are running - no users logged in,
              2a - user logs in and a new session in server A is created.
              3a - after several interactions, server A is killed.
              4a - after user makes susequent request, Weblogic correctly fails over
              to server B
              Problem: Not entire session data is replicated. The authentication info
              seems to
              be replicated correctly but there are some collections in the session of
              server A
              that did not make it to the session in server B.
              The interesting part is this: If there is only one server A running to
              begin with and a user
              interacts with it for a while and only then server B is started, when
              after server B starts up
              server A dies - the entire session (which is exactly the same as in the
              failing scenario) is
              corretly replicated in B, including collections that were missing in the
              failing scenario.
              How can this be possible ????
              Thanks for any info on this one - it really puzzles me.
              Andrew
              

    Yes, you are on the right track. Everytime you modify the object you should call
              putValue. We will make it more clear in the docs.
              - Prasad
              Andrzej Porebski wrote:
              > Everything is Serilizable. I get no exceptions. I did however read some old
              > posts regarding
              > session replication and I hope I found an answer. It basically seems to boil
              > down to what
              > triggers session sync-up between servers. In my case , I store an object into
              > session and
              > later on manipulate that object directly wihotu session involvment and the
              > results of those manipulations
              > are not replicated - no wonder if HttpSession's putValue method is the only
              > trigger.
              > Am i on the right track here?
              >
              > -Andrew
              >
              > Prasad Peddada wrote:
              >
              > > Do you have non serializable data by any chance?
              > >
              > > - Prasad
              > >
              > > Andrzej Porebski wrote:
              > >
              > > > Hi,
              > > > I am running into some cluster HttpSession replication problems. Here is
              > > > the scenario where replication fails (all servers mentioned here are a
              > > > part of a cluster).
              > > > 1a - 2 Weblogic servers (A&B) are running - no users logged in,
              > > > 2a - user logs in and a new session in server A is created.
              > > > 3a - after several interactions, server A is killed.
              > > > 4a - after user makes susequent request, Weblogic correctly fails over
              > > > to server B
              > > >
              > > > Problem: Not entire session data is replicated. The authentication info
              > > > seems to
              > > > be replicated correctly but there are some collections in the session of
              > > > server A
              > > > that did not make it to the session in server B.
              > > >
              > > > The interesting part is this: If there is only one server A running to
              > > > begin with and a user
              > > > interacts with it for a while and only then server B is started, when
              > > > after server B starts up
              > > > server A dies - the entire session (which is exactly the same as in the
              > > > failing scenario) is
              > > > corretly replicated in B, including collections that were missing in the
              > > > failing scenario.
              > > >
              > > > How can this be possible ????
              > > >
              > > > Thanks for any info on this one - it really puzzles me.
              > > >
              > > > Andrew
              > >
              > > --
              > > Cheers
              > >
              > > - Prasad
              >
              > --
              > -------------------------------------------------------------
              > Andrzej Porebski
              > Sailfish Systems, Ltd. Phone 1 + (212) 607-3061
              > 44 Wall Street, 17th floor Fax: 1 + (212) 607-3075
              > New York, NY 10005
              > -------------------------------------------------------------
              

  • Can javax.rmi.PortableRemoteObject be attribute of http session with in-memory replication?

    Hi:
              When the servlet server try to do the in memory replication, a Stub class
              not found exception throwed out.
              The rmi object is compiled with -iiop option, should I compile it without
              iiop option?
              Please help
              thanks
              andrew
              

    Hi don:
              Thanks for you reply.
              I can't get the stack trace right, I am not working today. but I'll get it
              later.
              All the machine has the IIOP tie and stub class.
              The jar file works fine on weblogic6.1 cluster.
              thanks again
              andrew
              "Don Ferguson" <[email protected]> wrote in message
              news:[email protected]..
              > What's the exact stack trace? Is the stub present on all machines in the
              > cluster?
              >
              > -Don
              >
              > Andrew wrote:
              >
              > > Hi:
              > > When the servlet server try to do the in memory replication, a Stub
              class
              > > not found exception throwed out.
              > > The rmi object is compiled with -iiop option, should I compile it
              without
              > > iiop option?
              > >
              > > Please help
              > > thanks
              > > andrew
              >
              

  • In memory replication problems when I bring up a new server

              I've got in memory replication set up for 6.1. It works fine if I have 2 servers
              up and 1 goes down.
              However, if I have 1 server up and a bring a second server up, the sessions blow
              out.
              E.g. I've got server A and server B.
              Both are up, both have sessions. As new sessions come in, they are replicated over
              to the other server.
              now I bring server B down. All sessions on B fail over to A.
              so far so good.
              However when I bring server A back up some of the sessions fail as soon as the server
              is back up.
              Is this a configuration issue, is this a know problem?
              This worked fine in weblogic 5.1. In 5.1 when I brought an instance back up, everything
              worked fine.
              

              It turns out the problem was caused by using an old version of the Apache Plugin.
              This problem occurred while using the 5.1 apache plugin with WLS 6.1.
              Once we realized we were using the wrong plugin and swithced to the 6.1 plugin, the
              problem went away.
              

  • In memory replication not working

    We are using Weblogic 4.5.1 SP5 (I know that is an old service pack -
              but this is in a production system and it usually takes a guarantee that
              a change will fix a bug before being allowed).
              We are clustering two weblogic servers.
              In our test systems everything works great.
              In our production systems, failover works, but not in memory
              replication. With the replication debugging output turned on I see the
              following output:
              <WebLogicServer> WebLogic Server started
              <RJVM> Creating connection to 10.100.35.90/10.100.35.80 ...
              (I should point out that this RJVM message only appears on one of the
              servers, appears whether or not the other server is running, and
              10.100.35.80 is not the IP address of the other server nor of this
              server.)
              (Note, it never prints the typical <RepMan>Adding XXXXXX to the cluster)
              When a user connects and a session is created, we see the following:
              <RepMan>Unable to create secondary for XXXXXXX
              <RepMan>Registered XXXXXX
              <RepMan>Get Secondary JVMID returning null for XXXXXXX
              <RepMan>updateSecondary called on unpaired primary
              <RepMan>lookup found for XXXXXX
              The second server never outputs any new information.
              It's not the code, this works in test, and we have poured over the
              configuration, and all configuration files look correct.
              The MulticastTest also works in the production system.
              Any ideas?
              

              Looks like they are not in cluster..
              double check the configuration and check in weblogic console whether you see both servers under the cluster name...
              Robert Antonucci <[email protected]> wrote:
              >We are using Weblogic 4.5.1 SP5 (I know that is an old service pack -
              >but this is in a production system and it usually takes a guarantee that
              >a change will fix a bug before being allowed).
              >
              >We are clustering two weblogic servers.
              >In our test systems everything works great.
              >In our production systems, failover works, but not in memory
              >replication. With the replication debugging output turned on I see the
              >following output:
              >
              ><WebLogicServer> WebLogic Server started
              ><RJVM> Creating connection to 10.100.35.90/10.100.35.80 ...
              >(I should point out that this RJVM message only appears on one of the
              >servers, appears whether or not the other server is running, and
              >10.100.35.80 is not the IP address of the other server nor of this
              >server.)
              >(Note, it never prints the typical <RepMan>Adding XXXXXX to the cluster)
              >
              >When a user connects and a session is created, we see the following:
              >
              ><RepMan>Unable to create secondary for XXXXXXX
              ><RepMan>Registered XXXXXX
              ><RepMan>Get Secondary JVMID returning null for XXXXXXX
              ><RepMan>updateSecondary called on unpaired primary
              ><RepMan>lookup found for XXXXXX
              >
              >The second server never outputs any new information.
              >
              >It's not the code, this works in test, and we have poured over the
              >configuration, and all configuration files look correct.
              >The MulticastTest also works in the production system.
              >
              >Any ideas?
              >
              

  • In memory replication doesn't seem to work

    We have set up a Cluster with 2 servers. Our Proxy server is NES. We can
              see the round robin working but each time we are accessing the session,
              the same cookie gets overriden (the browser receives the WebLogicSession
              cookie from the weblogic servers) .... Loosing all the information..
              Is this a WebLogic bug ?
              Olivier
              [olivier.vcf]
              

    I don't think it goes in the xml file. It should be in weblogic.properties file
              weblogic.httpd.session.cookie.name=foo
              -- Prasad
              John wrote:
              > Could you tell me how I can set up the cookie in web.xml to override the WeblogicSession cookie?
              >
              > "Yogi Mudras" <[email protected]> wrote:
              > >Is SP6 out yet ?
              > >
              > >
              > >"Olivier Brand" <[email protected]> wrote in message
              > >news:[email protected]...
              > >> BEA told me that the Session bug will be fixed in SP7.
              > >>
              > >> Otherwise, the in-memory replication is working fine. During our stress
              > >test, we got
              > >> some exceptions.
              > >>
              > >> When we are using in-memory replicaiton, should all the objects put in the
              > >HttpSession
              > >> be Serializable ? My guess is that they have to be.
              > >>
              > >> Olivier
              > >>
              > >> weblogic.servlet.internal.session.ReplicatedSession.invalidate(Compiled
              > >> Code)
              > >> at
              > >>
              > >weblogic.servlet.internal.session.ReplicatedSessionContext.invalidateSession
              > >(Compiled
              > >> Code)
              > >> at
              > >>
              > >weblogic.servlet.internal.session.SessionContext$SessionInvalidator.invalida
              > >teSessions(Compiled
              > >>
              > >> Code)
              > >> at
              > >>
              > >weblogic.servlet.internal.session.SessionContext$SessionInvalidator.trigger(
              > >Compiled
              > >> Code)
              > >> at
              > >> weblogic.time.common.internal.ScheduledTrigger.executeLocally(Compiled
              > >> Code)
              > >> at
              > >> weblogic.time.common.internal.ScheduledTrigger.execute(Compiled Code)
              > >> at weblogic.time.server.ScheduledTrigger.execute(Compiled Code)
              > >> at weblogic.kernel.ExecuteThread.run(Compiled Code)
              > >>
              > >> weblogic.cluster.replication.NotFoundException: remove unable to find
              > >> object 7173403347807782043
              > >> at java.lang.Throwable.fillInStackTrace(Native Method)
              > >> at java.lang.Throwable.fillInStackTrace(Compiled Code)
              > >> at weblogic.rmi.extensions.AbstractRequest.sendReceive(Compiled
              > >> Code)
              > >> at
              > >> weblogic.cluster.replication.ReplicationManager_WLStub.remove(Compiled
              > >> Code)
              > >> at
              > >> weblogic.cluster.replication.ReplicationManager.unregister(Compiled
              > >> Code)
              > >> at
              > >> weblogic.servlet.internal.session.ReplicatedSession.invalidate(Compiled
              > >> Code)
              > >> at
              > >>
              > >weblogic.servlet.internal.session.ReplicatedSessionContext.invalidateSession
              > >(Compiled
              > >> Code)
              > >> at
              > >>
              > >weblogic.servlet.internal.session.SessionContext$SessionInvalidator.invalida
              > >teSessions(Compiled
              > >>
              > >> Code)
              > >> at
              > >>
              > >weblogic.servlet.internal.session.SessionContext$SessionInvalidator.trigger(
              > >Compiled
              > >> Code)
              > >> at
              > >> weblogic.time.common.internal.ScheduledTrigger.executeLocally(Compiled
              > >> Code)
              > >>
              > >> Prasad Peddada wrote:
              > >>
              > >> > Olivier Brand wrote:
              > >> >
              > >> > > In fact, nothing is impossible since there is a HUGE bug in WebLogic
              > >and the
              > >> > > sessions. This bug has been (and still is) filed under the following
              > >number:
              > >> > > CR033896.
              > >> > > I have noticed that if you have two different web app, if you contact
              > >a
              > >> > > servlet in app 1 and a servlet in app 2 (2 different contexts), the
              > >same
              > >> > > cookie: WebLogicSession, is being overriden !!
              > >> > > The workaround is to override in the web.xml the name of the session.
              > >> >
              > >> > Do you have problems even with the suggested workaround?
              > >> >
              > >> > > I got the sticky load balancing back in placing the CookieName
              > >argument in the
              > >> > > NES proxy (app1 and app2). This way the proxy can identify what
              > >application
              > >> > > server to contact depending on the requestor's cookie.
              > >> > >
              > >> > > I am still noticing the loss of the session when using the failover:
              > >> > >
              > >> > > I stop app server A, app1 is switched to app server B but recreate the
              > >same
              > >> > > cookie with a different value. I thought that in-memory replication
              > >was...
              > >> > > replicating. Does it mean that only the DB persistency (or file system
              > >if
              > >> > > using NFS of course) can work in a failover scenario ?
              > >> >
              > >> > When you failover to server B the cookie will change. The behavior is
              > >correct, but
              > >> > do you see loss of session data. Is it possible to post the cookies
              > >before and
              > >> > after failover.
              > >> >
              > >> > - Prasad
              > >> >
              > >> > >
              > >> > > Olivier
              > >> > >
              > >> > > Prasad Peddada wrote:
              > >> > >
              > >> > > > Olivier Brand wrote:
              > >> > > >
              > >> > > > > We have set up a Cluster with 2 servers. Our Proxy server is NES.
              > >We can
              > >> > > > > see the round robin working but each time we are accessing the
              > >session,
              > >> > > > > the same cookie gets overriden (the browser receives the
              > >WebLogicSession
              > >> > > > > cookie from the weblogic servers) .... Loosing all the
              > >information..
              > >> > > >
              > >> > > > What do you mean by overriden? That's not possible. Could you post
              > >the two
              > >> > > > sessions ids.
              > >> > > >
              > >> > > > - Prasad
              > >> > > >
              > >> > > > >
              > >> > > > > Is this a WebLogic bug ?
              > >> > > > >
              > >> > > > > Olivier
              > >> >
              > >> > --
              > >> > Cheers
              > >> >
              > >> > - Prasad
              > >>
              > >
              > >
              

  • Defeating In Memory Replication

    I have some questions about in memory servlet session replication in
              weblogic 5.1 clusters. It seems to me rather easy to create a scenario
              where the session is lost. While the servers in a cluster do a good job
              maintaining session state within the cluster while machines leave and
              join the cluster, the web server proxy in front of the cluster relies on
              state (a cookie) from the client to find the cluster server that has the
              session state. There is no way for the cluster servers to stay in sync
              with client cookies if the client make infrequent requests.
              I hope that someone can tell me that I am wrong but please consider the
              following scenario.
              There is a cluster made up of 5 servers.
              There is one weblogic web server acting as the proxy in front of the
              cluster.
              A web browser makes connection #1 and causes the creation of SessionA.
              Server1 is the primary node for the session, Server2 is the backup.
              Server1 is taken out of service. Server2 is now the primary, Server3 is
              the backup.
              Server2 is taken out of service. Server3 is now the primary, Server4 is
              the backup.
              The web browser makes connection #2. Its cookie refers to Server1 as
              the primary and Server2 as the backup. This cookie state is stale, the
              proxy server does not know where to go and the session created in
              connection #1 is lost.
              Am I right? Will this scenario lose the session?
              - Kevin
              

    Kevin McEntee wrote:
              > Interesting, see my comments below.
              >
              > Prasad Peddada wrote:
              > >
              > > Kevin McEntee wrote:
              > >
              > > > I have some questions about in memory servlet session replication in
              > > > weblogic 5.1 clusters. It seems to me rather easy to create a scenario
              > > > where the session is lost. While the servers in a cluster do a good job
              > > > maintaining session state within the cluster while machines leave and
              > > > join the cluster, the web server proxy in front of the cluster relies on
              > > > state (a cookie) from the client to find the cluster server that has the
              > > > session state. There is no way for the cluster servers to stay in sync
              > > > with client cookies if the client make infrequent requests.
              > >
              > > That's true. But, you don't expect the servers to go down fast either.
              >
              > Maybe not for errors or crashes but what about pushing new code to a
              > production website? The company I work for pushes new code to the live
              > internet site once per week. Typically 1/3 to 1/2 of the machines are
              > taken out of service while new code is copied to the servers. These
              > machines are brought back into service and more are taken out. This
              > process continues until all of the machines have new code and are
              > brought back into service.
              >
              > This is an example of a regular controlled circumstance where machines
              > are taken out and brought back into a cluster.
              Replication has been designed with failures in mind but not controlled
              failures. We will be addressing this issue in our next release most probably.
              > > > There is a cluster made up of 5 servers.
              > > > There is one weblogic web server acting as the proxy in front of the
              > > > cluster.
              > > >
              > > > A web browser makes connection #1 and causes the creation of SessionA.
              > > > Server1 is the primary node for the session, Server2 is the backup.
              > > > Server1 is taken out of service. Server2 is now the primary, Server3 is
              > > > the backup.
              > > > Server2 is taken out of service. Server3 is now the primary, Server4 is
              > > > the backup.
              > > > The web browser makes connection #2. Its cookie refers to Server1 as
              > > > the primary and Server2 as the backup. This cookie state is stale, the
              > > > proxy server does not know where to go and the session created in
              > > > connection #1 is lost.
              > > >
              > > > Am I right? Will this scenario lose the session?
              > >
              > > Yes, you will lose the session information since the client didn't make
              > > connection while the servers are being taken out of service. You can
              > > alternatively use JDBC persistence or file persistence for this which will
              > > not have the problems you mentioned.
              > >
              >
              > This makes me wonder if anyone is depending on in-memory replication of
              > servlet sessions for real data or just caching. It is so easy to defeat
              > that I cannot imagine depending on it, especially given the need to
              > regularly change the live site code as described in above.
              Your requirements seem to be quite different what it was intended for, so I
              cannot comment on this.
              > Is anyone out there reading this group using in-memory replication of
              > servlet sessions on a live internet site? What is your push process
              > like?
              >
              > - Kevin
              - Prasad
              

  • Setting up in-memory replication in WLS5.1

              Hi,
              How do you set up in-memory replication in WLS5.1? I mean what the weblogic.properties
              and what are it's values?
              Thanx
              

    Put it in the cluster level properties file. What service pack are you using? I would recommend you use the latest (SP11)
              with WLS 5.1.
              Kailu wrote:
              > Hi,
              >
              > I've set up the following properties(in the server level properties, should they
              > be set up in the cluster level properties?)
              >
              > weblogic.httpd.clustering.enable=true
              > weblogic.httpd.session.persistence=true
              > weblogic.httpd.session.persistentStoreType=replicated
              >
              > and I'm getting the following error(does it have anything do with the settings
              > in the weblogic.policy file?)
              >
              > Mon Mar 18 10:07:55 CST 2002:<I> <ServletContext-General> session: init
              > Mon Mar 18 10:07:55 CST 2002:<E> <ServletContext-General> Servlet failed with
              > Exception
              > java.lang.SecurityException:
              > at java.lang.Throwable.fillInStackTrace(Native Method)
              > at weblogic.rmi.extensions.AbstractRequest.sendReceive(AbstractRequest.java:76)
              > at weblogic.jndi.internal.RemoteContextFactoryImpl_WLStub.getContext(RemoteContextFactoryImpl_WLStub.java:95)
              > at weblogic.jndi.WLInitialContextFactoryDelegate.newRemoteContext(WLInitialContextFactoryDelegate.java:316)
              > at weblogic.jndi.WLInitialContextFactoryDelegate.newContext(Compiled Code)
              > at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(Compiled
              > Code)
              > at weblogic.jndi.Environment.getContext(Compiled Code)
              > at weblogic.jndi.Environment.getInitialContext(Compiled Code)
              > at weblogic.cluster.replication.ReplicationManager.getRepMan(ReplicationManager.java:363)
              > at weblogic.cluster.replication.ReplicationManager.createSecondary(Compiled
              > Code)
              > at weblogic.cluster.replication.ReplicationManager.register(ReplicationManager.java:617)
              > at weblogic.servlet.internal.session.ReplicatedSession.<init>(ReplicatedSession.java:106)
              > at weblogic.servlet.internal.session.ReplicatedSessionContext.getNewSession(ReplicatedSessionContext.java:50)
              > at weblogic.servlet.internal.session.SessionContext.getNewSessionInstance(SessionContext.java:349)
              > at weblogic.servlet.internal.ServletRequestImpl.getNewSession(ServletRequestImpl.java:1307)
              > at weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:1199)
              > at examples.servlets.SessionServlet.doGet(SessionServlet.java:51)
              > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
              > at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
              > at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:106)
              > at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:907)
              > at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:851)
              > at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:252)
              > at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:364)
              > at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:252)
              > at weblogic.kernel.ExecuteThread.run(Compiled Code)
              >
              > "Kailu" <[email protected]> wrote:
              > >
              > >Hi,
              > >
              > >How do you set up in-memory replication in WLS5.1? I mean what the weblogic.properties
              > >and what are it's values?
              > >
              > >Thanx
              Rajesh Mirchandani
              Developer Relations Engineer
              BEA Support
              

  • Is a clustering licence required for using In-Memory replication?

              Hi,
              Could you please tell me if it is possible to use In-Memory replication
              without a clustering licence? (With WebLogic 6 on Linux with eval.
              licence.)
              I ask, because the documentation states that it can be used with
              HW load-balancing devices. If that is the case, how do you configure
              replication without configuring a WebLogic cluster (since you already
              have a HW LB cluster!).
              Regards,
              Frank Olsen
              

    Okay, so then the advice to contact your BEA account rep for a clustering eval
              license is correct.
              Frank Olsen wrote:
              > Hi and thanks for your help,
              >
              > My license file does not have support for clustering/replication.
              > There's "only": WebLogic, SSL/Export, 2PC, EJB 1.1, EJB 2.0, JMS,
              > jDriver/MSSQLServer4, jDriver/Informix4, jDriver/Oracle.
              >
              > BTW, sorry for misreading the first response -- maybe I can put
              > it on the account on the end of the day with a flu ;-)
              >
              > Robert Patrick <[email protected]> wrote:
              > >My wife has the now expired eval license that came packaged
              > >with WLS 6.0 GA and
              > >it includes licenses for clustering and in-memory replication
              > >for both servlets
              > >and EJBs.
              > >
              > >Hope this helps,
              > >Robert
              > >
              > >Prasad Peddada wrote:
              > >
              > >> I don't think replication license is part of it.
              > >>
              > >> -- Prasad
              > >>
              > >> Robert Patrick wrote:
              > >>
              > >> > I was under the impression that our eval licenses
              > >now include clustering.
              > >> > Please open up your license.bea file to see if this
              > >is the case...
              > >> >
              > >> > Prasad Peddada wrote:
              > >> >
              > >> > ? Frank,
              > >> > ?
              > >> > ? I meant you need clustering license. Contact
              > >your sales rep to get an
              > >> > ? eval license.
              > >> > ?
              > >> > ? You can ignore groups for now.
              > >> > ?
              > >> > ? -- Prasad
              > >> > ?
              > >> > ? Frank Olsen wrote:
              > >> > ?
              > >> > ? ? Prasad Peddada [email protected]? wrote:
              > >> > ? ? ?No, you can't use In Memory replication without
              > >clustering
              > >> > ? ? ?license.
              > >> > ? ? ?
              > >> > ? ?
              > >> > ? ? Great!
              > >> > ? ?
              > >> > ? ? Could you please tell me how to configure this?
              > >> > ? ?
              > >> > ? ? The documentation took me from configuring replication
              > >of HTTP
              > >> > ? ? sessions in:
              > >> > ? ? http://e-docs.bea.com/wls/docs60/cluster/servlet.html
              > >> > ? ? to configuring Replication Groups in:
              > >> > ? ? http://e-docs.bea.com/wls/docs60/cluster/setup.html#683053
              > >> > ? ? which tells you to:
              > >> > ? ? 1. Open the Administration Console.
              > >> > ? ? 2. Select the Servers node.
              > >> > ? ? 3. Select the server to configure.
              > >> > ? ? 4. Select the Cluster tab.
              > >> > ? ? 5. Type in values for the following attribute
              > >fields:
              > >> > ? ? a) Replication Group: Enter the replication
              > >group name to
              > >> > ? ? which this server belongs.
              > >> > ? ? b) Preferred Secondary Group: Enter the name
              > >of the replication
              > >> > ? ? group you would like to use to host replicated
              > >HTTP session states
              > >> > ? ? for this server.
              > >> > ? ? 6. Apply the changes.
              > >> > ? ?
              > >> > ? ? It's all well to give names of these groups, but
              > >where do you specify
              > >> > ? ? the servers in the group?
              > >> > ? ?
              > >> > ? ? There's a link to:
              > >> > ? ? http://e-docs.bea.com/wls/docs60/adminguide/config.html#config_005
              > >> > ? ? which gives a list of configuration tasks (Configuring
              > >an individual
              > >> > ? ? server, Cloning an indv. server, ...).
              > >> > ? ?
              > >> > ? ? Where to I go from here?
              > >> > ? ?
              > >> > ? ? Regards,
              > >> > ? ? Frank Olsen
              > >
              

  • NullPointerException when doing in-memory-replication

    I am clustering two WLS instance sitting behind a WLS NSAPI proxy on one
              multi-home NT box, but when I tried to use in memory replication with adding
              the the following three properties:
              weblogic.httpd.clustering.enable=true
              weblogic.httpd.session.persistence=true
              weblogic.httpd.session.persistentStoreType=replicated
              I got the exception below. if I removed the session.persistence and
              session.persistentStoreType properties, the request will go through and both
              instance can serve request, but I lost the session information in fail over.
              Any hints will be appreciated!
              Qingxiang
              java.lang.NullPointerException
              at
              weblogic.servlet.internal.session.ReplicatedSession.setMaxInactiveInterval(R
              eplicatedSession.java:339)
              at
              weblogic.servlet.internal.session.SessionContext.getNewSessionInstance(Sessi
              onContext.java:322)
              at
              weblogic.servlet.internal.ServletRequestImpl.getNewSession(ServletRequestImp
              l.java:1104)
              at
              weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.j
              ava:1007)
              at
              weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.j
              ava:981)
              at
              weblogic.servlet.jsp.PageContextImpl.initialize(PageContextImpl.java:47)
              at
              weblogic.servlet.jsp.PageContextImpl.<init>(PageContextImpl.java:64)
              at
              weblogic.servlet.jsp.JspFactoryImpl.getPageContext(JspFactoryImpl.java:31)
              at jsp_servlet.index._jspService(index.java:105)
              at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
              at
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
              :123)
              at
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
              :141)
              at
              weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
              l.java:744)
              at
              weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
              l.java:692)
              at
              weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContext
              Manager.java:251)
              at
              weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:363)
              at
              weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:263)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              

    I forgot to add that I am running WLS5.1 with sp3.
              "Qingxiang Ke" <[email protected]> wrote in message
              news:[email protected]...
              > I am clustering two WLS instance sitting behind a WLS NSAPI proxy on one
              > multi-home NT box, but when I tried to use in memory replication with
              adding
              > the the following three properties:
              >
              > weblogic.httpd.clustering.enable=true
              > weblogic.httpd.session.persistence=true
              > weblogic.httpd.session.persistentStoreType=replicated
              >
              > I got the exception below. if I removed the session.persistence and
              > session.persistentStoreType properties, the request will go through and
              both
              > instance can serve request, but I lost the session information in fail
              over.
              >
              > Any hints will be appreciated!
              >
              > Qingxiang
              >
              > java.lang.NullPointerException
              > at
              >
              weblogic.servlet.internal.session.ReplicatedSession.setMaxInactiveInterval(R
              > eplicatedSession.java:339)
              > at
              >
              weblogic.servlet.internal.session.SessionContext.getNewSessionInstance(Sessi
              > onContext.java:322)
              > at
              >
              weblogic.servlet.internal.ServletRequestImpl.getNewSession(ServletRequestImp
              > l.java:1104)
              > at
              >
              weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.j
              > ava:1007)
              > at
              >
              weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.j
              > ava:981)
              > at
              > weblogic.servlet.jsp.PageContextImpl.initialize(PageContextImpl.java:47)
              > at
              > weblogic.servlet.jsp.PageContextImpl.<init>(PageContextImpl.java:64)
              > at
              > weblogic.servlet.jsp.JspFactoryImpl.getPageContext(JspFactoryImpl.java:31)
              > at jsp_servlet.index._jspService(index.java:105)
              > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
              > at
              >
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
              > :123)
              > at
              >
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
              > :141)
              > at
              >
              weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
              > l.java:744)
              > at
              >
              weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
              > l.java:692)
              > at
              >
              weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContext
              > Manager.java:251)
              >
              > at
              >
              weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:363)
              > at
              > weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:263)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              >
              >
              >
              

Maybe you are looking for