replicate session in clustering weblogic v10.3

Even set 2 weblogic instances as clustering servers, the session can not be replicated by default.

let's we have the code to get session as follows.
HttpSession session = request.getSession();
Object myObj = session.getAttribute("myObjKey");

 If want to replicate the session during clustering weblogic instances, need to modify weblogic.xml as follows.

<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">

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

    <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>

    <context-root>/mycontext</context-root>

</weblogic-web-app>

-- persistent-store-type
    Sets the persistent store method to one of the following options:

  • memory —Disables persistent session storage.
  • replicated —Same as memory , but session data is replicated across the clustered servers.
  • replicated_if_clustered—If the Web application is deployed on a clustered server, the in-effect persistent-store-type will be replicated. Otherwise, memory is the default.
  • async-replicated—Enables asynchronous session replication in an application or web application. See Configuring Session Persistence.
  • async-replicated-if-clustered—Enables asynchronous session replication in an application or web application when deployed to a cluster environment. If deployed to a single server environment, then the session persistence/replication defaults to in-memory. This allows testing on a single server without deployment errors.
  • file —Uses file-based persistence (See also persistent-store-dir ).
  • async-jdbc —Enables asynchronous JDBC persistence for HTTP sessions in an application or web application. See Configuring Session Persistence.
  • jdbc —Uses a database to store persistent sessions. (see also persistent-store-pool ).
  • cookie—All session data is stored in a cookie in the user’s browser.

--  sharing-enabled
     Enables Web applications to share HTTP sessions when the value is set to true at the application level.

     This element is ignored if turned on at the Web application level. 
 
--  prefer-web-inf-classes
     if set to true, will cause classes located in the WEB-INF directory of a Web application to be loaded in    preference to classes loaded in the application or system classloader. The default value is false. A value specified in the console will take precedence over a value set manually. 
 
--  context-root

The context-root element defines the context root of this stand-alone Web application. If the Web application is part of an EAR, not stand-alone, specify the context root in the EAR’s META-INF/application.xml file. A context-root setting in application.xml takes precedence over context-root setting in weblogic.xml.

Note that this weblogic.xml element only acts on deployments using the two-phase deployment model.
The order of precedence for context root determination for a Web application is as follows:
  1. Check application.xml for context root; if found, use as Web application’s context root.
  2. If context root is not set in application.xml, and the Web application is being deployed as part of an EAR, check whether context root is defined in weblogic.xml. If found, use as Web application’s context root. If the Web application is deployed standalone, application.xml does not come into play and the determination for context-root starts at weblogic.xml and defaults to URI if it is not defined there.
  3. If context root is not defined in weblogic.xml or application.xmll, then infer the context path from the URI, giving it the name of the value defined in the URI minus the WAR suffix. For instance, a URI MyWebApp.war would be named MyWebApp.

Note: The context-root element cannot be set for individual Web applications in EAR libraries. It can only bet set for Web application libraries.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章