声明:该博文转自http://maping930883.blogspot.com,热爱java,热爱生活
运行环境:WebLogic Server 10.3.5 + Oracle Database 10g Express Edition 10.2.0.1。
WebLogic Server集群可以用来在多个Server之间复制HTTP Session,复制方式有内存复制和数据库持久化两种。
(1)内存复制方式
[img]http://dl.iteye.com/upload/attachment/0071/6126/e12f62ad-7313-3d52-a86e-35890fa8247f.png[/img]
(2)数据库持久化方式
[img]http://dl.iteye.com/upload/attachment/0071/6128/d674b627-a61c-3b99-b962-6085374a99b5.png[/img]
1. 内存复制方式
(1)在dizzy1-->上设置主备复制组:dizzyRepGroup1(主)、dizzyRepGroup2(备)。
[img]http://dl.iteye.com/upload/attachment/0071/6130/e6e07683-713b-3bb3-9088-c1a1b184509a.png[/img]
(2)在dizzy1-->上设置主备复制组:dizzyRepGroup2(主)、dizzyRepGroup1(备)。
[img]http://dl.iteye.com/upload/attachment/0071/6132/1e09ff90-da00-3660-aa34-56e8c38a4af3.png[/img]
(3)修改应用中的weblogic.xml内容,增加如下内容:
<session-descriptor>
<persistent-store-type>replicated_if_clustered</persistent-store-type>
</session-descriptor>
(4)发布应用shoppingcart.war到Cluster上。
(5)访问http://localhost:7009/shoppingcart/
[img]http://dl.iteye.com/upload/attachment/0071/6134/14f31319-0d4c-35f9-b2e8-33226ab1141c.png[/img]
选中一些商品,放入到Session中
[img]http://dl.iteye.com/upload/attachment/0071/6136/42297403-4087-3b0d-90d6-bd7d0917aaa9.png[/img]
Shutdown接收请求的Server,比如dizzy2,然后刷新页面,发现Session信息依然存在,说明内存复制Session方式起作用了。
2. 数据库持久化方式
(1)配置和内存复制方式相同。
(2)配置和内存复制方式相同。
(3)创建数据库表:wl_servlet_sessions。
选择一个Schema,比如HR,创建表wl_servlet_sessions。
create table wl_servlet_sessions
( wl_id VARCHAR2(100) NOT NULL,
wl_context_path VARCHAR2(100) NOT NULL,
wl_is_new CHAR(1),
wl_create_time NUMBER(20),
wl_is_valid CHAR(1),
wl_session_values LONG RAW,
wl_access_time NUMBER(20),
wl_max_inactive_interval INTEGER,
PRIMARY KEY (wl_id, wl_context_path) );
(4)创建Data Source:SessionDS
注意要把SessionDS target到dizzyworldCluster上。
(5)修改应用中的weblogic.xml内容,增加如下内容:
<session-descriptor>
<persistent-store-type>jdbc</persistent-store-type>
<persistent-store-pool>SessionDS</persistent-store-pool>
<persistent-store-table>WL_SERVLET_SESSIONS</persistent-store-table>
</session-descriptor>
(6)重新发布应用shoppingcart.war到Cluster上。
(7)访问http://localhost:7009/shoppingcart/
选中一些商品,放入到Session中后,Shutdown所有Server,查看数据库表,发现有记录。
说明HTTP Session信息已经持久化到数据库表中了。
[img]http://dl.iteye.com/upload/attachment/0071/6136/42297403-4087-3b0d-90d6-bd7d0917aaa9.png[/img]
重新启动Server,访问应用,发现Session信息都还存在,说明数据库持久化Session方式起作用了。
运行环境:WebLogic Server 10.3.5 + Oracle Database 10g Express Edition 10.2.0.1。
WebLogic Server集群可以用来在多个Server之间复制HTTP Session,复制方式有内存复制和数据库持久化两种。
(1)内存复制方式
[img]http://dl.iteye.com/upload/attachment/0071/6126/e12f62ad-7313-3d52-a86e-35890fa8247f.png[/img]
(2)数据库持久化方式
[img]http://dl.iteye.com/upload/attachment/0071/6128/d674b627-a61c-3b99-b962-6085374a99b5.png[/img]
1. 内存复制方式
(1)在dizzy1-->上设置主备复制组:dizzyRepGroup1(主)、dizzyRepGroup2(备)。
[img]http://dl.iteye.com/upload/attachment/0071/6130/e6e07683-713b-3bb3-9088-c1a1b184509a.png[/img]
(2)在dizzy1-->上设置主备复制组:dizzyRepGroup2(主)、dizzyRepGroup1(备)。
[img]http://dl.iteye.com/upload/attachment/0071/6132/1e09ff90-da00-3660-aa34-56e8c38a4af3.png[/img]
(3)修改应用中的weblogic.xml内容,增加如下内容:
<session-descriptor>
<persistent-store-type>replicated_if_clustered</persistent-store-type>
</session-descriptor>
(4)发布应用shoppingcart.war到Cluster上。
(5)访问http://localhost:7009/shoppingcart/
[img]http://dl.iteye.com/upload/attachment/0071/6134/14f31319-0d4c-35f9-b2e8-33226ab1141c.png[/img]
选中一些商品,放入到Session中
[img]http://dl.iteye.com/upload/attachment/0071/6136/42297403-4087-3b0d-90d6-bd7d0917aaa9.png[/img]
Shutdown接收请求的Server,比如dizzy2,然后刷新页面,发现Session信息依然存在,说明内存复制Session方式起作用了。
2. 数据库持久化方式
(1)配置和内存复制方式相同。
(2)配置和内存复制方式相同。
(3)创建数据库表:wl_servlet_sessions。
选择一个Schema,比如HR,创建表wl_servlet_sessions。
create table wl_servlet_sessions
( wl_id VARCHAR2(100) NOT NULL,
wl_context_path VARCHAR2(100) NOT NULL,
wl_is_new CHAR(1),
wl_create_time NUMBER(20),
wl_is_valid CHAR(1),
wl_session_values LONG RAW,
wl_access_time NUMBER(20),
wl_max_inactive_interval INTEGER,
PRIMARY KEY (wl_id, wl_context_path) );
(4)创建Data Source:SessionDS
注意要把SessionDS target到dizzyworldCluster上。
(5)修改应用中的weblogic.xml内容,增加如下内容:
<session-descriptor>
<persistent-store-type>jdbc</persistent-store-type>
<persistent-store-pool>SessionDS</persistent-store-pool>
<persistent-store-table>WL_SERVLET_SESSIONS</persistent-store-table>
</session-descriptor>
(6)重新发布应用shoppingcart.war到Cluster上。
(7)访问http://localhost:7009/shoppingcart/
选中一些商品,放入到Session中后,Shutdown所有Server,查看数据库表,发现有记录。
说明HTTP Session信息已经持久化到数据库表中了。
[img]http://dl.iteye.com/upload/attachment/0071/6136/42297403-4087-3b0d-90d6-bd7d0917aaa9.png[/img]
重新启动Server,访问应用,发现Session信息都还存在,说明数据库持久化Session方式起作用了。