clh899 发表于 2017-2-16 11:30:20

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创建两个复制组dizzyRepGroup1,dizzyRepGroup2 ,dizzyRepGroup1包含
dizzy1、dizzy2,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放在数据库中)

[*]数据库实现session复制,架构图如下:
 
 
 
 
 
 


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

 

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

[*]数据库实现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>
页: [1]
查看完整版本: weblogic集群 session复制 完全版