2013-09-16 2 views
2

Я пытаюсь запустить мое веб-приложение JSF в кластере домена с двумя узлами.Репликация сеанса HTTP в JBoss EAP 6.1

Я не могу получить сеанс HTTP, реплицируемый между узлами.

Я настроил мой web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 

    <session-config> 
     <session-timeout>30</session-timeout> 
    <tracking-mode>URL</tracking-mode> 
    </session-config> 

    <distributable></distributable> 

</web-app> 

и JBoss-web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-web> 
    <context-root>thumbzup-admin</context-root> 

    <!--replication-config> 
     <replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger> 
     <replication-granularity>SESSION</replication-granularity> 
    </replication-config--> 
    <replication-config> 
    <cache-name>custom-session-cache</cache-name> 
    <replication-trigger>SET</replication-trigger> 
    <replication-granularity>ATTRIBUTE</replication-granularity> 
    <!--replication-field-batch-mode>true</replication-field-batch-mode--> 
    <use-jk>false</use-jk> 
    <max-unreplicated-interval>30</max-unreplicated-interval> 
    <snapshot-mode>INSTANT</snapshot-mode> 
    <snapshot-interval>1000</snapshot-interval> 
    <replication-mode>SYNCHRONOUS</replication-mode> 
    <!--session-notification-policy>com.example.CustomSessionNotificationPolicy</session-notification-policy--> 
    </replication-config> 
</jboss-web> 

и Infinispan Cache Container в domain.xml;

<cache-container name="web" aliases="standard-session-cache" default-cache="repl" module="org.jboss.as.clustering.web.infinispan"> 
        <transport lock-timeout="60000"/> 
        <replicated-cache name="repl" mode="ASYNC" batching="true"> 
         <file-store/> 
        </replicated-cache> 
        <replicated-cache name="sso" mode="SYNC" batching="true"/> 
        <distributed-cache name="dist" l1-lifespan="0" mode="ASYNC" batching="true"> 
         <file-store/> 
        </distributed-cache> 
       </cache-container> 

Но я не смог получить сеанс, созданный на NODE1 при использовании той же SESSIONID на NODE2.

Любые предложения?

ответ

2

Имя «Пользовательский сеанс-кеш» , определенный вами в jboss-web.xml, похоже, не соответствует кешу внутри domain.xml. Удалить «cache-name» свойство полностью использовать значение свойства «default-cache» контейнера «web» или добавить запись в кэш с таким именем

Смежные вопросы