WebLogic session复制_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2893 | 回复: 1   主题: WebLogic session复制        下一篇 
chengjun.xia
注册用户
等级:中士
经验:201
发帖:8
精华:0
注册:1970-1-1
状态:离线
发送短消息息给chengjun.xia 加好友    发送短消息息给chengjun.xia 发消息
发表于: IP:您无权察看 2016-3-24 16:42:49 | [全部帖] [楼主帖] 楼主

1.Session复制的原理

a) HTTP会话状态复制

WebLogic Server使用两种方法来跨集群复制HTTP会话状态。

i. 内存中复制

使用内存中复制时,WebLogic Server会将会话状态从一个服务器实例复制到另外一个服务器实例。主服务器在客户端首先连接的服务上创建主会话状态,在集群中的另一个WebLogic Server实例上创建次级副本。该副本总是保持最新状态,当主服务器失败时可以使用该副本。

ii. 基于Session的持久化

WebLogic Server可以将Session持久化到文件或者JDBC数据源,从而达到在各个服务器实例之间共享Session信息的目的。

b) HTTP会话复制流程

i. 代理连接过程。

HTTP客户端请求Servlet时,HttpClusterServlet将该请求代理传输到WebLogic Server集群。HttpClusterServlet维护集群中个所有服务器的列表以及访问集群时要使用的负载均衡逻辑。在上面的示例中,HttpClusterServlet将客户端请求路由到了WebLogic Server A承载的ServletWebLogic Server A成为了承载该客户端的Servlet会话的主服务器。

为了对该Servlet提供故障转移服务,主服务器将客户端的Servlet会话状态复制到集群中的某个次级WebLogic Server。这样确保即使在主服务器失败(例如由于网络失败)时该会话状态的副本仍存在。在上面的示例中。服务器B被选择为次级服务器。

Servlet也通过HttpClusterServlet返回到客户端,然后客户端浏览器收到指令,写入列出该Servlet会话状态主位置和次级位置的Cookie。如果客户端浏览器不支持CookieWebLogic Server则可以使用URL重写来代替。

ii. 使用URL重写跟踪会话副本。

WebLogic Server的默认配置使用客户端Cookie来跟踪承载客户端Servlet会话状态的主服务器和次级服务器。如果客户端浏览器禁用了Cookie的使用,Weblogic Server则可以使用URL重写来跟踪主服务器和次级服务器。使用URL重写时,两个位置的客户端会话状态都会嵌入到客户端和代理服务器之间传递的URL中。为了支持此功能,您必须确保在WebLogic Server集群上启用了URL重写。

iii. 代理故障转移过程。

如果主服务器失败,HttpClusterServlet就使用客户端的Cookie信息来确定承载会话状态副本的次级WebLogic Server的位置。HttpClusterServlet会自动将客户端的下一个HTTP请求重定向到次级服务器,故障转移对于客户端是透明的。

发生失败之后,WebLogic Server B称为承载Servlet会话状态的主服务器,并且会创建新的次级服务器(在上面示例中为服务器C)。在HTTP响应中,代理会更新客户端的Cookie来反应新的主服务器和次级服务器,以考虑后续故障转移的可能性。

在由两个服务器组成的集群中,客户端将以透明方式故障转移到承载次级会话状态的服务器。但是客户端会话状态的复制不会继续,除非另一个WebLogic Server变为可用状态并加入该集群。例如,如果原始主服务器重新启动或重新连接网络,则会使用它来承载次级会话状态。

2.Session复制的配置

a) 内存中复制

要配置内存中复制,请执行下列操作:

·配置代理服务器(如果适用)。

·配置复制组合(或)计算机(可选)。

·在weblogic.xml部署描述符中指定持久性类型。

配置内存中复制会话持久性。示例:

<session-descriptor>

<persistent-store-type>replicated</persistent-store-type>

</session-descriptor>

可选参数如下

·memory——禁用持久性会话存储。

·replicated——与memory相同,但会话数据将会在集群服务器之间复制。

·replicated_if_clustered——如果Web应用程序部署在集群服务器上,则按有效的persistentstore-type复制,否则按默认值memory复制。

·sync-replication-across-cluster——复制将在集群内同步发生。

·async-replication-across-cluster——复制将在集群内异步发生。

b) 配置JDBC复制

要配置JDBC复制,可执行下列操作

·在数据库中创建表。

·创建对数据库具有读写权限的连接池。

·在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>

JDBC持久性表配置必须存在名为WL_SERVLET_SESSIONS且具有读写访问权限的数据库表

在映射到会话持久性连接池的数据库中,需要配置一个名为WL_SERVLET_SESSIONS的表,该表将包含所有活动会话对象的值。指定有权访问此表的用户,需要对该表具有读写、插入、删除访问权限才能有效的管理对象。该表需要具有以下8列内容:

·WL_ID  会话ID,与WL_CONTEXT_PATH一起用作数据库主键。可变宽度字母数字数据类型,最多可100个字符。

·WL_CONTEXT_PATH  上下文,此列与WL_ID仪器用作主键。可变宽度字母数字数据类型,最多可100个字符。

·WL_IS_NEW  只要Servlet引擎将会话分为“新”状态,此值就为True。含一个字符的列。

·WL_CREATE_TIME  最初创建会话的时间。Numeric数据类型列,20位。

·WL_IS_VALID  Servlet可以访问会话时,该值为True。用于并发访问,含一个字符的列。

·WL_SESSION_VALUES  实际会话数据。BLOB列。

·WL_ACCESS_TIME  上次访问会话时间。Numeric数据类型,20位。

·WL_MAX_INACTIVE_INTERVAL  从客户端请求到会话失效之间的时间(秒)。负时间值表名会话永不超时。Integer数据类型列。

创建此表的SQL语句(适用于Oracle

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));

c) 配置文件持久性

要为Web应用程序配置基于文件的会话持久性,可执行下列操作

·创建一个集群上的所有服务器都可以共享访问的文件夹。

·在weblogic.xml部署描述符中指定file持久性类型。

示例

<session-descriptor>

<persistent-store-type>file</persistent-store-type>

<persistent-store-dir>shared folder location</persistent-store-dir>

</session-descriptor>





赞(0)    操作        顶端 
arcona
注册用户
等级:少校
经验:1100
发帖:10
精华:0
注册:2015-6-1
状态:离线
发送短消息息给arcona 加好友    发送短消息息给arcona 发消息
发表于: IP:您无权察看 2016-6-16 7:35:16 | [全部帖] [楼主帖] 2  楼

感谢分享~



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论