1 2 Previous Next 15 Replies Latest reply: Dec 14, 2012 3:22 AM by 919404 RSS

    Session replication in Clustered Env with Apache proxy

    919404
      Hi,

      Setup:
      1. Apache proxy configured using mod_proxy
      2. Cluster is set up at weblogic with 2 nodes(on same machine)
      3. EAR is deployed on cluster with weblogic-application.xml as below

      <session-descriptor>
      <persistent-store-type>replicated_if_clustered</persistent-store-type>
      <sharing-enabled>true</sharing-enabled>
      </session-descriptor>

      use case:
      user1 hits the URL, Apache proxy forwards to node1
      user2 hits the URL, Apache proxy forwards to node2

      kill the node1 and user1 click on any link, he gets redirected to login page. No failover us happening.

      In Node 1 server logs am getting below exception

      ####<Dec 5, 2012 8:39:21 PM IST> <Error> <Cluster> <Win2k8SRV-01> <win2k8svr-ms1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1354720161810> <BEA-000126> <All session objects should be serializable to replicate. Check the objects in your session. Failed to replicate non-serializable object.
      java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
           java.lang.ClassNotFoundException: Failed to load class com.presentation.physical.management.form.ApprovalForm
           at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
           at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:223)
           at weblogic.cluster.replication.ReplicationManager_1035_WLStub.create(Unknown Source)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
           

      Strange thing i noticed is if comment the persistent-store-type attribute in xml file then apache is able to load balance the request between the nodes else all request goes to Node1( from apache logs). Below logs are captured with persistent-store-type set to replicated_if_clustered. Here the JSESSIONID points to server1(port 7003 which is appended to JSESSIONID).

      192.168.2.161 - - [05/Dec/2012:20:38:52 +0530] JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; path=/; HttpOnly Test=Test "GET /App/login.jsp?partnerApp=http://192.168.2.161:8080/login.do?method=login HTTP/1.1" 200 13384
      192.168.2.161 - - [05/Dec/2012:20:38:55 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1 "POST /App/AppEnv HTTP/1.1" 200 -
      192.168.2.161 - - [05/Dec/2012:20:39:14 +0530] APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc; path=/ Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1 "POST /App/login HTTP/1.1" 302 289
      192.168.1.220 - - [05/Dec/2012:20:39:14 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:14 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "GET /login.do?method=login HTTP/1.1" 200 2767
      192.168.1.220 - - [05/Dec/2012:20:39:20 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:20 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "GET /login.do?method=showCorporateLogo HTTP/1.1" 200 11547
      192.168.2.161 - - [05/Dec/2012:20:39:20 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /EkaCommonUtilServlet?method=getUserLocaleDate HTTP/1.1" 200 23
      192.168.1.220 - - [05/Dec/2012:20:39:20 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:20 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /login.do?method=getMenuData HTTP/1.1" 200 9615
      192.168.1.220 - - [05/Dec/2012:20:39:20 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:20 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /getUserModuleHomePage.do?method=loadUserHomePageDetails HTTP/1.1" 200 1264
      192.168.2.161 - - [05/Dec/2012:20:39:20 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /ListingHelperServlet?actionId=getUserPref&gridViewName=DEFAULT%20VIEW&gridId=LOC HTTP/1.1" 200 2228
      192.168.2.161 - - [05/Dec/2012:20:39:20 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /ListingHelperServlet?actionId=getUserPref&gridViewName=DEFAULT1%20VIEW&gridId=LOCA HTTP/1.1" 200 3775
      192.168.1.220 - - [05/Dec/2012:20:39:20 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:20 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /app/commonListing.do?method=getListingData&gridId=LOC HTTP/1.1" 302 309
      192.168.1.220 - - [05/Dec/2012:20:39:21 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:20 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /app/contractApprovalList.do?method=loadListOfContractApprovals HTTP/1.1" 302 309
      192.168.1.220 - - [05/Dec/2012:20:39:21 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:21 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "GET /private/jsp/AppErrorPage.jsp HTTP/1.1" 200 8042
      192.168.1.220 - - [05/Dec/2012:20:39:21 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:21 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "GET /private/jsp/AppErrorPage.jsp HTTP/1.1" 200 8042
      192.168.1.220 - - [05/Dec/2012:20:39:24 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:24 +0530] JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE; path=/; HttpOnly Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /app/gmcTabHandler.do?method=loadGMCTab&applyDefaultValue=Y&gridId=LOGPF&linkName=Grower_Profile&switchMenu=TabMenu17_1_1 HTTP/1.1" 200 47435
      192.168.1.220 - - [05/Dec/2012:20:39:24 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:24 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /getUserModuleHomePage.do?method=saveUserViewportPreference HTTP/1.1" 200 -
      192.168.2.161 - - [05/Dec/2012:20:39:25 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /EkaCommonUtilServlet?method=getUserLocaleDate HTTP/1.1" 200 23
      192.168.1.220 - - [05/Dec/2012:20:39:25 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.1.220 - - [05/Dec/2012:20:39:25 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:25 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /login.do?method=getMenuData HTTP/1.1" 200 9615
      192.168.2.161 - - [05/Dec/2012:20:39:25 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "GET /login.do?method=showCorporateLogo HTTP/1.1" 200 11547
      192.168.1.220 - - [05/Dec/2012:20:39:31 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:25 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /app/commonListing.do?method=getCommonListingPage&gridId=LOGPF&setupPage=Y&applyDefaultValue=Y HTTP/1.1" 200 51216
      192.168.1.220 - - [05/Dec/2012:20:39:31 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:31 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /commonListing.do?method=getUserViews HTTP/1.1" 200 49
      192.168.1.220 - - [05/Dec/2012:20:39:31 +0530] - JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE!1354720133917 "GET /App/validateSession?ssoSessionID=APP-728a8af1-ME5hYqMOkJCcIQc HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:39:31 +0530] - Test=Test; JSESSIONID=1XZxQ1jFxpMhLr8ZSyJdGWLk6Fn2yvWrmc3G6YZpyDBDSZQGQJTn!-1288095560!-1062731300!7003!-1!NONE; APP_SSO_COOKIE=APP-728a8af1-ME5hYqMOkJCcIQc "POST /app/growerProfile.do?method=loadGrowerProfileFilter&gridId=LOGPF HTTP/1.1" 200 46579
      192.168.2.161 - - [05/Dec/2012:20:40:04 +0530] - Test=Test; JSESSIONID=DMBQQ1QSQfh6HyCMH91P2wXJQVKDQr6hCklqJgbhyYlVdzNT6vQC!1022793105!-1062731300!7004!-1; App=App; App2=App2 "GET / HTTP/1.1" 302 397
      192.168.2.161 - - [05/Dec/2012:20:40:04 +0530] JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; path=/; HttpOnly Test=Test; JSESSIONID=DMBQQ1QSQfh6HyCMH91P2wXJQVKDQr6hCklqJgbhyYlVdzNT6vQC!1022793105!-1062731300!7004!-1; App=App; App2=App2 "GET /App/login.jsp?partnerApp=http://192.168.2.161:8080/login.do?method=login HTTP/1.1" 200 13384
      192.168.2.161 - - [05/Dec/2012:20:40:04 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/css/styles.css HTTP/1.1" 200 4988
      192.168.2.161 - - [05/Dec/2012:20:40:04 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/js/ext/resources/css/ext-all.css HTTP/1.1" 200 28527
      192.168.2.161 - - [05/Dec/2012:20:40:04 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/js/general/tooltip.js HTTP/1.1" 200 12408
      192.168.2.161 - - [05/Dec/2012:20:40:04 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /App/private/js/ForgotPassword.js HTTP/1.1" 200 6003
      192.168.2.161 - - [05/Dec/2012:20:40:04 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/js/general/AjaxRequest.js HTTP/1.1" 200 4434
      192.168.2.161 - - [05/Dec/2012:20:40:04 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/js/ext/adapter/ext/ext-base.js HTTP/1.1" 200 12483
      192.168.2.161 - - [05/Dec/2012:20:40:04 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/js/ext/ext-all.js HTTP/1.1" 200 186157
      192.168.2.161 - - [05/Dec/2012:20:40:05 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/images/login.gif HTTP/1.1" 200 427
      192.168.2.161 - - [05/Dec/2012:20:40:05 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/images/solutions.gif HTTP/1.1" 200 3492
      192.168.2.161 - - [05/Dec/2012:20:40:05 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/images/logo.gif HTTP/1.1" 200 1751
      192.168.2.161 - - [05/Dec/2012:20:40:05 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "POST /App/AppEnv HTTP/1.1" 200 -
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET / HTTP/1.1" 302 397
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /App/login.jsp?partnerApp=http://192.168.2.161:8080/login.do?method=login HTTP/1.1" 200 13384
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/css/styles.css HTTP/1.1" 200 4988
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/js/general/AjaxRequest.js HTTP/1.1" 200 4434
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/js/general/tooltip.js HTTP/1.1" 200 12408
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/js/ext/resources/css/ext-all.css HTTP/1.1" 200 28527
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /App/private/js/ForgotPassword.js HTTP/1.1" 200 6003
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/js/ext/adapter/ext/ext-base.js HTTP/1.1" 200 12483
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/js/ext/ext-all.js HTTP/1.1" 200 186157
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/images/login.gif HTTP/1.1" 200 427
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/images/logo.gif HTTP/1.1" 200 1751
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "GET /private/images/solutions.gif HTTP/1.1" 200 3492
      192.168.2.161 - - [05/Dec/2012:20:40:46 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "POST /App/AppEnv HTTP/1.1" 200 -
      192.168.2.161 - - [05/Dec/2012:20:40:57 +0530] APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp; path=/ Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2 "POST /App/login HTTP/1.1" 302 289
      192.168.1.220 - - [05/Dec/2012:20:40:57 +0530] - JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1!1354720204538 "GET /App/validateSession?ssoSessionID=APP-728a8af1-1OOOch71SSRAKYp HTTP/1.1" 200 89
      192.168.2.161 - - [05/Dec/2012:20:40:57 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /login.do?method=login HTTP/1.1" 200 2767
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/css/sample.css HTTP/1.1" 200 303
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/css/styles.css HTTP/1.1" 200 4988
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/js/ext/adapter/ext/ext-base.js HTTP/1.1" 200 12483
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/css/portal.css HTTP/1.1" 200 287
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/css/header.css HTTP/1.1" 200 411
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/js/ext/resources/css/ext-all.css HTTP/1.1" 200 28527
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/js/tag/Tag.js HTTP/1.1" 200 3579
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/js/ext/ext-all.js HTTP/1.1" 200 186157
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/js/general/ProgressBarPager.js HTTP/1.1" 200 1244
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/js/general/PanelResizer.js HTTP/1.1" 200 649
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/js/general/PagingMemoryProxy.js HTTP/1.1" 200 1154
      192.168.2.161 - - [05/Dec/2012:20:41:00 +0530] - Test=Test; JSESSIONID=b4GBQ1jMpYQTRTbT213yvj1T13Jm6wnh1VlTz79jJWRkXj88jShg!-1288095560!-1062731300!7003!-1!1586878909!-1062731300!7004!-1; App=App; App2=App2; APP_SSO_COOKIE=APP-728a8af1-1OOOch71SSRAKYp "GET /private/js/general/CalendarPopup.js HTTP/1.1" 200 14572



      Let me know if my set up wrong. Do i need to modify any settings related to cluster from console ?

      Regards,
      Sandeep
        • 1. Re: Session replication in Clustered Env with Apache proxy
          Atul Kelekar
          You'll need to configure the weblogic apache http server plug-in. mod_wl_22.so along with a weblogic.conf file for your cluster.

          http://docs.oracle.com/cd/E21764_01/web.1111/e16435/apache.htm

          Atul
          • 2. Re: Session replication in Clustered Env with Apache proxy
            919404
            Hi Atul,

            Thanks for the reply. I have configured the mod_wl_22.so in apache module. Added the load module directive to load this module. Below is my apache config file

            LoadModule weblogic_module modules/mod_wl_22.so(Also uncommented mod_proxy,mod_proxy_balancer modules)

            <Location />
            SetHandler weblogic-handler
            </Location>

            <IfModule mod_weblogic.c>
            WebLogicCluster 192.168.1.220:7003,192.168.1.220:7004
            DebugConfigInfo ON
            </IfModule>

            ProxyRequests Off
            ProxyPreserveHost on
            LogLevel debug
            <Proxy Balancer://AppCluster>
            BalancerMember http://192.168.1.220:7003
            BalancerMember http://192.168.1.220:7004
            </Proxy>

            <Location />
            ProxyPassReverse Balancer://AppCluster/
            </Location>


            Also it shouldn't be any problem if the settings are done directly on httpd.conf or create weblogic.conf and include it.

            Regards,
            Sandeep

            Edited by: 916401 on Dec 6, 2012 10:37 AM
            • 3. Re: Session replication in Clustered Env with Apache proxy
              Akshay Koul
              Refer:- http://middlewaremagic.com/weblogic/?p=290

              -Akshay
              • 4. Re: Session replication in Clustered Env with Apache proxy
                919404
                Hi Akshay,

                I did enable the debug flags by looking at the same URL you suggested. And we are not overriding any cookie name in weblogic.xml.

                Also the post talks about single WAR file deployed and changes to make in weblogic.xml file.

                But in my case i have EAR with 11 WAR files. So did the xml changes in weblogic-application.xml under META-INF folder.

                I'll check for the serialization of data in session.

                Please let me know if my changes are correct. Or do i need to add the persistent store type parameter in weblogic.xml of all WAR's also.


                Thanks,
                Sandeep
                • 5. Re: Session replication in Clustered Env with Apache proxy
                  919404
                  Hi,

                  More infor on my setup

                  Server nodes
                  Apache: 192.168.2.161
                  App Server1: 192.168.1.220:7003
                  App Server2: 192.168.1.220:7004

                  Both App server instance are running in same physical machine. I hope this is not the issue for session replication.

                  I tested the multicast message testing using the tool mentioned in the oracle doc and its working fine.

                  Regards,
                  Sandeep
                  • 6. Re: Session replication in Clustered Env with Apache proxy
                    968728
                    Sandeep,

                    Ensure that all the session objects that you have in the SESSION is serialized.

                    This is the cause for the issue that you have mentioned

                    *####<Dec 5, 2012 8:39:21 PM IST> <Error> <Cluster> <Win2k8SRV-01> <win2k8svr-ms1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <1354720161810> <BEA-000126> <All session objects should be serializable to replicate. Check the objects in your session. Failed to replicate non-serializable object.*
                    • 7. Re: Session replication in Clustered Env with Apache proxy
                      919404
                      Hi,

                      Thanks for the reply.
                      Now am not getting any exception in logs but am getting below message after enabling the debug logs for replication. When accessing the application

                      <BEA-000000> <[roid:185704383470673593] Creating primary for application key /App>
                      <BEA-000000> <Has secondary servers? true>
                      <Current secondary server? 8970097756806415248S:192.168.1.220:[7111,7111,-1,-1,-1,-1,-1]:Domain7001:wlsc1s1>
                      <[roid:185704383470673593] Created secondary on 8970097756806415248S:192.168.1.220:[7111,7111,-1,-1,-1,-1,-1]:Domain7001:wlsc1s1>
                      <[roid:185704383470673593] Using Single-Channel for 2-way update()>
                      <[roid:185704383470673593] Secondary server 8970097756806415248S:192.168.1.220:[7111,7111,-1,-1,-1,-1,-1]:Domain7001:wlsc1s1>
                      <[roid:185704383470673593] Unable to find object for roid:185704383470673593>
                      <[roid:185704383470673593] Unable to find object for roid:185704383470673593>
                      <[roid:185704383470673593] Unable to find object for roid:185704383470673593>


                      On secondry Node am getting

                      <[roid:1172843342548427774] Creating secondary for application key /App>
                      <Updated local secondary with version 1 from 1172843342548427774S:192.168.1.220:[8111,8111,-1,-1,-1,-1,-1]:Domain7001:wlsc1s2for replication object 1172843342548427774, key /ekaApp, ro = weblogic.servlet.internal.session.ReplicatedSessionData@2b4c2c1a>
                      <[roid:1172843342548427774] Found secondary for application key >

                      But when i shutdown primary, in primary server logs am getting below message
                      ####<Dec 10, 2012 8:35:51 PM IST> <Info> <Cluster> <Win2k8SRV-01> <wlsc1s2> <[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1355151951570> <BEA-000129> *<Removing 8967790673285895554S:192.168.1.220:[7111,7111,-1,-1,-1,-1,-1]*:Domain7001:wlsc1s1 from the cluster.>

                      7111 port is my secondary server. That is getting detached from the cluster. I didnt understand this.

                      Now when i try to continue my application, it redirects to login page with message on secondary server as below

                      <Managed server wlsc1s2 has been suspended or shutdown.>
                      <Removing 1172843342548427774S:192.168.1.220:[8111,8111,-1,-1,-1,-1,-1]:Domain7001:wlsc1s2 from the cluster.>
                      <Has secondary servers? true>
                      <Current secondary server? null>
                      <Preferred list : []>
                      <Remote list : []>
                      <Local list : []>
                      <New secondary server is null>
                      <[roid:1172843342548427774] Unable to create secondary on null>

                      ANy help on these logs.

                      Regards,
                      Sandeep
                      • 8. Re: Session replication in Clustered Env with Apache proxy
                        746690
                        First :-

                        =============================================================================================
                        <BEA-000126> <All session objects should be serializable to replicate. Check the objects in your session. Failed to replicate non-serializable object.
                        ==============================================================================================

                        for replication session data must be serialized ...

                        http://docs.oracle.com/cd/E13222_01/wls/docs90/cluster/failover.html#1022034

                        Programming Considerations for Clustered Servlets and JSPs
                        ------------------------------------------------------------------------------------

                        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.
                        -----------------------------------------------------------------------------------------------------------------------------------------------------

                        Second :-

                        use case:
                        user1 hits the URL, Apache proxy forwards to node1
                        user2 hits the URL, Apache proxy forwards to node2

                        kill the node1 and user1 click on any link, he gets redirected to login page. No failover us happening.

                        Means, load balancing happening properly but session replication not.


                        try using "replicated" only instead of "replicated_if_clustered"

                        Regards
                        Mukesh Negi
                        • 9. Re: Session replication in Clustered Env with Apache proxy
                          919404
                          Hi Mukesh,

                          Thanks for the reply. TO check the session data i took the JSP from http://middlewaremagic.com/weblogic/?p=290 for testing the serialization of session data, modified a little bit and added to all the WAR files to check session data of each WAR file. I could verify that all data in session are serializable.

                          While trying the serialization test, i did change the persistence store type to "replicated" but no luck yet.
                          But this time i got some replication missed message from server logs.

                          Primary server Logs

                          <BEA-000118> <Lost 11 replication updates of object 3736767543476998706; update version: 12, current version: 1.>
                          <BEA-000000> <[roid:3736767543476998706] Found secondary for application key /app>
                          <BEA-000000> <[roid:3736767543476998706] Found secondary for application key >
                          <BEA-000000> <[roid:3736767543476998706] Found secondary for application key /ssoApp>
                          <BEA-000000> <Updated local secondary with version 18 from 3736767543476998705S:192.168.1.220:[7111,7111,-1,-1,-1,-1,-1]:Domain7001:wlsc1s1for replication object 3736767543476998706, key , ro = weblogic.servlet.internal.session.ReplicatedSessionData@14e52305>
                          <BEA-000000> <Updated local secondary with version 19 from 3736767543476998705S:192.168.1.220:[7111,7111,-1,-1,-1,-1,-1]:Domain7001:wlsc1s1for replication object 3736767543476998706, key , ro = weblogic.servlet.internal.session.ReplicatedSessionData@14e52305>

                          But in secondary server i got lot of weblogic.cluster.replication.NotFoundException

                          <BEA-000000> <Has secondary servers? true>
                          <BEA-000000> <Current secondary server? 3054493844538055224S:192.168.1.220:[8111,8111,-1,-1,-1,-1,-1]:Domain7001:wlsc1s2>
                          <BEA-000000> <[roid:3736767543476998706] Created secondary on 3054493844538055224S:192.168.1.220:[8111,8111,-1,-1,-1,-1,-1]:Domain7001:wlsc1s2>
                          <BEA-000000> <[roid:3736767543476998706] Using Single-Channel for 2-way update()>
                          <BEA-000000> <[roid:3736767543476998706] Error updating secondary for 3736767543476998706, key /app, on 3054493844538055224S:192.168.1.220:[8111,8111,-1,-1,-1,-1,-1]:Domain7001:wlsc1s2. Re-creating secondary.
                          weblogic.cluster.replication.NotFoundException: Lost 8 updates of 3736767543476998706
                               at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
                               at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:223)
                               at weblogic.cluster.replication.ReplicationManager_1035_WLStub.update(Unknown Source)
                               at sun.reflect.GeneratedMethodAccessor252.invoke(Unknown Source)
                               at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                               at java.lang.reflect.Method.invoke(Method.java:597)
                               at weblogic.cluster.replication.SecureReplicationInvocationHandler$ReplicationServicesInvocationAction.run(SecureReplicationInvocationHandler.java:194)
                               at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
                               at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
                               at weblogic.cluster.replication.SecureReplicationInvocationHandler.invoke(SecureReplicationInvocationHandler.java:164)
                               at $Proxy359.update(Unknown Source)
                               at weblogic.cluster.replication.ReplicationManager.sendUpdateRequestToSecondary(ReplicationManager.java:740)
                               at weblogic.cluster.replication.ReplicationManager.updateSecondary(ReplicationManager.java:662)
                               at weblogic.servlet.internal.session.ReplicatedSessionData.syncSession(ReplicatedSessionData.java:639)
                               at weblogic.servlet.internal.session.ReplicatedSessionContext.sync(ReplicatedSessionContext.java:85)
                               at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2860)
                               at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2835)
                               at weblogic.servlet.internal.ServletResponseImpl$1.run(ServletResponseImpl.java:1485)
                               at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
                               at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
                               at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1479)
                               at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1462)
                               at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
                               at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
                          Caused By: weblogic.cluster.replication.NotFoundException: Lost 8 updates of 3736767543476998706
                               at weblogic.cluster.replication.ReplicationManager.updateInternal(ReplicationManager.java:1143)
                               at weblogic.cluster.replication.ReplicationManager.update(ReplicationManager.java:1101)
                               at weblogic.cluster.replication.ReplicationManager_WLSkel.invoke(Unknown Source)
                               at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
                               at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
                               at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
                               at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
                               at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
                               at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
                               at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
                               at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

                          From http://docs.oracle.com/cd/E28389_01/apirefs.1111/e14397/Cluster.html the exception is thrown if secondary is unable to receive the updates and asking primary to recreate the session state(BEA-000118).

                          Am also getting
                          <BEA-000000> <[roid:3736767543476998706] Removing secondary for key >
                          <BEA-000000> <Removed secondary for roids: 3736767543476998706>
                          in primary server logs does this mean primary is creating and deleting the session state on secondary ?

                          Am getting below assertion error in primary server logs

                          <BEA-080004> <An error was thrown by rmi server: weblogic.cluster.leasing.databaseless.RMIClusterMessageEndPointImpl.process(Lweblogic.cluster.leasing.databaseless.ClusterMessage;)
                          java.lang.AssertionError: Invalid state transition from stable_leader to stable.
                          java.lang.AssertionError: Invalid state transition from stable_leader to stable
                               at weblogic.cluster.leasing.databaseless.ClusterState.setState(ClusterState.java:100)
                               at weblogic.cluster.leasing.databaseless.ClusterState.setState(ClusterState.java:59)
                               at weblogic.cluster.leasing.databaseless.ClusterMember.handleJoinResponseRequest(ClusterMember.java:224)
                               at weblogic.cluster.leasing.databaseless.ClusterMember.process(ClusterMember.java:102)
                               at weblogic.cluster.leasing.databaseless.RMIClusterMessageEndPointImpl.process(RMIClusterMessageEndPointImpl.java:30)
                               at weblogic.cluster.leasing.databaseless.RMIClusterMessageEndPointImpl_WLSkel.invoke(Unknown Source)
                               at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
                               at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
                               at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
                               at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
                               at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
                               at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
                               at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
                               at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
                          >

                          After killing the primary and access the application in secondary server am getting unable to create secondary on null logs like below. Am i missing any configuration in setup ?

                          <Managed server wlsc1s2 has been suspended or shutdown.>
                          <BEA-000129> <Removing 3054493844538055224S:192.168.1.220:[8111,8111,-1,-1,-1,-1,-1]:Domain7001:wlsc1s2 from the cluster.>
                          <BEA-000000> <Has secondary servers? true>
                          <Current secondary server? null>
                          <BEA-000000> <Preferred list : []>
                          <BEA-000000> <Remote list : []>
                          <BEA-000000> <Local list : []>
                          <New secondary server is null>
                          <BEA-000000> <Secondary server null>
                          <BEA-000000> <Changed the status of 2 objects and it took 59 ms>
                          <BEA-000000> <Has secondary servers? true>
                          <BEA-000000> <Current secondary server? null>
                          <BEA-000000> <Preferred list : []>
                          <BEA-000000> <Remote list : []>
                          <BEA-000000> <Local list : []>
                          <BEA-000000> <New secondary server is null>
                          <BEA-000000> <[roid:3054493844538055225] Unable to create secondary on null>
                          <BEA-000000> <[roid:3054493844538055225] Unable to create secondary on null>

                          Regards,
                          sandeep
                          • 10. Re: Session replication in Clustered Env with Apache proxy
                            919404
                            Hi,

                            Also i wanted to confirm is only the deployment descriptor change, setting persistent store type to "replicated" is needed for HTTP session replication among managed servers in a cluster right (apart from Application side changes like serialization etc)?

                            No other setting is required as such from console.

                            Just want to confirm the settings.


                            Regards,
                            Sandeep
                            • 11. Re: Session replication in Clustered Env with Apache proxy
                              746690
                              Sandeep, test by defining your session descriptor in your web application weblogic.xml file.

                              also please confirm if you have defined replication group or not ( under server>configuration > cluster option for each managed server ) ?

                              Regards
                              Mukesh Negi
                              http://weblogicserveradministration.blogspot.in

                              Edited by: MukeshNegi on Dec 12, 2012 8:06 AM
                              • 12. Re: Session replication in Clustered Env with Apache proxy
                                919404
                                Hi Mukesh,

                                I have not defined any replication group for managed servers.

                                I had issue with caching in application which was not distributed(which i was not aware of). That was the issue. After resolving the caching issue, i added persistent store type as "replicated" in weblogic.xml of all WAR files and also weblogic-application.xml under META_INF folder.

                                Now failover is happening. HTTP session replication is happening.

                                Thanks everyone for the help.


                                Regards,
                                Sandeep

                                Edited by: 916401 on Dec 14, 2012 11:10 AM
                                • 13. Re: Session replication in Clustered Env with Apache proxy
                                  919404
                                  Update,

                                  With EAR deployment(EAR with multiple WAR files), just adding the persistent store type as "replicated" to weblogic-application.xml will enable the HTTP session replication.
                                  So not required to add to weblogic.xml file of each WAR.

                                  Thanks
                                  • 14. Re: Session replication in Clustered Env with Apache proxy
                                    746690
                                    Glad to know that issues resolved.

                                    "I had issue with caching in application which was not distributed(which i was not aware of). That was the issue. After resolving the caching issue"

                                    Could you please explain what steps exactly you did in your application ? this would help other guys also.

                                    Thank You
                                    Mukesh Negi
                                    1 2 Previous Next