weblogic集群 session复制 完全版

 集群配置,session复制

 

集群相关的文章:http://www.blogjava.net/kapok/archive/2005/07/09/7423.html

 

 

来自于

http://jishudaima.iteye.com/blog/955789

使用weblogic集群,关于session复制,google大多数参考文献只是到weblogic.xml的配置,但是实际上到此并不能实现session复制,下面是比较全面的文档。

 

 

一、使用Configuration Wizard创建Domain

 

 

该集群的总体图如下:

 

 

 



 



 
 

 


 


 



 


 


 


 

 



 


 

二、创建Proxy Server

     Standalone

     Server Name: proxyServer

     Server Listen Address: localhost

    Server Listen Port:: 7009

    Standalone Server: True

  启动Proxy Server:

   cd c:\bea\user_projects\domains\dizzyworld

 

   start bin\startManagedWebLogic.cmd proxyServer http://127.0.0.1:7001

 

 

  创建ProxyServer过程如下:

 

 



 


三、往ProxyServer部署

       proxyApp.war

   部署到ProxyServer上,其中web.xml配置如下:

      <init-param>

      <param-name>WebLogicCluster</param-name>

      <param-value>localhost:7003|localhost:7005|localhost:7007</param-value>

</init-param>

该初始化参数为为ManagedServer的地址和端口

 


 

 

<servlet-mapping>

    <servlet-name>HttpClusterServlet</servlet-name>

    <url-pattern>*.jsp</url-pattern>

  </servlet-mapping>

servlet-mapping为所截获的所有请求,接受请求后转发给所有的server

 

四、启动Managed Server

  1、启动NodeManager

        cd d:\bea\weblogic92\common\nodemanager\

        start d:\bea\weblogic92\server\bin\startNodeManager.cmd  127.0.0.1 5555

        start d:\bea\weblogic92\server\bin\startNodeManager.cmd  127.0.0.1 5556

  2、启动Managed Server

        cd d:\bea\user_projects\domains\dizzyworld

        start bin\startManagedWebLogic.cmd dizzy1 http://127.0.0.1:7001

        start bin\startManagedWebLogic.cmd dizzy2 http://127.0.0.1:7001

        start bin\startManagedWebLogic.cmd dizzy3 http://127.0.0.1:7001

 

五、将测试应用程序部署到集群的成员服务器中

       browsestore.war

   将应用程序部署到Cluster

   

 

 

 

六、测试集群配置结果

   访问Proxy Server

         http://localhost:7009/browsestore

 

 

 

 

 

七、session复制

     Session复制有三种实现方式:

1.In-memory复制

2. 文件系统持久性

3. JDBC的数据库持久性

 

 

 

1.复制组解决session复制到问题(In-memory复制)

复制组只是用于存储会话状态复制品的集群实例优先级列表

cluster创建两个复制组dizzyRepGroup1dizzyRepGroup2 ,dizzyRepGroup1包含

dizzy1dizzy2,dizzyReGroup2包含dizzy3,结构如如下:

 


 

 

a.创建的操作步骤如下配置dizzy1)  




 
 

 

同理可以配置dizzy2 dizzy3

 

 

b.修改应用程序的配置文件weblogic.xml,增加

    <session-descriptor>

       <timeout-secs>300</timeout-secs>

       <invalidation-interval-secs>60</invalidation-interval-secs>

       <persistent-store-type>replicated_if_clustered</persistent-store-type>

    </session-descriptor>

 这样能使session复制功能的实现,从而实现故障转移

 

 

c.部署应用程序ShoppingCart.war

 

 

 

1.    通过JDBC的数据库持久性(把session放在数据库中)

  1. 数据库实现session复制,架构图如下:

 

 

 

 

 

 



 

d.访问 http://127.0.0.1:7009/ShoppingCart/

 

1.    通过JDBC的数据库持久性(把session放在数据库中)

  1. 数据库实现session复制,架构图如下:

 

  
 

 

 

 

 

 

 

 

 

b.创建复制组(如下图所示),配置方法如in-memory相同



 

c.创建数据源

 

Name: SessionDS

JNDI Name: SessionDS

Targets: dizzyworldCluster

d.创建表,表结构如下:

     CREATE TABLE "PBPUBLIC"."WL_SERVLET_SESSIONS"

(WL_ID VARCHAR ( 100)  NOT NULL

, WL_CONTEXT_PATH VARCHAR ( 100)  NOT NULL

, WL_IS_NEW CHARACTER (1)

, WL_CREATE_TIME DECIMAL ( 20)

, WL_IS_VALID INTEGER

, WL_SESSION_VALUES BLOB

, WL_ACCESS_TIME DECIMAL ( 20)  NOT NULL

, WL_MAX_INACTIVE_INTERVAL INTEGER,

PRIMARY KEY (WL_ID, WL_CONTEXT_PATH)

 );

e.配置weblogic.xml

<session-descriptor>

<timeout-secs>300</timeout-secs>

<invalidation-interval-secs>60</invalidation-interval-secs>

<persistent-store-type>jdbc</persistent-store-type>

<persistent-store-pool>SessionDS</persistent-store-pool>

<persistent-store-table>WL_SERVLET_SESSIONS</persistentstore-table>

</session-descriptor>

猜你喜欢

转载自leexhwhy.iteye.com/blog/1312015