2015-02-27 3 views
0

В моей Sping основе проекта (весна версия 4.1.5.FINAL), я использую EHCache-ядро версии 2.6.10, EHCache-jgroupsreplication Versione 1,7 и JGroups 3.1.0.FINALEhcache JGroups

Этот моя конфигурация XML EHCache:

<?xml version="1.0" encoding="UTF-8"?> 
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" name="webCache" > 
<diskStore path="java.io.tmpdir/webCache"/> 
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory" properties="udp.xml"/> 
<cache name="it.test.cache.CustomCache" 
      maxElementsInMemory="1000" 
      eternal="false" 
      timeToIdleSeconds="600" 
      timeToLiveSeconds="6000" 
      overflowToDisk="true"> 
<cacheEventListenerFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory" properties="replicateAsynchronously=true,replicatePuts=true,replicateUpdates=true,replicateUpdatesViaCopy=false,replicateRemovals=true" /> 
</cache> 
</ehcache> 

Это моя конфигурация upd.xml:

<config xmlns="urn:org:jgroups" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/jgroups.xsd"> 
    <UDP 
     mcast_port="${jgroups.udp.mcast_port:45588}" 
     tos="8" 
     ucast_recv_buf_size="200K" 
     ucast_send_buf_size="200K" 
     mcast_recv_buf_size="200K" 
     mcast_send_buf_size="200K" 
     max_bundle_size="64K" 
     max_bundle_timeout="30" 
     ip_ttl="${jgroups.udp.ip_ttl:2}" 
     enable_diagnostics="true" 
     thread_naming_pattern="cl" 
     timer_type="new" 
     timer.min_threads="4" 
     timer.max_threads="10" 
     timer.keep_alive_time="3000" 
     timer.queue_max_size="500" 
     thread_pool.enabled="true" 
     thread_pool.min_threads="2" 
     thread_pool.max_threads="8" 
     thread_pool.keep_alive_time="5000" 
     thread_pool.queue_enabled="true" 
     thread_pool.queue_max_size="10000" 
     thread_pool.rejection_policy="discard" 
     oob_thread_pool.enabled="true" 
     oob_thread_pool.min_threads="1" 
     oob_thread_pool.max_threads="8" 
     oob_thread_pool.keep_alive_time="5000" 
     oob_thread_pool.queue_enabled="false" 
     oob_thread_pool.queue_max_size="100" 
     oob_thread_pool.rejection_policy="Run"/> 
    <PING /> 
    <MERGE3 max_interval="30000" 
      min_interval="10000"/> 
    <FD_SOCK/> 
    <FD_ALL/> 
    <VERIFY_SUSPECT timeout="1500" /> 
    <BARRIER /> 
    <pbcast.NAKACK use_mcast_xmit="true" 
        retransmit_timeout="300,600,1200" 
        discard_delivered_msgs="true"/> 
    <UNICAST/> 
    <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000" 
        max_bytes="4M"/> 
    <pbcast.GMS print_local_addr="true" join_timeout="3000" 
       view_bundling="true"/> 
    <UFC max_credits="2M" 
     min_threshold="0.4"/> 
    <MFC max_credits="2M" 
     min_threshold="0.4"/> 
    <FRAG2 frag_size="60K" /> 
    <pbcast.STATE_TRANSFER /> 
</config> 

В моем контексте весной XML у меня есть следующий (я помещу только фрагмент моего весеннего контекста файла):

<bean id="settaSystemProps" name="settaSystemProps" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
    <property name="targetObject"> 
     <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
      <property name="targetClass" value="java.lang.System" /> 
      <property name="targetMethod" value="getProperties" /> 
     </bean> 
    </property> 
    <property 
     name="targetMethod" value="putAll" /> 
    <property 
     name="arguments"> 
     <util:properties> 
      <prop key="jgroups.logging.log_factory_class">it.test.cache.replication.jgroups.log.logback.impl.LogbackLogImpl</prop> 
      <prop key="java.net.preferIPv4Stack">true</prop> 
     </util:properties> 
    </property> 
</bean> 
<bean id="webCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" depends-on="settaSystemProps"> 
    <property name="configLocation" value="classpath:webCoMiEhCacheCfg.xml"/> 
</bean> 

К сожалению, с помощью этой конфигурации, я не могу в отправке/приеме сообщений в кластере

Когда я начинаю кот я вижу следующую печать (и не использую свой собственный журнал) :

27 февраля 2015 10:31:18 AM org.jgroups.logging.JDKLogImpl ошибка Grave: удалось отправить сообщение для кластера (65 байт): java.lang.Exception: Dest =/228.8. 8.8: 45588 (68 bytes), причина: java.io.IOException: недействительный argume nt feb 27, 2015 10:31:19 AM org.jgroups.logging.JDKLogImpl error Могила: не удалось отправить сообщение кластеру (65 байт): java.lang.Exception: dest =/228.8.8.8: 45588 (68 байты), причина: java.io.IOException: недопустимый аргумент фев 27, 2015 10:31:28 AM org.jgroups.logging.JDKLogImpl error Могила: сообщение об ошибке не отправлено кластер (65 байт): java.lang .Exception: dest =/228.8.8.8: 45588 (68 bytes), cause: java.io.IOException: Неверный аргумент feb 27, 2015 10:31:28 AM org.jgroups.logging.JDKLogImpl error Могила: неудачная отправка сообщение в кластер (65 байт): java.lang.Exception: dest =/228.8.8.8: 45588 (68 bytes), cause: java.io.IOException: Недействительный аргумент

Может ли кто-нибудь сказать мне, где я ошибаюсь? Мне нужно синхронизировать EhCache на кластере, образованном двумя узлами

Может ли кто-нибудь предоставить мне образец рабочей конфигурации?

спасибо

Angelo

ответ

1

Что выход при запуске экземпляра? Я думаю, вы все еще можете использовать IPv6. Можете ли вы использовать -Djava.net.preferIPv4Stack = true вместо определения этого в XML?

+0

Я пробовал, как вы предложили, и теперь, похоже, он работает; в моей среде я установил следующие свойства: -Djava.net.preferIPv4Stack = true -Djgroups.logging.log_factory_class = customLog. Кэши теперь синхронизируются на кластере, образованном тремя узлами (2 tomcat и 1 IBM WAS), но мне кажется, что customLog не используется. В любом случае ... спасибо –

+0

Возможно, вам нужно определить полное имя класса для настраиваемого журнала. Рад слышать, что это работает сейчас –

+0

Я использовал полное квалифицированное имя (в раннем комментарии я использовал ярлык) Я постараюсь расследовать, потому что мне нужно использовать логическую реализацию регистратора ... спасибо –

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