EAP上的会话复制JBOSS 6.0
问题描述:
我正在使用EAP Jboss 6开发Struts 2框架。我的项目会话变量使用'HTTP会话映射'进行存储和检索。当我通过集群移动到Jboss的域模式时,我的会话值在服务器的不同节点之间切换时丢失了。然后,我配置了Sticky会话并将会话值存储在Cookies中。尽管我可以在第一次请求时从cookie中检索值,但HTTP会话丢失了。目前我正在使用Apache Mod Cluster进行群集配置,如下所示。EAP上的会话复制JBOSS 6.0
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule manager_module modules/mod_manager.so
LoadModule slotmem_module modules/mod_slotmem.so
LoadModule advertise_module modules/mod_advertise.so
Listen 192.168.5.30:80
<VirtualHost 192.168.5.30:80>
ManagerBalancerName my-cluster
ServerName NSN
<Directory />
Order deny,allow
Allow from all
</Directory>
<Location /mod_cluster-manager>
SetHandler mod_cluster-manager
Order deny,allow
Allow from all
</Location>
EnableMCPMReceive
#ProxyPass/balancer://my-cluster stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPass/balancer://my-cluster stickysession=off nofailover=On
ProxyPassReverse/balancer://my-cluster
ProxyPreserveHost On
KeepAliveTimeout 60
ServerAdvertise On
现在搜查,发现一些关于mod_cluster(https://github.com/modcluster/mod_cluster)。在这里提到把文件夹放在'部署JBoss服务器配置文件的目录'。但在EAP Jboss 6.0域模式下,我不知道部署目录在哪里以及如何配置该mod群集?
答
我解决了会话复制通过在WEB-INF文件夹上配置JBoss-web.xml中如下...
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web version="6.0"
xmlns="http://www.jboss.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-web_6_0.xsd">
<replication-config>
<!-- The default value is SET_AND_NON_PRIMITIVE_GET, therefore the byte array which is carrying the data is considered
non-primitive and would cause replication even in read only scenario. -->
<replication-trigger>SET</replication-trigger>
<!-- Replicating entire session is the default. -->
<replication-granularity>SESSION</replication-granularity>
<replication-mode>SYNCHRONOUS</replication-mode>
</replication-config>
在这种情况下没有必要使用Cookie存储值...