2011-02-28 7 views
1

En utilisant la même configuration, avec uniquement defaultCache, j'obtiens des données incohérentes (cas A). Mais si j'ajoute une entrée de cache supplémentaire n'obtiendra pas ces erreurs d'incohérence (cas B).Problème defaultCache et le cache dans l'environnement distribué (données incohérentes)

Savez-vous pourquoi?

Je ne veux pas mettre les 130 caches qui définissent aumaticamente defaultCache

Merci à l'avance

P. S. Je suppose que tout le temps que ce qui est pas spécifié, sera EHCache comme un modèle en utilisant les paramètres defaultCache.

Cas A:

<defaultCache 
    maxElementsInMemory="10000" 
    eternal="false" 
    timeToIdleSeconds="0" 
    overflowToDisk="false" 

> 
    <cacheEventListenerFactory 
     class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" 

    /> 
    <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" /> 
</defaultCache> 

`

Cas B:

<defaultCache 
    maxElementsInMemory="10000" 
    eternal="false" 
    timeToIdleSeconds="0" 
    overflowToDisk="false" 

> 
    <cacheEventListenerFactory 
     class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" 

    /> 
    <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" /> 
</defaultCache> 

<cache 
    name="com.liferay.portal.model.impl.LayoutImpl" 
    maxElementsInMemory="10000" 
    eternal="false" 
    timeToIdleSeconds="0" 
    overflowToDisk="false" 
> 
    <cacheEventListenerFactory 
     class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" 
    /> 
    <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" /> 
</cache> 

Répondre

0

Puisque vous avez pas dit comment vous utilisez le cache, il est difficile de deviner ce que vous faites vraiment et quelles erreurs d'incohérence voulez-vous dire? Peut-être que vous ne mettez pas en cache les résultats de la requête avec des entités mises en cache, ce qui rend les entités à lire à partir du cache et les requêtes de la base de données? Il y a beaucoup de cas possibles.

+0

Ce numéro apparaît dans portail Liferay et je l'ai identifié dans la mise en page quand j'ajouter un portlet dans une machine du cluster et je ne peux pas le voir dans un autre. Comme je l'ai dit, si je mets "cas B" cela fonctionne mais dans "cas A" je vois des données incohérentes et je pense que cela devrait avoir le même comportement. – shilox

0

Nous avons essayé d'exécuter Liferay sur le cluster env et avons obtenu la même erreur: default config ne fonctionne pas. J'ai fait quelques changements, peut-être que ma config vous aidera.

hibernate-clustered.xml

liferay-multi-vm-clustered.xml

+0

La différence est que nous ne sommes pas en multidiffusion. Nous effectuons un peerDiscovery manuel et ajoutons manuellement chaque cache créé par defaultCache (précédemment répertorié car il est impossible de savoir de qui il s'agit). Nous avons maintenant trouvé des problèmes de données incohérents mais pas dans chaque cache. C'est très étrange: S – shilox

Questions connexes