2017-10-06 7 views
0

j'ai ajouté un cache via CLI dans JBoss 7:paramètres de cache Infinispan définies dans JBoss EAP 7.0 standalone.xml ne se reflètent pas dans l'application

/subsystem=infinispan/cache-container=sample:add 
/subsystem=infinispan/cache-container=sample/replicated-cache=account:add(mode=ASYNC) 
/subsystem=infinispan/cache-container=sample/replicated-cache=account/component=transaction:write-attribute(name=mode,value=BATCH) 
/subsystem=infinispan/cache-container=sample/replicated-cache=account/component=locking:write-attribute(name=isolation, value=REPEATABLE_READ) 

Vu qu'il reflète dans le sous-système Infinispan de standalone.xml:

<cache-container name="sample"> 
    <replicated-cache name="account" mode="ASYNC"> 
     <locking isolation="REPEATABLE_READ"/> 
     <transaction mode="BATCH"/> 
    </replicated-cache> 
</cache-container> 

vu reflétée dans la console JBoss:

enter image description here

Mais lorsqu'il est utilisé dans l'application, le conteneur de cache est trouvé, mais pas le cache. Au lieu de cela, il est créé paresseusement lorsque cacheManager#getCache est appelé avec différents paramètres définis.

enter image description here

jeu de mode est reproduit, mais ce qui se trouve est locale. D'autres paramètres comme la transaction sont également différents. Ai-je manqué quelque chose?

+0

Hmmm, avez-vous essayé avec le dernier serveur d'applications JBoss/wildfly, ce serait wildfly 10. –

+0

J'aimerais, mais mon organisation interdit pour le moment. –

+0

Si j'étais vous, je voudrais essayer au moins avec Wildfly 10 ou 11 et voir si cela fonctionne comme prévu. Si c'est le cas, vous avez une raison de mettre à niveau votre organisation. Si ce n'est pas le cas, peut-être que quelque chose d'autre manque. –

Répondre

1

J'ai eu un problème très similaire à vous. J'avais un cache local avec une durée de vie configurée dans EAP 7. Il était configuré pour être relativement court. La même configuration a bien fonctionné plus tôt, mais nous avons réalisé, que les choses cachées sont restées dans le cache pour toujours.

Le problème était comment nous sommes arrivés à l'instance du cache. Nous avons injecté le gestionnaire de cache:

@Resource(lookup = "java:jboss/infinispan/download-manager") 
private CacheContainer cacheContainer; 

Ensuite, nous avons utilisé le conteneur de cache pour accéder au cache. Après avoir débogué la durée de vie était -1 même si la durée de vie dans EAP 7 était de 30 secondes seulement. N'a pas obtenu l'instance du cache, mais au lieu de cela, il a créé un nouveau cache avec des valeurs par défaut. Je pense que cela explique votre paramètre "cache local" seulement.

La façon dont je suis arrivé au cache avec les paramètres appropriés était:

@Resource(lookup = "java:jboss/infinispan/cache/download-manager/someCache") 
private Cache<String, Object> negative_cache_direct;