2013-05-06 126 views
1

我正在使用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群集?

回答

0

我解决了会话复制通过在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存储值...