源文件修改
web.xml
<!---------------------web.xml--------------------->
...
<distributable id="sessionDistribute"/>
...
<!---------------------web.xml end------------------>
必须指明应用的session是distribute的,否则即使glassfish启用了session复制功能也不会生效。
sun-web.xml
<!-------------------sun-web.xml------------------>
...
<session-config>
<session-manager persistence-type="replicated">
<manager-properties>
<property name="persistenceFrequency" value="time-based"/>
<property name="reapIntervalSeconds" value="30"/>
<property name="relaxCacheVersionSemantics" value="true"/>
</manager-properties>
<store-properties>
<property name="persistenceScope" value="session"/>
</store-properties>
</session-manager>
</session-config>
...
<!-------------------sun-web.xml end-------------->
persistenceFrequency和reapIntervalSeconds设定session的同步频率为30秒
relaxCacheVersionSemantics忽略session版本号,解决多个请求同步时的session异常。
applicationContext-security.xml
<!----------applicationContext-security.xml--------->
...
<http>
...
<session-management>
<concurrency-control max-sessions="2" error-if-maximum-exceeded="false" />
</session-management>
...
</http>
...
<!---------applicationContext-security.xml end------>
设置spring-security允许同一个用户多次登录。否则启用session复制后,会导致不能正常登录。
Glassfish设置
Web Container->Manager Properties
修改Reap Interval为30,与sun-web.xml中的配置一致。
在Additional Properties下增加新的属性
relaxCacheVersionSemantics=true
persistenceFrequency=time-based
升级步骤
1、deploy新的application版本,如:webapp-demo:1.0.1
去掉Status的Enabled复选框,并将Availability的Enabled复选框选中,targets中选则设置好的cluster。
2、使用命令升级当前离线的实例instance-2
asadmin enable --target instance-2
webapp-demo:1.0.1
3、等待30秒以上(超过session的复制间隔)
4、修改nginx配置,将线上实例instance-1替换成已升级完的实例instance-2
5、使用命令升级当前离线的实例instance-1
asadmin enable --target instance-1
webapp-demo:1.0.1
6、重复步骤3、4
配置过程中遇到的问题:
1、session中保存的attribute对象的class都必须实现java.io.Serializable接口,且对象的所有属性的class也必须实现java.io.Serializable接口,否则session复制的时候会出错。
2、session复制是通过GMS组播实现的,iptables要么关闭,要么允许GMS组播的ip。
分享到:
相关推荐
"Eclipse 与 GlassFish 3.1.1 配置指南" 概述: 本文档旨在指导读者如何在 Eclipse 中配置 GlassFish 3.1.1,实现连接池配置和 JNDI 配置。同时,也会解决在部署过程中可能出现的异常。 一、GlassFish 3.1.1 简介 ...
GlassFish 安装配置文档 GlassFish 是一个基于 Java 的开源应用服务器,提供了一个强大且灵活的平台来部署和管理基于 Java 的应用程序。本文档将指导 readers 通过安装和配置 GlassFish 服务器,并将其与 Eclipse ...
文件标题“GlassFish 管理配置”明确指出,本文档将聚焦于GlassFish服务器开源版本5.0的管理和配置。描述中提到的“配置和管理GlassFish服务器开源版本的说明”进一步强调了这一主题,并暗示了文档将详细介绍如何对...
GlassFish 数据源连接池配置 GlassFish 是一个开源的 Java EE 应用服务器,它提供了一个基于 Web 的管理接口,允许用户通过 Web 界面配置和管理服务器的各种设置。其中,配置数据源连接池是 GlassFish 的一个重要...
glassfish手工修改domain部署应用步骤,文档详细介绍了如何使用手工部署一个web文件夹目录形式的应用,以及手工配置jdbc
4. 介绍创建jk监听器的部分说明了仅仅依靠Glassfish内部的负载均衡和会话复制功能是不够的,还需要通过配置Apache服务器来保证跨服务器的会话复制和粘滞会话效果。 5. 最后,手册还包括了通过命令行界面进行集群...
### GlassFish、Ant与Eclipse配置指南:详细步骤与图解 #### 一、环境准备:设置基础环境变量 在开始GlassFish服务器的配置之前,首先确保已经正确设置了以下环境变量: - **JAVA_HOME**: 指向已安装的JDK目录。...
本教程将详细讲解如何在Glassfish服务器上配置JNDI以连接到DB2数据库。 首先,我们需要准备DB2数据库的驱动文件。在进行任何配置之前,确保你已经有了DB2的JDBC驱动,即db2jcc.jar和db2jcc_license_cu.jar。这两个...
1. 通过`web.xml`配置:在Servlet 3.0及以上版本的环境中,可以直接在`<session-config>`标签内设置`<cookie-config>`,添加`<secure>`和`<http-only>`标签并设为`true`。 2. 使用Filter实现:自定义Filter,捕获...
在本文中,我们将深入探讨如何安装Glassfish,以及如何利用Ant工具进行配置。首先,我们来看一下安装的基本步骤。 1. **下载安装文件**:Glassfish的安装文件可以从官方网站获取,例如,对于Windows系统,你可以...
【GlassFish 5.0 安装与配置详解】 GlassFish,由Oracle公司主导的开源项目,是一款功能强大的Web服务器和应用服务器,以其卓越的性能和丰富的特性在开发者社区中备受推崇。相比于Tomcat,GlassFish提供了更全面的...
Tomcat6远程调用GlassFish V2的session bean GlassFish V2 是一个比较完整的ejb3服务器,性能也有了很大的提高,因此最近试用了一下,并通过Tomcat进行了分布式调用。 Session Bean: ...
- **简化配置**:GlassFish提供了更为直观的配置方式,减少了开发者在设置过程中可能遇到的问题。 ##### 可靠性和可用性 - **高可用性**:GlassFish支持集群配置,这意味着可以在多台服务器上运行相同的应用程序...
在本教程中,我们将探讨如何在GlassFish中配置SonicMQ,一个强大的消息中间件,用于处理分布式系统中的异步通信。 配置SonicMQ在GlassFish中的过程主要包括以下几个步骤: 1. **安装SonicMQ**: 首先,你需要下载并...
本文主要讲述了 GlassFish 的安装、配置和服务管理等内容。GlassFish 是一个基于 Java 的 middleware,具有高可扩展性和可靠性,是企业级应用的首选。 一、准备工作 在安装 GlassFish 之前,需要准备好用户组和...
- 在安装过程中,可以通过修改`setup.xml`或`setup-cluster.xml`文件来自定义配置参数,例如域名、端口号等。默认情况下,这些参数如下所示: - `domain.name=domain1` - `instance.name=server` - `admin.user=...
为了能够成功安装并配置Glassfish,确保系统环境中已经安装了合适的JDK版本以及Ant工具是非常重要的。 #### 二、准备工作 在开始安装Glassfish之前,请确保以下条件已经被满足: 1. **JDK 5或更高版本**:...
本手册旨在弥补这一空缺,提供一份全面的、深入的Glassfish集群搭建指南,包括图形化界面配置和命令行批处理配置两种方式,以帮助开发者和运维人员更好地理解和操作Glassfish服务器。 ### 1. 图形化界面配置 #### ...