集群配置,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放在数据库中)
d.访问 http://127.0.0.1:7009/ShoppingCart/
1. 通过JDBC的数据库持久性(把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>