Unstable session replication in a HA cluster (CF10)

Hi,
We have tried to create a HA cluster with requests being distributed round robin to N instances of coldfusion, we are NOT using sticky sessions as we are replication session state to all cf instances. What we are seing is that all is fine with low to moderate load, however under heavy load and at random times the replication fails and leads to things in session scope not working. This manifests in users not being able to login to our application (we store a token in session scope to store logged in status).
Again key point, under low to moderate load it all works fine, users are directed to random nodes in the cluster and their session is picked up fine as the session is distributed to all nodes,so pretty confident config is right.
Linux servers using CF10 with update 12 applied. Also running is fusion reactor 5.04 on all instances. Each instance has a 64GB heap, Java 7.0.15 (latest certified).
Firstly apache setup.
workers.properties
worker.list=balancer, jkstatus
worker.jkstatus.type=status
worker.balancer.type=lb
worker.balancer.balance_workers=cfusion_master,cfusion_slave2,cfusion_slave1
worker.balancer.method=R
worker.balancer.sticky_session=False
worker.balancer.ping_mode=A
worker.cfusion_master.type=ajp13
worker.cfusion_master.host=localhost
worker.cfusion_master.port=8012
worker.cfusion_master.max_reuse_connections=250
worker.cfusion_master.lbfactor=100
worker.cfusion_slave2.reference=worker.cfusion_master
worker.cfusion_slave2.port=8014
worker.cfusion_slave1.reference=worker.cfusion_master
worker.cfusion_slave1.port=8013
Now the server.xml from 2 nodes (as an example if I run a 2 node cluster)
One of the configs from a server in the cluster
<Server port="8007" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on">
  </Listener>
  <Listener className="org.apache.catalina.core.JasperListener">
  </Listener>
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener">
  </Listener>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener">
  </Listener>
  <GlobalNamingResources>
    <Resource description="User database that can be updated and saved" name="UserDatabase" pathname="conf/tomcat-users.xml" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" type="org.apache.catalina.UserDatabase" auth="Container">
    </Resource>
  </GlobalNamingResources>
  <Service name="Catalina">
    <Executor name="tomcatThreadPool" minSpareThreads="4" maxThreads="150" namePrefix="catalina-exec-">
    </Executor>
    <Connector port="8012" protocol="AJP/1.3" connectionTimeout="600000" redirectPort="8445" tomcatAuthentication="false">
    </Connector>
    <Engine jvmRoute="cfusion" name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase">
        </Realm>
      </Realm>
      <Host name="localhost" autoDeploy="false" unpackWARs="true" appBase="webapps">
        <Valve pattern="%h %l %u %t &quot;%r&quot; %s %b" directory="logs" prefix="localhost_access_log." className="org.apache.catalina.valves.AccessLogValve" suffix=".txt" resolveHosts="false">
        </Valve>
      </Host>
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
        <Manager notifyListenersOnReplication="true" expireSessionsOnShutdown="false" className="org.apache.catalina.ha.session.DeltaManager">
        </Manager>
        <Channel className="org.apache.catalina.tribes.group.GroupChannel">
          <Membership port="45564" dropTime="3000" address="228.0.0.4" className="org.apache.catalina.tribes.membership.McastService" frequency="500">
          </Membership>
          <Receiver port="4001" autoBind="100" address="auto" selectorTimeout="5000" maxThreads="6" className="org.apache.catalina.tribes.transport.nio.NioReceiver">
          </Receiver>
          <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
            <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender">
            </Transport>
          </Sender>
          <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector">
          </Interceptor>
          <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor">
          </Interceptor>
        </Channel>
        <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter="">
        </Valve>
        <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve">
        </Valve>
        <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener">
        </ClusterListener>
        <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener">
        </ClusterListener>
      </Cluster>
    </Engine>
    <Connector port="8499" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" executor="tomcatThreadPool">
    </Connector>
  </Service>
</Server>
Config from one of the other nodes
<Server port="8008" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on">
  </Listener>
  <Listener className="org.apache.catalina.core.JasperListener">
  </Listener>
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener">
  </Listener>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener">
  </Listener>
  <GlobalNamingResources>
    <Resource description="User database that can be updated and saved" name="UserDatabase" pathname="conf/tomcat-users.xml" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" type="org.apache.catalina.UserDatabase" auth="Container">
    </Resource>
  </GlobalNamingResources>
  <Service name="Catalina">
    <Executor name="tomcatThreadPool" minSpareThreads="4" maxThreads="150" namePrefix="catalina-exec-">
    </Executor>
    <Connector port="8013" protocol="AJP/1.3" connectionTimeout="600000" redirectPort="8446" tomcatAuthentication="false">
    </Connector>
    <Engine jvmRoute="cfusion" name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase">
        </Realm>
      </Realm>
      <Host name="localhost" autoDeploy="false" unpackWARs="true" appBase="webapps">
        <Valve pattern="%h %l %u %t &quot;%r&quot; %s %b" directory="logs" prefix="localhost_access_log." className="org.apache.catalina.valves.AccessLogValve" suffix=".txt" resolveHosts="false">
        </Valve>
      </Host>
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
        <Manager notifyListenersOnReplication="true" expireSessionsOnShutdown="false" className="org.apache.catalina.ha.session.DeltaManager">
        </Manager>
        <Channel className="org.apache.catalina.tribes.group.GroupChannel">
          <Membership port="45564" dropTime="3000" address="228.0.0.4" className="org.apache.catalina.tribes.membership.McastService" frequency="500">
          </Membership>
          <Receiver port="4002" autoBind="100" address="auto" selectorTimeout="5000" maxThreads="6" className="org.apache.catalina.tribes.transport.nio.NioReceiver">
          </Receiver>
          <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
            <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender">
            </Transport>
          </Sender>
          <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector">
          </Interceptor>
          <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor">
          </Interceptor>
        </Channel>
        <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter="">
        </Valve>
        <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve">
        </Valve>
        <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener">
        </ClusterListener>
        <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener">
        </ClusterListener>
      </Cluster>
    </Engine>
    <Connector port="8500" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" executor="tomcatThreadPool">
    </Connector>
  </Service>
</Server>
So what do i see in the logs?. Well sometimes I see exceptions like this
Mar 05, 2014 9:55:19 PM org.apache.catalina.ha.session.DeltaManager messageReceived
SEVERE: Manager [localhost#/]: Unable to receive message through TCP channel
java.lang.IllegalStateException: removeAttribute: Session already invalidated
          at org.apache.catalina.ha.session.DeltaSession.removeAttribute(DeltaSession.java:617)
          at org.apache.catalina.ha.session.DeltaRequest.execute(DeltaRequest.java:171)
          at org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaManager.java:1347)
          at org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager.java:1293)
          at org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaManager.java:1014)
          at org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(ClusterSessionListe ner.java:92)
          at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:897)
          at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:878)
          at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:278)
          at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelIntercepto rBase.java:84)
          at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailu reDetector.java:113)
          at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelIntercepto rBase.java:84)
          at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelIntercepto rBase.java:84)
          at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.ja va:253)
          at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:2 87)
          at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTa sk.java:212)
          at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:1 01)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
          at java.lang.Thread.run(Thread.java:722)
I'm unsure why this happens as tribes uses certified mesaging so it should have resent right?, in any case I believe I can change it so messages are not sent asynchronously, should sort this out.
I see (good) messages like this
Mar 05, 2014 9:42:19 PM org.apache.catalina.ha.session.DeltaManager startInternal
INFO: Register manager localhost#/ to cluster element Engine with name Catalina
Mar 05, 2014 9:42:19 PM org.apache.catalina.ha.session.DeltaManager startInternal
INFO: Starting clustering manager at localhost#/
Mar 05, 2014 9:42:19 PM org.apache.catalina.ha.session.DeltaManager getAllClusterSessions
INFO: Manager [localhost#/], requesting session state from org.apache.catalina.tribes.membership.MemberImpl[tcp://{192, 168, 128, 50}:4001,{192, 168, 128, 50},4001, alive=68824148, securePort=-1, UDP Port=-1, id={123 126 89 39 96 -59 69 8 -113 79 51 122 25 108 -11 -110 }, payload={}, command={}, domain={}, ]. This operation will timeout if no session state has been received within 60 seconds.
Mar 05, 2014 9:42:20 PM org.apache.catalina.ha.session.DeltaManager waitForSendAllSessions
INFO: Manager [localhost#/]; session state send at 3/5/14 9:42 PM received in 929 ms.
Mar 05, 2014 9:42:20 PM org.apache.catalina.ha.session.JvmRouteBinderValve startInternal
INFO: JvmRouteBinderValve started
So session state dies appear to be flying around the cluster, I do nightly restarts of some of the nodes due to another issue I have with an ever growing heap (separate issue), interestingly I also see nodes leave and join the cluster, again this is good (shows the multicast is working, and also that replication should be working).
Mar 05, 2014 2:30:16 AM org.apache.catalina.tribes.group.interceptors.TcpFailureDetector memberDisappeared
INFO: Verification complete. Member disappeared[org.apache.catalina.tribes.membership.MemberImpl[tcp://{192, 168, 128, 50}:4001,{192, 168, 128, 50},4001, alive=18629101, securePort=-1, UDP Port=-1, id={-2 65 10 -79 53 -75 76 52 -99 63 -90 -120 34 -89 -14 100 }, payload={}, command={66 65 66 89 45 65 76 69 88 ...(9)}, domain={}, ]]
Mar 05, 2014 2:30:16 AM org.apache.catalina.ha.tcp.SimpleTcpCluster memberDisappeared
INFO: Received member disappeared:org.apache.catalina.tribes.membership.MemberImpl[tcp://{192, 168, 128, 50}:4001,{192, 168, 128, 50},4001, alive=18629101, securePort=-1, UDP Port=-1, id={-2 65 10 -79 53 -75 76 52 -99 63 -90 -120 34 -89 -14 100 }, payload={}, command={66 65 66 89 45 65 76 69 88 ...(9)}, domain={}, ]
Mar 05, 2014 2:35:16 AM org.apache.catalina.ha.tcp.SimpleTcpCluster memberAdded
INFO: Replication member added:org.apache.catalina.tribes.membership.MemberImpl[tcp://{192, 168, 128, 50}:4001,{192, 168, 128, 50},4001, alive=1083, securePort=-1, UDP Port=-1, id={123 126 89 39 96 -59 69 8 -113 79 51 122 25 108 -11 -110 }, payload={}, command={}, domain={}, ]
So stuck now on how to proceed, to establish why at random times the replication fails, leading to cluster collapse. Could it be the size of the session?, I have a few CFCs stuffed into session scope, but perhaps when the load is high there is too many?. Things fail even with a cluster of 2 on one server, initially I had a 8 node cluster on 2 separate machines but when it failed it rolled it back to a cluster of 2 instances on the one server to see if that was stable (its not 100% which is what I need).
Any advice, points gratefully received.

So Lynux, that’s an interesting sounding solution. Would be great if it made some difference for Guitsboy. We’ll see. I notice that you say you’ve not yet tried it, though, and fair enough. Thanks for offering it.
But I’m curious: did you ever resolve your original problem? And if not, hopefully you saw the note I just wrote to Guitsboy, asking him something that may well interest you if you still have your problem. On rereading this thread, from back in April, I’ve also had some new thoughts come to mind which I’ll share, if it may help either of you, or others with this seeming same issue.
To remind readers who may not want to review the whole thread, you had said originally that “all is fine with low to moderate load, however under heavy load and at random times the replication fails“, and that this failure “manifests in users not being able to login to our application (we store a token in session scope to store logged in status)”.  Then it seems you may have concluded that things were down to the error you were seeing in the logs:
Mar 05, 2014 9:55:19 PM org.apache.catalina.ha.session.DeltaManager messageReceived
SEVERE: Manager : Unable to receive message through TCP channel
java.lang.IllegalStateException: removeAttribute: Session already invalidated
And now guitsboy reports seeing the same error.
But here’s the thing that came to mind for me tonight as I read this: you know, there can be a lot of other reasons that users can feel that they “lose their session”, even without using clustering and replication.
There are issues related sometimes to folks having duplicate session tokens (which can happen for various reasons, including perhaps ones in your code, and maybe only when people visit pages in a certain pattern, so that it happens only occasionally and not always).
Then there is an issue that can arise if you are supporting both http and https requests, where Tomcat (not CF) balks at that (see http://www.petefreitag.com/item/817.cfm, and though he shows a solution in IIS you should be able to implement a similar one in mod_rewrite if that was indeed perhaps your issue).
So I’d be curious if either of you may be in a position to have a failing client use any sort of client tool (like Chrome’s dev tools, or Firebug or Firefox’s new builtin tools, or IE’s f12 dev tools) to watch the communication between the client and the server, and especially to watch the cookies being sent. You guys both mention using jsessionid. Are they the same cookie value on each request? And/or are there more than jsessionid? I’ve seen it happen. There could be differences in the domain property reported for the cookie, the httponly property, the secure property, and so on.  And you really do want to view the value sent from the client to the server, because if you view the cookie scope on the server a) it may show values set ON the server rather than sent TO the server, and b) it won’t show these additional cookie properties that were in play on the client. CF only sees the cookie name and value.
I’ve helped many people find out that this was the reason for the seeming session loss (and sometimes it was not all requests by all clients but perhaps only some requests for some clients, all on the same server). At least if this is the crux of the problem, you can then tackle WHY it’s happening.  There can be many reasons, from code to configuration, so I won’t belabor them now.
But if either of you may be able to confirm this, perhaps we can help you both get a little closer to a real explanation and solution for your problem. Again, I’m just guessing a bit based on what you’ve written. I realize it may be that none of this is the problem and you have hit some other real unrelated bug. But I really feel confident that you ought to try to check this out first, as it’s indeed been the crux of problems for others, without respect to clustering.  It seems worth ruling out, so that you don’t get misled chasing the problem on the assumption that it is about clustering.
As always, hope that helps.
/charlie

Similar Messages

  • Session Replication doesn't work when using a custom Unicast Channel

    Hello!
    After configure a WLS Cluster for an WebApp with session replication support enabled I faced some issues with cluster configuration.
    My LAB env used for this configurations is:
    One Solaris 10 SPARC box.
    -- One WLS 11g (10.3.6) domain with:
    ---- 4 Managed servers:
    ---- Admin server
    ---- server-1
    ---- server-2
    ---- Proxy Server (HttpClusterServlet)
    --- 1 Cluster composed by:
    ---- server-1
    ---- server-2In that setup I noticed if I define a custom network channel for servers ( server>protocols>channels ) in the cluster and set Cluster Messaging Mode as Unicast* in the Cluster config ( Cluster>Configuration>Messaging>Messaging Mode ), so the session state replication does not work.
    When I enable the cluster replication debug for managed servers the following messages appears:
    <> <> <1358966729933> <BEA-000000> <[roid:-1772481434088297851] Creating primary for application key /webapp>
    ####<Jan 23, 2013 4:45:29 PM BRST> <Debug> <ReplicationDetails> <de25503> <server-1> <[ACTIVE] ExecuteThread: '5' for queue: > 'weblogic.kernel.Default (self-tuning)'> <<ano
    nymous>> <> <> <1358966729958> <BEA-000000> *<Has secondary servers? false>*
    ####<Jan 23, 2013 4:45:29 PM BRST> <Debug> <ReplicationDetails> <de25503> <server-1> <[ACTIVE] ExecuteThread: '5' for queue: >'weblogic.kernel.Default (self-tuning)'> <<ano
    nymous>> <> <> <1358966729959> <BEA-000000> *<Current secondary server? null>*
    ####<Jan 23, 2013 4:45:29 PM BRST> <Debug> <Replication> <de25503> <server-1> <[ACTIVE] ExecuteThread: '5' for queue: >'weblogic.kernel.Default (self-tuning)'> <<anonymous>
    <> <> <1358966729959> <BEA-000000> <[roid:-1772481434088297851] Unable to create secondary on null>
    ####<Jan 23, 2013 4:45:31 PM BRST> <Debug> <ReplicationDetails> <de25503> <server-1> <[ACTIVE] ExecuteThread: '5' for queue: >'weblogic.kernel.Default (self-tuning)'> After eliminate all possible issues with my webapp (serialization, weblogic descriptor configuration, etc) and try many cluster network configurations I noticed that this problem only occurs when I use Unicast for Cluster's Messaging.
    At the end of the day I really would like to understand why the session replication only works for Cluster's Messaging using Multicast mode. I read a lot the WLS docs (specifically the cluster/network topics) [1][2], but I can't find an official explanation about this.
    Can someone help me understand this behavior?
    Many thanks.
    [1] http://docs.oracle.com/cd/E15523_01/web.1111/e13701/network.htm
    [2] http://docs.oracle.com/cd/E15523_01/web.1111/e13709/setup.htm

    I have Fluxbox started with Slim and .xinitrc. Dbus works only with:
    exec ck-launch-session startfluxbox
    you need run Openbox with ck-launch-session:
    exec ck-launch-session openbox-session
    Bye!!

  • HTTP Session replication problem

    Hi all,
    After 3 days trying to make the http session replication work in my cluster is time to ask some help.
    I´m trying to make a simple application (only a servlet) simulate a http session replication.
    I´ve investigated all the possible problems that i encountered in google :
    Here is my multicast tests :
    SERVER 1
    D:\>java -cp d:\bea\weblogic92\server\lib\weblogic.jar utils.MulticastTest -N SE
    RVER1 -A 237.0.0.1 -p 12809
    ***** WARNING ***** WARNING ***** WARNING *****
    Do NOT use the same multicast address as a running WLS cluster.
    Starting test. Hit any key to abort
    Using multicast address 237.0.0.1:12809
    Will send messages under the name SERVER1 every 2 seconds
    Will print warning every 600 seconds if no messages are received
    I (SERVER1) sent message num 1
    I (SERVER1) sent message num 2
    Received message 2 from SERVER1
    I (SERVER1) sent message num 3
    Received message 3 from SERVER1
    I (SERVER1) sent message num 4
    Received message 4 from SERVER1
    I (SERVER1) sent message num 5
    Received message 5 from SERVER1
    I (SERVER1) sent message num 6
    Received message 6 from SERVER1
    I (SERVER1) sent message num 7
    Received message 7 from SERVER1
    I (SERVER1) sent message num 8
    Received message 8 from SERVER1
    I (SERVER1) sent message num 9
    Received message 9 from SERVER1
    I (SERVER1) sent message num 10
    Received message 10 from SERVER1
    Received message 11 from SERVER1
    I (SERVER1) sent message num 11
    I (SERVER1) sent message num 12
    Received message 12 from SERVER1
    I (SERVER1) sent message num 13
    Received message 13 from SERVER1
    Received message 14 from SERVER1
    I (SERVER1) sent message num 14
    I (SERVER1) sent message num 15
    Received message 15 from SERVER1
    I (SERVER1) sent message num 16
    Received message 16 from SERVER1
    SERVER 2
    D:\>java -cp d:\bea\weblogic92\server\lib\weblogic.jar utils.MulticastTest -N SE
    RVER2 -A 237.0.0.1 -p 12809
    ***** WARNING ***** WARNING ***** WARNING *****
    Do NOT use the same multicast address as a running WLS cluster.
    Starting test. Hit any key to abort
    Using multicast address 237.0.0.1:12809
    Will send messages under the name SERVER2 every 2 seconds
    Will print warning every 600 seconds if no messages are received
    I (SERVER2) sent message num 1
    I (SERVER2) sent message num 2
    Received message 2 from SERVER2
    I (SERVER2) sent message num 3
    Received message 3 from SERVER2
    I (SERVER2) sent message num 4
    Received message 4 from SERVER2
    I (SERVER2) sent message num 5
    Received message 5 from SERVER2
    I (SERVER2) sent message num 6
    Received message 6 from SERVER2
    I (SERVER2) sent message num 7
    Received message 7 from SERVER2
    I (SERVER2) sent message num 8
    Received message 8 from SERVER2
    I (SERVER2) sent message num 9
    Received message 9 from SERVER2
    I (SERVER2) sent message num 10
    Received message 10 from SERVER2
    I (SERVER2) sent message num 11
    Received message 11 from SERVER2
    I (SERVER2) sent message num 12
    Received message 12 from SERVER2
    Weblogic.XML descriptor
    <session-descriptor>
              <session-param>
                   <param-name>PersistentStoreType</param-name>
                   <param-value>replicated</param-value>
              </session-param>
    </session-descriptor>
    CODE of the Servlet
    HttpSession session = request.getSession();
              String sessionIdentif = (String)session.getAttribute("SESSIONIDENTIF");
              boolean boolNewSession = true;
              if(sessionIdentif == null) {
                   session.setAttribute("SESSIONIDENTIF", "1234567890");
              } else
                   boolNewSession = false;
    As you can see the object that i put in session is a String, so Serializable....
    All the requirements are validated (i think...) but it still not working ... i get the SESSION ID : WvHQMKzBh9T35BPhGJxyhQtGks5Q3qJmxnJwGn8mn7V24FM92cnh!949557342! NONE !1284141857480
    And the NONE said that the session isn´t replicated.
    Any idea what´s wrong with my try of getting http session replication working??
    cheers,

    Hi,
    Thanks for your help.
    I´ve tried your application with your proxy application but still no work...
    I´m getting :
    ####<13/Set/2010 15H59m BST> <Debug> <Replication> <DST01VS51> <VIACTT2> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1284389948055> <000000> <Creating primary 1678977133045201960>
    ####<13/Set/2010 15H59m BST> <Debug> <ReplicationDetails> <DST01VS51> <VIACTT2> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1284389948055> <000000> <Unable to create secondary for 1678977133045201960 on null>
    ####<13/Set/2010 15H59m BST> <Debug> <ReplicationDetails> <DST01VS51> <VIACTT2> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1284389948181> <000000> <Unable to create secondary for 1678977133045201960 on null>
    In my early post i forgot to mention that i´m using an Apache 2.2 in the front-end with Weblogic 9.2 (cluster).
    What is happening in this weblogic configuration so that this session replication don´t work.
    cheers,

  • Flex session replication among cluster Help needed!

    Hi,
    I'am using Flex 3, LiceCycle Data Service 2.5.1, JBoss 4.2.1 in a web application. Our JBoss servers are in a cluster. We want to replicate Flex session among cluster, but it doesn't work. Did someone face issue with Flex session replication among application servers?
    Thank you for your help
    Gerard

    Gerard,<br /><br />You will need to cluster the LCDS 2.5.1 instances the same way you clustered <br />JBoss.<br /><br />Check out the "Configuring Data Services" chapter in the Admin guide:<br />http://livedocs.adobe.com/livecycle/es/sdkHelp/programmer/lcds/services_config_4.html<b r /><br />--<br />Tom Jordahl<br />Adobe<br /><br /><br /><[email protected]> wrote<br />> Hi,<br />><br />> I'am using Flex 3, LiceCycle Data Service 2.5.1, JBoss 4.2.1 in a web <br />> application. Our JBoss servers are in a cluster. We want to replicate Flex <br />> session among cluster, but it doesn't work. Did someone face issue with <br />> Flex session replication among application servers?<br />> Thank you for your help<br />><br />> Gerard

  • Weblogic 7.0 sp1 cluster - session replication problem

    Hi,
              I have installed Weblogic 7.0 sp2 on Win NT. To test clustering
              feature, I have installed one admin server and added two managed
              servers. All are running on same box. I could deploy web application
              to the cluster. Connection pools and every other resource is working
              well with the cluster. However I couldn't get session replication to
              work. I have modified web app descriptor, and set 'persistent store
              type' to "replicated".
              I accessed application from one managed server, in the middle of
              session I modified the port number in the URL to point to other
              managed server. It looks like second managed server has no idea of
              that session, my app fails because of this.
              Could you please help me out in this, Do I need to do any thing in
              addition to the above. I couldn't find much in the BEA manual..
              Thanks
              Rao
              

              For Web application like servlets/JSP, it is better to put one web server as proxy
              plugin before your two managed servers and access your application through web
              proxy. (You need set session as in-memory replicated either in weblogic.xml or
              by console editor). Otherwise, you need record the session cookie from the first
              serevr and send the cookie to the second server (not sure if it works). To access
              EJB/JMS, use cluster URL like t3://server1:port1,server2:port2.
              [email protected] (Rao) wrote:
              >Hi,
              >
              >I have installed Weblogic 7.0 sp2 on Win NT. To test clustering
              >feature, I have installed one admin server and added two managed
              >servers. All are running on same box. I could deploy web application
              >to the cluster. Connection pools and every other resource is working
              >well with the cluster. However I couldn't get session replication to
              >work. I have modified web app descriptor, and set 'persistent store
              >type' to "replicated".
              >
              >I accessed application from one managed server, in the middle of
              >session I modified the port number in the URL to point to other
              >managed server. It looks like second managed server has no idea of
              >that session, my app fails because of this.
              >
              >
              >Could you please help me out in this, Do I need to do any thing in
              >addition to the above. I couldn't find much in the BEA manual..
              >
              >
              >Thanks
              >Rao
              

  • Using UMS on a Glassfish cluster - how to support session replication ?

    Hello,
    I have deployed the imqums.war in a Glassfish cluster but can not use the session replication.
    The UMS uses sid as client session identifier. If the client session is is created on node 1, when the call hits the node 2 it gets:
    com.sun.messaging.ums.service.UMSServiceException: javax.jms.JMSException: sid is not authenticated. Use login to get a new sid, expired/invalid sid=4-LTE2NTA5ODMzMTU=
    at com.sun.messaging.ums.service.ClientPool.getClient(ClientPool.java:157)
    at com.sun.messaging.ums.service.SendServiceImpl.commit(SendServiceImpl.java:244)
    at com.sun.messaging.ums.service.UMSServiceImpl.commit(UMSServiceImpl.java:234)
    at com.sun.messaging.ums.core.UMSServlet.doSimpleMessaging(UMSServlet.java:786)
    at com.sun.messaging.ums.core.UMSServlet.doPost(UMSServlet.java:633)
    Can you provide advise how to obtain session replication for UMS calls ?
    Thank you,
    Cristina

    There is an example here,
    http://wiki.eclipse.org/EclipseLink/Examples/JPA/CacheCoordination
    It was run on WebLogic but should be runnable on Glassfish without too much effort. (if you port it, please submit your changes to the wiki or bugzilla).

  • Cluster session replication

    Hi,
    CFMX 7.01 MULTISERVER:
    I am facing a problem, session are not replicating on two CF
    instances on same server. Below is Jrun log file error detail
    30/05 17:18:10 error Setup of session replication failed.
    [1]java.rmi.RemoteException: The web application
    'cfusion.ear#cfusion.war' could not be found to accept sessions for
    replication.
    at
    jrun.servlet.session.SessionReplicationService.replicate(SessionReplicationService.java:8 0)
    at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown
    Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
    Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
    at sun.rmi.transport.Transport$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native
    Method)
    at sun.rmi.transport.Transport.serviceCall(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown
    Source)
    at
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown
    Source)
    at java.lang.Thread.run(Unknown Source)
    CFMX 7.01 MULTISERVER:
    My set-up, installed as multiserver. create new instance from
    CF Admin. Cluster them from Jrun Admin. I followed almost all
    instructions from live doc, and also help from other blogs.
    So far i could not findout why session can not replicate on
    same machine.
    Is any body have idea about above error.
    Thanks for your help in-advance

    In my config.xml, I have:
    <cluster>
    <name>MyCluster</name>
    <cluster-address/>
    <default-load-algorithm>round-robin</default-load-algorithm>
    <cluster-messaging-mode>unicast</cluster-messaging-mode>
    <frontend-host>192.168.6.6</frontend-host>
    <frontend-http-port>80</frontend-http-port>
    <frontend-https-port>443</frontend-https-port>
    </cluster>
    I already posted my weblogic.xml

  • Http session replication fails in cluster

    Hello everybody.
    I have some problems with HTTP session replication in WebLlogic cluster environment. I have a cluster with 2 nodes and application deployed there. Application is configured with:
    <session-param>
    <param-name>PersistentStoreType</param-name>
    <param-value>replicated</param-value>
    </session-param>
    in weblogic.xml
    WebLogic plug-in for Apache webserver is configured properly as described in documentation.
    But when I try to make experiment to enter the application, make some activities, look in console where I was redirected by apache proxy and manually shut down the node where request was sent, I loose my HTTP session with all data there (all the beans stored in session are Serializable). Replication doesn't work correctly. May be I've missed something in configuration? How can I configure my application to provide correctness session replication?
    Thanks for advice.
    Thanks

    Thanks for response!
    I'm using WebLogic 8.1 SP 4 and configured Apache proxy as described in documentation for load balancing. The only section I have in httpd.conf is next:
    <Location /HTTPClnt>
         SetHandler weblogic-handler
    </Location>
    <IfModule mod_weblogic.c> 
         WebLogicCluster serv1:7541,serv2:7541
         MatchExpression *.*
         Debug ON 
         WLLogFile /www/tmp/global_proxy.log  
         WLTempDir "/www/tmp" 
         DebugConfigInfo On 
         KeepAliveEnabled ON 
         KeepAliveSecs  15
    </IfModule>
    <Location /myApp> 
         SetHandler weblogic-handler
         WebLogicCluster serv1:7541,serv2:7541
    </Location>and the string to include weblogic proxy module for apache:
    LoadModule weblogic_module     modules/mod_wl_20.soI've configured CookiesEnabled=true in weblogic.xml, but it didn't help. About session specification in httpd.conf - where can I read about that? I've just configured apache according to manual from here:
    [url http://e-docs.bea.com/wls/docs92/plugins/apache.html]http://e-docs.bea.com/wls/docs92/plugins/apache.html
    Thanks

  • WS7 cluster session replication

    Now that my WS7 cluster is up and running, I'm attempting to deploy a simple JSF webapp that incorporates session replication between the nodes in my cluster.
    I've followed the instructions in the WS7 admin guide to enable session replication, and I've added the following to my sun-web.xml deployment descriptor:
      <session-config>
        <session-manager persistence-type="replicated"/>
      </session-config>The first problem I discovered was that my JSF managed bean was not serializable, so I fixed that. Now, however, when I load the initial page in my app, I am getting an NPE that looks like it is coming from within the WS7 session replication code:
    [23/Dec/2009:08:46:51] warning ( 3692): for host 172.16.2.47 trying to GET /sessionTest/index.jsf while trying to GET /sessionTest/, service-j2ee reports: executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@2de69e99) threw exception
    javax.faces.FacesException
            at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:135)
            at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
            at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
            at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:255)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
            at com.sun.web.replication.session.SessionLockingStandardPipeline.invoke(SessionLockingStandardPipeline.java:71)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
            at com.sun.webserver.connector.nsapi.NSAPIProcessor.service(NSAPIProcessor.java:160)
    Caused by: ClientAbortException:  java.io.IOException: WEB8001: Write failed
            at org.apache.coyote.tomcat5.OutputBuffer.realWriteBytes(OutputBuffer.java:385)
            at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:404)
            at org.apache.coyote.tomcat5.OutputBuffer.doFlush(OutputBuffer.java:334)
            at org.apache.coyote.tomcat5.OutputBuffer.flush(OutputBuffer.java:313)
            at org.apache.coyote.tomcat5.CoyoteResponse.flushBuffer(CoyoteResponse.java:622)
            at com.sun.webserver.connector.nsapi.NSAPIResponse.flushBuffer(NSAPIResponse.java:127)
            at org.apache.coyote.tomcat5.CoyoteResponseFacade.flushBuffer(CoyoteResponseFacade.java:291)
            at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:203)
            at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
            ... 14 more
    Caused by: java.io.IOException: WEB8001: Write failed
            at com.sun.webserver.connector.nsapi.NSAPIResponseStream.doWrite(NSAPIResponseStream.java:61)
            at org.apache.coyote.Response.doWrite(Response.java:575)
            at org.apache.coyote.tomcat5.OutputBuffer.realWriteBytes(OutputBuffer.java:380)
            ... 22 more
    [23/Dec/2009:08:46:51] warning ( 3692): for host 172.16.2.47 trying to GET /sessionTest/index.jsf while trying to GET /sessionTest/, service-j2ee reports: REPL0080: Received exception while reading session from store [{0}]
    java.lang.NullPointerException
            at com.sun.web.replication.session.LWSFPersistentManager.doRead(LWSFPersistentManager.java:162)
            at com.sun.web.replication.session.LWSFValve.invoke(LWSFValve.java:31)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
            at com.sun.web.replication.session.SessionLockingStandardPipeline.invoke(SessionLockingStandardPipeline.java:71)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
            at com.sun.webserver.connector.nsapi.NSAPIProcessor.service(NSAPIProcessor.java:160)I thought that perhaps once the session was created, I would stop seeing this error. It isn't exactly the same, but I am still seeing an NPE even after the session has been created:
    [23/Dec/2009:08:47:33] warning ( 3692): for host 172.16.2.47 trying to POST /sessionTest/index.jsf, service-j2ee reports: REPL0080: Received exception while reading session from store [{0}]
    java.lang.NullPointerException
            at com.sun.web.replication.session.LWSFPersistentManager.doRead(LWSFPersistentManager.java:162)
            at com.sun.web.replication.session.LWSFValve.invoke(LWSFValve.java:31)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
            at com.sun.web.replication.session.SessionLockingStandardPipeline.invoke(SessionLockingStandardPipeline.java:71)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
            at com.sun.webserver.connector.nsapi.NSAPIProcessor.service(NSAPIProcessor.java:160)Any idea what's going wrong? Is it something I've done?
    I can give you the code for my webapp if you need it.
    Thanks,
    Bill

    1. First try deploying your application without having this parameter, This is need only when you need session replication at web application level not at web server level..
    2. Try with this option as well:
    <sun-web-app>
              <session-config>
    <session-manager persistence-type="replicated">
    </session-manager>
    </session-config>
    </sun-web-app>

  • Sun java System Web Server 7.0 up2 session replication setting

    hi ....
    Following the standard example of reverse proxy and 2 cluster nodes with session replication
    I get the following starting message
    info ( 3355): CORE5076: Using [Java HotSpot(TM) Server VM, Version 1.5.0_12] from [Sun Microsystems Inc.]
    [07/Aug/2008:15:26:45] warning ( 3355): REPL0081: No backup instance configured for replication service. Disabling replication service
    [07/Aug/2008:15:26:47] info ( 3355): WEB0100: Loading web module in virtual server [mycluster8087] at [myweb]
    [07/Aug/2008:15:26:48] warning ( 3355): WEB9200: sun-web.xml DTD Version with public ID = [-//Sun Microsystems, Inc.//DTD Application Server 8.1 Servlet 2.5//EN] and system ID = [http://www.sun.com/software/appserver/dtds/sun-web-app_2_4-1.dtd] not found in the local respository. Using DTD version with system ID = [http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd] instead.
    [07/Aug/2008:15:26:48] warning ( 3355): WEB7204: Application [myweb] is configured with persistence-type [replicated] but Session Replication is not enabled on this instance; falling back to persistence-type [memory]
    [07/Aug/2008:15:26:49] info ( 3355): PWC3031: Security role name tomcat used in an <auth-constraint> without being defined in a <security-role> in context [myweb]
    [07/Aug/2008:15:26:49] info ( 3355): PWC3031: Security role name role1 used in an <auth-constraint> without being defined in a <security-role> in context [myweb]
    [07/Aug/2008:15:26:49] info ( 3355): HTTP3072: http-listener-1: http://mycluster8087:8087 ready to accept requests
    [07/Aug/2008:15:26:49] info ( 3355): CORE3274: successful server startup
    [07/Aug/2008:15:27:37] info ( 3355): CORE5073: Web server shutdown in progress
    ********** sun-web.xml ***************
    <!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server
    8.1 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_4
    -1.dtd">
    <sun-web-app>
    <session-config>
    <session-manager persistence-type="replicated"/>
    </session-config>
    </sun-web-app>
    ** path : dir-root/https-[instance-name]/web-app/[instance-name]/myweb/WEB-INF/sun-web.xml setting ...
    Why is it a case a session replication doing not become?
    Is it a case one a mistake by a setting?

    Try this blog [http://blogs.sun.com/nsegura/entry/h2_session_replication_and_lightweight|http://blogs.sun.com/nsegura/entry/h2_session_replication_and_lightweight]
    4. Enabling Session Replication
    Now that we deployed our web application, we need to enable the session replication feature in the configuration. This will start the session replication services in each instance. We can do this using the CLI administration:
    wadm> set-session-replication-prop --config=mycluster enabled=true
    CLI201 Command 'set-session-replication-prop' ran successfully
    wadm> deploy-config mycluster
    CLI201 Command 'deploy-config' ran successfully

  • Failover is work, but Session replication doesn't work!

    Dear all,
              My Cluster can failover, but can't session replicate....
              I start up the 2 WLS 6.0 and the Web Server, then I visit
              http://web_server_ip/myWebApp/SessionServlet serveral times, then the
              counter variable in the session raise up, then I down the "target" WLS, then
              I try http://web_server_ip/myWebApp/SessionServlet now, I can call but the
              counter restart.... so the session seems not yet replicated. what I can
              do...?!
              My Setup: I setup a Netscape Web Server 3.6.3 as the proxy using libproxy.so
              with the cluster setting, and use 2 WLS 6.0 (both are running in 7001,7002)
              as the Application Server Cluster (WLCluster). one WLS is on Unix Machine
              and the other in on a NT. I set the 2 WLSs: the Primary Group is
              "WL_rep_group1", and set the secondary is "WL_rep_group2".
              Deployment: I deploy the application "myWebApp" (.war) on the servers unix
              and nt, adn also deploy to the cluster WLCluster.
              I deploy the examplesWebApp to my created domain "demo", and modify the
              weblogic.xml:
              <weblogic-web-app>
              <session-descriptor>
              <session-param>
              <param-name>PersistentStoreType</param-name>
              <param-value>replicated</param-value>
              </session-param>
              </session-descriptor>
              <jsp-descriptor>
              <jsp-param>
              <param-name>
              pageCheckSeconds
              </param-name>
              <param-value>
              1
              </param-value>
              </jsp-param>
              <jsp-param>
              <param-name>
              verbose
              </param-name>
              <param-value>
              true
              </param-value>
              </jsp-param>
              </jsp-descriptor>
              </weblogic-web-app>
              so ... anything I did wrong, so the WLS can't do Session replication??!!
              Please Help or Comment!
              Thanks in advance!
              with thanks,
              Alex Wong
              

    Dear Vinod and Kevin,
              Some more information that I think it may help.
              First, I want to correct 1 point in my previous message, the Replication
              Group is "WLRepGroup1" and the Preferred Secondary Group is "WLRepGroup2"
              for the 2 machine WLSs.
              Second, I found that the Multicast Communication is not functioning becoz
              the switch of my office block the 224.0.0.1's communication, so now I added
              a hub for this 2 machine, as a result the multicast is wokring... at least
              pass the java utils.MulticastTest....
              Thrid, after the mutlicast work, I try the SessionServlet, it is working at
              beginning... but after some more clicks, one server will cause the following
              error (this time crash on x.y.z.b--NT machine)....
              -------- (a long list, the IPs are replaced: x.y.z.a UNIX machine, x.y.z.b
              NT machine, x.y.z.c My PC)
              Screen caption on demo>Servers>wlserver2 (monitoring> cluster)
              Unexpected Error
              Connected to x.y.z.a:7001 Active Domain: demo Jun 11, 2001 5:06:23 PM
              GMT+08:00
              An unexpected error was encountered in processing your request.
              Exception
              java.lang.NullPointerException
              <>
              Current Date
              Mon Jun 11 17:06:23 GMT+08:00 2001
              Console Release Build
              6.0 Service Pack 2
              Console Build
              6.0 Service Pack 2 05/24/2001 11:55:28 #117037
              Server Release Build
              6.0 Service Pack 2
              Server Build
              6.0 Service Pack 2 05/24/2001 11:55:28 #117037
              All Server Product Versions
              WebLogic Server Build: 6.0 Service Pack 2 05/24/2001 11:55:28 #117037
              WebLogic XML Module: 6.0 Service Pack 2 05/24/2001 12:34:27 #117037
              Request Info
              Protocol: HTTP/1.1
              ServerName: x.y.z.a
              ServerPort: 7001
              Secure: false
              ContextPath: /console
              ServletPath: /panels/mbean/Server.jsp
              QueryString:
              mbean=demo%3AName%3Dwlserver2%2CType%3DServer
              PathInfo: null
              PathTranslated: null
              RequestURI: /console/panels/mbean/Server.jsp
              AuthType: null
              ContentType: null
              CharacterEncoding: null
              Locale: zh_TW
              Method: GET
              Session:
              weblogic.servlet.internal.session.MemorySessionData@661950
              RequestedSessionId:
              OyQxOz4LG0WnLjufYcZDkIGGXIVAhHNASdBLUs2seZnvoQ4RXekX/console
              RequestedSessionIdFromCookie: true
              RequestedSessionIdFromURL: false
              UserPrincipal: system
              RemoteUser: system
              RemoteAddr: x.y.z.c
              RemoteHost: x.y.z.c
              Parameters
              mbean = demo:Name=wlserver2,Type=Server
              Attributes
              console.original./console/panels/mbean/Server.jsp.ContextPath = /console
              console.original./console/panels/mbean/Server.jsp.Method = GET
              console.original./console/panels/mbean/Server.jsp.QueryString =
              mbean=demo%3AName%3Dwlserver2%2CType%3DServer
              console.original./console/panels/mbean/Server.jsp.RemoteUser = system
              console.original./console/panels/mbean/Server.jsp.RequestURI =
              /console/panels/mbean/Server.jsp
              console.original./console/panels/mbean/Server.jsp.ServletPath =
              /panels/mbean/Server.jsp
              console.preferences.ContextKey =
              /panels/mbean/Server.jsp
              javax.servlet.include.context_path = /console
              javax.servlet.include.request_uri =
              /console/common/requestinfo.jsp
              javax.servlet.include.servlet_path =
              /common/requestinfo.jsp
              javax.servlet.jsp.jspException =
              java.lang.NullPointerException
              weblogic.httpd.user = system
              weblogic.management.console.tags.ContentTag =
              java.lang.Object@545f89
              weblogic.management.console.tags.HeaderTag =
              java.lang.Object@4c5c6c
              weblogic.management.console.tags.TabbedDialogTag =
              java.lang.Object@7eafc
              Headers
              Accept = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
              Accept-Encoding = gzip, deflate
              Accept-Language = zh-tw
              Connection = Keep-Alive
              Cookie =
              JSESSIONID=OyQxOz4LG0WnLjufYcZDkIGGXIVAhHNASdBLUs2seZnvoQ4RXekX!143710744761
              7668081!-896735123!7001!7002!NONE
              Host = x.y.z.a:7001
              User-Agent = Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)
              BrowserInfo
              User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)
              IE: true
              Netscape: false
              Supported: true
              JavscriptHrefs: false
              TableCellClick: true
              DocumentReloadedOnResize: false
              DropdownStretchable: true
              CellSpacingBlank: false
              EmptyCellBlank: false
              ImgOnclickSupported: true
              TableBorderFancy: true
              PartialToWideTables: false
              Server System Properties
              bea.home = /u0/weblogic
              file.encoding = ISO8859-1
              file.encoding.pkg = sun.io
              file.separator = /
              java.awt.fonts =
              java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
              java.awt.printerjob = sun.awt.motif.PSPrinterJob
              java.class.path =
              /u0/weblogic/wlserver6.0:/u0/weblogic/wlserver6.0/lib/weblogic_sp.jar:/u0/we
              blogic/wlserver6.0/lib/weblogic.jar:/opt/oracle/product/8.1.6/jdbc/lib/class
              es12.zip
              java.class.version = 47.0
              java.ext.dirs = /u0/weblogic/jdk130/jre/lib/ext
              java.home = /u0/weblogic/jdk130/jre
              java.io.tmpdir = /var/tmp/
              java.library.path =
              /u0/weblogic/jdk130/jre/bin/../lib/sparc/hotspot:/u0/weblogic/jdk130/jre/bin
              /../lib/sparc::/lib:/usr/local/easysoft/oob/client:/usr/local/easysoft/lib:/
              u0/weblogic/wlserver6.0/lib/solaris:/u0/weblogic/wlserver6.0/lib/solaris/oci
              816_8:/usr/lib
              java.naming.factory.initial =
              weblogic.jndi.WLInitialContextFactory
              java.naming.factory.url.pkgs = weblogic.jndi.factories
              java.protocol.handler.pkgs =
              weblogic.utils|weblogic.utils|weblogic.net|weblogic.management|weblogic.net|
              weblogic.net|weblogic.utils
              java.runtime.name = Java(TM) 2 Runtime Environment,
              Standard Edition
              java.runtime.version = 1.3.0
              java.security.policy =
              =/u0/weblogic/wlserver6.0/lib/weblogic.policy
              java.specification.name = Java Platform API Specification
              java.specification.vendor = Sun Microsystems Inc.
              java.specification.version = 1.3
              java.vendor = Sun Microsystems Inc.
              java.vendor.url = http://java.sun.com/
              java.vendor.url.bug =
              http://java.sun.com/cgi-bin/bugreport.cgi
              java.version = 1.3.0
              java.vm.info = mixed mode
              java.vm.name = Java HotSpot(TM) Client VM
              java.vm.specification.name = Java Virtual Machine
              Specification
              java.vm.specification.vendor = Sun Microsystems Inc.
              java.vm.specification.version = 1.0
              java.vm.vendor = Sun Microsystems Inc.
              java.vm.version = 1.3.0
              javax.rmi.CORBA.PortableRemoteObjectClass =
              weblogic.iiop.PortableRemoteObjectDelegateImpl
              javax.rmi.CORBA.UtilClass = weblogic.iiop.UtilDelegateImpl
              javax.xml.parsers.DocumentBuilderFactory =
              weblogic.xml.jaxp.RegistryDocumentBuilderFactory
              javax.xml.parsers.SAXParserFactory =
              weblogic.xml.jaxp.RegistrySAXParserFactory
              jmx.implementation.name = JMX RI
              jmx.implementation.vendor = Sun Microsystems
              jmx.implementation.version = 1.0
              jmx.specification.name = Java Management Extensions
              jmx.specification.vendor = Sun Microsystems
              jmx.specification.version = 1.0 Final Release
              line.separator =
              os.arch = sparc
              os.name = SunOS
              os.version = 5.6
              path.separator = :
              sun.boot.class.path =
              /u0/weblogic/jdk130/jre/lib/rt.jar:/u0/weblogic/jdk130/jre/lib/i18n.jar:/u0/
              weblogic/jdk130/jre/lib/sunrsasign.jar:/u0/weblogic/jdk130/jre/classes
              sun.boot.library.path =
              /u0/weblogic/jdk130/jre/lib/sparc
              sun.cpu.endian = big
              sun.cpu.isalist = sparcv8plus+vis sparcv8plus
              sparcv8 sparcv8-fsmuld sparcv7 sparc
              sun.io.unicode.encoding = UnicodeBig
              user.dir = /u0/weblogic/wlserver6.0
              user.home = /
              user.language = en
              user.name = root
              user.region = US
              user.timezone = Asia/Hong_Kong
              weblogic.Domain = demo
              weblogic.Name = wlserver1
              weblogic.security.jaas.Configuration =
              weblogic.security.internal.ServerConfig
              weblogic.security.jaas.Policy =
              /u0/weblogic/wlserver6.0/lib/Server.policy
              ---------- End of the message -----------
              any comment?? is that I deploy on wlserver1, wlserver2, WLCluster cause
              error??!! anything I did wrong??!
              please help!! or Comment
              with thanks,
              Alex Wong
              "Alex Wong" <[email protected]> ¼¶¼g©ó¶l¥ó
              news:[email protected]...
              > Hi Vinod and Kevin,
              >
              > Thanks Vinod first, and after I try the session.getClass(), I get the
              > following output
              > class weblogic.servlet.internal.session.ReplicatedSessionData
              > I think that's means I am using "replicated" already, rite?!
              >
              > About the License, I cat the license.bea, there is a license to the
              > "In-memory Replication - Servlet" and "In-memory Replication - EJB",
              however
              > it is a eval license but seems not yet expired, so I don't think that is
              the
              > problem, rite?
              >
              > And a quick question, you tell me "your configuration looks ok" means the
              > H/W configuration, or the WLS configuration??!!
              > Maybe I tell you more about my WLS configuration, so that, you can
              > determinate where I go wrong. (thanks)
              >
              >
              > Vinod and Kevin
              > (Kevin, I am Alex Wong from ASL, if you have any comment, you can simply
              > reply my personal email, thx)
              >
              > Steps I did to create the domain, WLS and Cluster and deploy the .war
              > --- on Unix ---
              > I create a demo domain and wlserver1 using port 7001 and 7002 by the
              > installation program (ip x.y.z.a)
              > --- on NT ---
              > I create a demo domain and wlserver2 using port 7001 and 7002 by the
              > installation program (ip x.y.z.b)
              >
              > --- on Unix ---
              > start the wlserver1 with startWebLogic.sh
              >
              > --- My PC ---
              > go http://x.y.z.a:7001/console
              >
              > create one more server named "wlserver2" using port 7001 and 7002
              > create the cluster named "WLCluster" and fill the the cluster ip
              > "x.y.z.a:7001,x.y.z.b:7001"
              > fill the multi-cast ip 224.0.0.1
              > add the "wlserver1" and "wlserver2" to the "WLCluster"
              > stop the unix WLS
              > start the unix WLS with startWebLogic.sh
              >
              > --- on NT ---
              > start the WLS with startManagedWebLogic.sh wlserver2 http://x.y.z.a:7001
              >
              > --- on Unix ---
              > install the NES 3.6.3 and create a WEB server instance and modify the
              > obj.conf
              >
              > DETAIL
              > ----- start of the obj.conf -----
              > Init fn="load-modules" funcs="wl-proxy,wl-init"
              > shlib="/opt/nes/plugins/weblogic/libproxy.so"
              > Init fn="wl-init"
              > .
              > .
              > .
              > <Object name="weblogic" ppath="*">
              > Service fn=wl-proxy \
              > WebLogicCluster="x.y.z.a:7001,x.y.z.b:7001"
              > </Object>
              >
              > <Object name=default>
              > *NameTrans ...
              > *NameTrans ...
              > *NameTrans ...
              > *NameTrans fn=document-root root="/opt/nes/docs"
              > Service method="(GET|HEAD|POST|PUT)" type=text/jsp fn=wl-proxy \
              > WebLogicCluster="x.y.z.a:7001,x.y.z.b:7001"
              > .
              > .
              > .
              > </Object>
              >
              > <Object name=cgi>
              > .
              > .
              > .
              > </Object>
              > ----- End of the obj.conf ----- (I suppose will redirect all HTTP request
              to
              > WLS from NES)
              >
              > --- My PC ---
              > go http://x.y.z.a:7001/console
              > assign the DefaultWebApp_wlserver1 to wlserver1
              > assign the DefaultWebApp_wlserver2 to wlserver2
              > assign the console the wlserver1 only
              > assign the certificate to wlserver1, wlserver2, WLCluster
              > go SERVER-wlserver1 assign "WLRepGroup1" to Replication Group and
              Preferred
              > Secondary Group
              > go SERVER-wlserver2 assign "WLRepGroup1" to Replication Group and
              Preferred
              > Secondary Group
              >
              > --- on Unix ---
              > go to ./config/examples/applications/examplesWebApp/WEB-INF
              > modify the weblogic.xml
              > go to ./config/examples/applications/examplesWebApp
              > jar cvf myWebApp.war *
              > copy the myWebApp.war to ./config/demo/applications/.
              > and ftp myWebApp.war ro (NT)./config/demo/applicaitons/.
              >
              > --- My PC ---
              > And then now, I can visit http://x.y.z.a:7001/console
              > now I can configuration the myWebApp.
              > assign the myWebApp to wlserver1,wlserver2,WLCluster
              >
              > --- on Unix ---
              > stop the WLS and start with startWebLogic.sh
              >
              > --- on NT ---
              > stop the WLS and start with startManagedWebLogic.sh wlserevr2
              > http://x.y.z.a:7001
              >
              > --- My PC ---
              > visit http://x.y.z.a/myWebApp/SessionServlet (this time no port 7001,
              becoz
              > I want to use the NES web server to proxy the HTTP request)
              >
              > Finally... I can failover the SessionServlet, SnoopServlet and all the
              other
              > html, jsp, servlet, but seems can't load-balancing and Session
              Persistence.
              >
              > Is that anything I did wrong, please comment!
              >
              >
              > with thanks,
              >
              > Alex Wong
              >
              >
              >
              > "Vinod Mehra" <[email protected]> ¼¶¼g©ó¶l¥ó
              > news:[email protected]...
              > > Your configuration looks ok but I guess somehow your clustering is not
              > setup
              > > properly. Check if all the servers are listeniong on the same port and
              > part
              > > of
              > > the same cluster. Also check if you have clustering license.
              > >
              > > Make sure your sessions are of type : "replicated". For that print
              > > the value of session.getClass(), the name will give you an idea. Check
              > > your logs if you got any error message.
              > >
              > > --Vinod.
              > >
              > >
              > > "Alex Wong" <[email protected]> wrote in message
              > > news:[email protected]...
              > > > Dear all,
              > > >
              > > > My Cluster can failover, but can't session replicate....
              > > >
              > > > I start up the 2 WLS 6.0 and the Web Server, then I visit
              > > > http://web_server_ip/myWebApp/SessionServlet serveral times, then the
              > > > counter variable in the session raise up, then I down the "target"
              WLS,
              > > then
              > > > I try http://web_server_ip/myWebApp/SessionServlet now, I can call but
              > the
              > > > counter restart.... so the session seems not yet replicated. what I
              can
              > > > do...?!
              > > >
              > > > My Setup: I setup a Netscape Web Server 3.6.3 as the proxy using
              > > libproxy.so
              > > > with the cluster setting, and use 2 WLS 6.0 (both are running in
              > > 7001,7002)
              > > > as the Application Server Cluster (WLCluster). one WLS is on Unix
              > Machine
              > > > and the other in on a NT. I set the 2 WLSs: the Primary Group is
              > > > "WL_rep_group1", and set the secondary is "WL_rep_group2".
              > > >
              > > > Deployment: I deploy the application "myWebApp" (.war) on the servers
              > unix
              > > > and nt, adn also deploy to the cluster WLCluster.
              > > >
              > > > I deploy the examplesWebApp to my created domain "demo", and modify
              the
              > > > weblogic.xml:
              > > > -------------------
              > > > <weblogic-web-app>
              > > >
              > > > <session-descriptor>
              > > > <session-param>
              > > > <param-name>PersistentStoreType</param-name>
              > > > <param-value>replicated</param-value>
              > > > </session-param>
              > > > </session-descriptor>
              > > >
              > > > <jsp-descriptor>
              > > > <jsp-param>
              > > > <param-name>
              > > > pageCheckSeconds
              > > > </param-name>
              > > > <param-value>
              > > > 1
              > > > </param-value>
              > > > </jsp-param>
              > > > <jsp-param>
              > > > <param-name>
              > > > verbose
              > > > </param-name>
              > > > <param-value>
              > > > true
              > > > </param-value>
              > > > </jsp-param>
              > > > </jsp-descriptor>
              > > >
              > > > </weblogic-web-app>
              > > > ---------------------
              > > >
              > > > so ... anything I did wrong, so the WLS can't do Session
              replication??!!
              > > >
              > > >
              > > > Please Help or Comment!
              > > >
              > > > Thanks in advance!
              > > >
              > > > with thanks,
              > > >
              > > > Alex Wong
              > > >
              > > >
              > > >
              > > >
              > > >
              > > >
              > > >
              > > >
              > > >
              > >
              > >
              >
              >
              

  • Apache + 2 Tomcats session replication problem.

    Greetings everyone.
    Before stating the problem, let me explain how my environment is set.
    I have two machines. One (PC1) running Apache (HTTP server 2.0.58)
    and one instance of Tomcat (5.0.28) and another machine (PC2) with
    another instance of Tomcat(5.0.28).
    The Apache server
    It is configured to handle static content, to redirect dynamic content to a
    Tomcat instance through AJP 1.3 connector.
    This process is done through the mod_jk and the workers.properties
    The workers.properties file is configured to have sticky_session = True
    so it assigns a SESSION_ID to the same Tomcat it was first assigned.
    The workers.properties file is configured to have
    sticky_session_force = True so if the Tomcat the SESSION_ID was
    assigned is not available, the server answers with a 500 error.
    The Tomcat servers
    Both have only the AJP 1.3 connector enabled
    Both have the Cluster tag from the server.xml file uncommented
    and the useDirtyFlag flag set to false, for not to allow SESSION
    replication between Tomcats.
    The workers.properties file
    workers.apache_log=C:/Apache2/logs
    workers.tomcat_home=C:/Tomcat5
    workers.java_home=C:/j2sdk1.4.2_13
    ps=/
    #Defining workers -----------------------------
    worker.list=balancer,jkstatus
    #Defining balancer ---------------------------
    worker.balancer.type=lb
    worker.balancer.balance_workers=tel1, tel2
    worker.balancer.sticky_session=True
    worker.balancer.sticky_session_force=True
    worker.balancer.method=B
    worker.balancer.lock=O
    #Defining status -----------------------------
    worker.jkstatus.type=status
    worker.jkstatus.css=/jk_status/StatusCSS.css
    #Workers properties ---------------------------
    worker.tel1.type=ajp13
    worker.tel1.port=8009
    worker.tel1.host=127.0.0.1
    worker.tel1.lbfactor=1
    worker.tel1.socket_keepalive=False
    worker.tel1.socket_timeout=30
    worker.tel1.retries=20
    worker.tel1.connection_pool_timeout = 20
    #worker.tel1.redirect=tel2
    worker.tel1.disabled=False
    worker.tel2.type=ajp13
    worker.tel2.port=8009
    worker.tel2.host=199.147.52.181
    worker.tel2.lbfactor=1
    worker.tel2.socket_keepalive=False
    worker.tel2.socket_timeout=30
    worker.tel2.retries=20
    worker.tel2.connection_pool_timeout = 20
    #worker.tel2.redirect=tel1
    worker.tel2.disabled=False
    THE PROBLEM
    I open a browser in the jk-status page to see how the Tomcat instances are
    working, and both are working fine: Stat -> OK, now as the
    loadbalancing factor is 1 on both Tomcats, an even alternating session
    distribution is set.
    While this browser is open to keep an eye on the status, I open a new
    browser (B1)to connect to my Web Application, Apache answers
    correctly and gives me a SESSION_ID for Tomcat instance 1 [both
    instances are OK], if I make a simple refresh, my SESSION_ID is still the
    same so I'm assigned to Tomcat instance 1 but this time I get an
    ERROR 503 - Service unavailable but looking at the status of the
    Tomcat instances both instances are still OK, no-one is down. And it
    stays throwing this error for as many refreshes i do.
    Now, I open a new browser (B2)and do the same process as before,
    as expected, Apache now gives me a SESSION_ID for Tomcat instance 2,
    repeating the same refreshing process, the error is thrown again, but still at
    the jk-status page, both instances are fine.
    Without closing these windows, I make a new refresh try on B1 and
    even though the jk-status says both Tomcat instances are OK, the error
    is still thrown. I open a third one (B3), and Apache again, correctly
    gives me a new SESSION_ID for Tomcat instance 1 and answers
    correctly on the first call. But once again if i repeat the refreshing process, the
    error is thrown again.
    Note: Using a different resolution to always keep and eye on the
    instances status and using a refresh rate of 1 second for status, both
    servers always were OK.
    So the main problem is that somehow when the session is replicated
    to the same tomcat, Apache confuses and thinks it is not available, when
    asking it through the jk-status it tells it is OK
    I've been trying different configurations with both Apache and Tomcat,
    but there must be something missing since I don't get it to work correctly
    Thanks in advance for all your helping comments.
    - @alphazygma

    Whew... that was quite an answer... definitely is going to help him a lot. Yeah any n00b by now should know how to use google, but that's not the point in this forums, here we are to help each other. and wether you like it or not many of us deploy applications to tomcat and stumble on this. So dont try to be cool posting this kind of answers like google this or google that if you dont have an answer please dont comment you will appear to be more noobish than you aparently are.
    Well enough talking.
    I found the following useful: (it comes in the server.xml of the tomcat configuration)
    <!-- You should set jvmRoute to support load-balancing via JK/JK2 ie :
    <Engine name="Standalone" defaultHost="localhost" debug="0" jvmRoute="jvm1">
    -->
    Enabling that entry on both machines should be enough.
    Aparently the problem is not with apache. is with tomcat since it can't retain the session apache gives.
    more information in the Tomcat help at:
    http://tomcat.apache.org/tomcat-5.0-doc/balancer-howto.html#Using%20Apache%202%20with%20mod_proxy%20and%20mod_rewrite

  • Does replication group have to be set for session replication

    I have delployed an servlet based application on a 3 node cluster. I have a simple POJO that I use to carry data in the session from a "confirm?" to "confirmed" page. This object implements serializable and only has String and int members. I put it in session using request.getSession().setAttribute("dto", myobject). For some reason it is not being replicated to the other nodes in the cluster. My weblogic.xml has "PersistentStoreType" set to "replicated_if_clustered". I am not seeing any serialization or other errors in the node logs.
              I have looked at information contained in the link below and I think we are doing everything right. http://support.bea.com/application_content/product_portlets/support_patterns/wls/HTTP_Session_Replication_Failures_Pattern.html
              The only thing that I noticed is that the "Replication Group" is not set for any of the servers in the cluster. Does this need to be set for replication to happen?

    Hi,
              Having replication group is optional. It is used only if you are implementing failover in cluster. For session replication one has to generally configure 3 things:
              - in memory replication
              - jdbc replication
              - file sytem replication
              for im memory replication,
              Step 1:
              make sure taht a client is accesing the cluseter using either
              - load balancing hardware
              - web servers with weblogic proxy plugin
              Step 2:
              specify the persistance type in weblogic.xml
              Thanks,
              Sushma

  • Session replication at every http request

    Hi everybody
    I'm trying to use ZKoss Framework (www.zkoss.org) to develop a
    web application and deploy it in a Clustered WebLogic Server.
    The main issue I'm facing is that the "state" of the visual interface
    is stored inside the http session, and so, when node that handle
    the http request changes, the state is resetted and then the page changes,
    even if there was no user intervention.
    So I need to replicate the whole session at every http request,
    to prevent strange behaviours when the request handler node's changes.
    Do you know some settings that will force WebLogic Server to replicate the whole
    session at every http request?
    Thanks in advance.
    bye.

    Hi Marco,
    Yes, You are right But You NEED NOT to put setAttribute("key","value")...code in all your JSPs. because if the Attribute data of Session is changed then Automatically it will be replicated (only the Changed Data and not the Data which is unchanged). Even we need not to worry about replicating the Unchanged Data Again...And WebLogic will take care of ChangedData by itself. There is no other alternate solution available in weblogic to do this...Even no such similar Element available in Deployment descriptors as well.
    Actual Link is Broken http://download-llnw.oracle.com/docs/cd/E13222_01/wls/docs90/cluster/failover.html
    Any way i am copy-pasting few Lines from E-Docs (the actual link i am not able to find ..but may be u can open the cached page:
    http://74.125.153.132/search?q=cache:bxTbqJEsQTsJ:download-llnw.oracle.com/docs/cd/E13222_01/wls/docs90/cluster/failover.html+setAttribute+Session+replication+weblogic&cd=6&hl=en&ct=clnk&gl=in
    ---------------------------If you are not able to open the link then please refer to the E-Docs copy-paste content below --------------------------
    Programming Considerations for Clustered Servlets and JSPs
    This section highlights key programming constraints and recommendations for servlets and JSPs that you will deploy in a clustered environment.
    Session Data Must Be Serializable
    To support in-memory replication of HTTP session states, all servlet and JSP session data must be serializable.
    Note:     Serialization is the process of converting a complex data structure, such as a parallel arrangement of data (in which a number of bits are transmitted at a time along parallel channels) into a serial form (in which one bit at a time is transmitted); a serial interface provides this conversion to enable data transmission.
    Every field in an object must be serializable or transient in order for the object to be considered serializable. If the servlet or JSP uses a combination of serializable and non-serializable objects, WebLogic Server does not replicate the session state of the non-serializable objects.
    Use setAttribute to Change Session State
    In an HTTP servlet that implements javax.servlet.http.HttpSession, use HttpSession.setAttribute (which replaces the deprecated putValue) to change attributes in a session object. If you set attributes in a session object with setAttribute, the object and its attributes are replicated in a cluster using in-memory replication. If you use other set methods to change objects within a session, WebLogic Server does not replicate those changes. Every time a change is made to an object that is in the session, setAttribute() should be called to update that object across the cluster.
    Likewise, use removeAttribute (which, in turn, replaces the deprecated removeValue) to remove an attribute from a session object.
    Note:     Use of the deprecated putValue and removeValue methods will also cause session attributes to be replicated.     
    Thanks
    Jay SenSharma
    Edited by: Jay SenSharma on Feb 11, 2010 10:24 PM
    Edited by: Jay SenSharma on Feb 11, 2010 10:26 PM

  • Remote handle caching error when using HTTP session replication

              Using WL 7.0 Sp2 on Solaris, deployed apllication on a 2 instance wide cluster.Code
              attached -
              unzip testapp.zip to find a test.jar which is the stateless sesion ejb and test.war
              which is the applicaiton.
              I have this class - TestDelegate that looks up a stateless session EJB(TestEJB),
              and puts the remote handle as a member variable(Test bean).Test.jsp instantiates
              this delegate(TestDelegate ), and then via setAttribute puts the TestDelegate
              in the HTTPSession.Then it calls a couple of methods via the TestDelegate which
              has the remote handle of the TestEJB.
              Scenario 1 : We deploy the WAR on cluster A which is 2 instance wide,we deploy
              the TestEJB on
              cluster B, which is also 2 instance wide. All works fine, the delegate is able
              to lookup EJB and
              can add the remote handle as a member variable.
              Scenario 2: We deploy the WAR on cluster A which is 2 instance wide,we deploy
              the TestEJB on
              cluster B, which is also 2 instance wide. This time we put a weblogic.xml in the
              WAR which has tag for in-memory session replication.This time we get class cast
              exception for the same sequence that we have above.
              <Mar 24, 2003 10:43:28 AM EST> <Error> <kernel> <000802> <ExecuteRequest failed
              java.lang.ClassCastException: Assigning instance of class com.TestEJB_1jsmq_EOImpl_WLStub
              to field com.bean.TestDelegate#bean
              Start server side stack trace:
              java.lang.ClassCastException: Assigning instance of class com.TestEJB_1jsmq_EOImpl_WLStub
              to field com.bean.TestDelegate#bean
              at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2266)
              at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:514)
              at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1407)
              at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
              at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
              at java.util.Hashtable.readObject(Hashtable.java:794)
              at java.lang.reflect.Method.invoke(Native Method)
              at java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java:2209)
              at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1406)
              at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
              at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2258)
              at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:514)
              at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1407)
              at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
              at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
              at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:140)
              at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:91)
              at weblogic.cluster.replication.ReplicationManager_WLSkel.invoke(Unknown
              Source)
              at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)
              at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
              at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:821)
              at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)
              at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
              End server side stack trace
              [testapp.zip]
              

    To see the list of session IDs in the cache you can iterate over the keys of the cache returned from the following code:
    NamedCache cacheCatalog = CacheFactory.getReplicatedCacheService("$FilterService$").ensureCache("CoherenceSession.CATALOG", getClass().getClassLoader());Then to see the contents of a session you can take a look a the cache returned from the following code:
    String sId = // keys from cacheCatalog
    NamedCache cacheDetails = cacheCatalog.getCacheService().ensureCache(sId, getClass().getClassLoader());Hope this helps.
    We have received your request for a development license and we hould have ti out to you today.
    Later,
    Rob Misek
    Tangosol, Inc.
    Coherence: Cluster your Work. Work your Cluster.

Maybe you are looking for