Wiki source code of Erreur javax.management.InstanceAlreadyExistsException concernant le cache (ehcache)
Last modified by Jean-Claude ALLETRU on 2024/04/23 15:16
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | ((( | ||
| 2 | == Problème == | ||
| 3 | ))) | ||
| 4 | |||
| 5 | Si dans une même instance d'un serveur d'application web (Tomcat par exemple) vous avez au moins 2 webapps Adélia Cloud ou 2 webapps Adélia Web (jsp, service web rest ou soap) vous avez lors du déploiement de la 2ème application par le serveur d'application une erreur "Error during load ehcache configuration:net.sf.ehcache.CacheException: javax.management.InstanceAlreadyExistsException". | ||
| 6 | ((( | ||
| 7 | == Solution == | ||
| 8 | ))) | ||
| 9 | |||
| 10 | Cette erreur arrive car on se retrouve au niveau de la JVM avec 2 instances du gestionnaire de cache avec un nom identique. Cela se corrige en modifiant le fichier de configuration de ehcache de la webapp. | ||
| 11 | |||
| 12 | Pour les applications Adélia Cloud il faut modifier le fichier /WEB-INF/conf/ehcache.xml | ||
| 13 | |||
| 14 | {{hardis-panel bgColor="#fff" title="Contexte Adélia Cloud"}} | ||
| 15 | 1. Ajouter un attribut "name" pour la balise ehcache | ||
| 16 | <ehcache xmlns:xsi~="[[http://www.w3.org/2001/XMLSchema-instance>>url:http://www.w3.org/2001/XMLSchema-instance]]" xsi:noNamespaceSchemaLocation~="ehcache.xsd" updateCheck~="false" monitoring~="autodetect" dynamicConfig~="true" **name~="WagonCacheN2**"> | ||
| 17 | Et faire en sorte que toutes les webapps est un name différent. | ||
| 18 | 1. Modifier l'attribut "path" de la balise diskstore : | ||
| 19 | <diskStore path~="[[java.io>>url:http://java.io]].tmpdir/**wagoncacheP2**"/> | ||
| 20 | Et faire en sorte que toutes les webapps est un path différent | ||
| 21 | |||
| 22 | |||
| 23 | {{/hardis-panel}} | ||
| 24 | |||
| 25 | Pour les applications Adélia Web il faut modifier le fichier /WEB-INF/classes/ehcacheAdelWeb.xml | ||
| 26 | |||
| 27 | {{hardis-panel bgColor="#fff" title="Contexte Adélia Web"}} | ||
| 28 | Il peut être intéressant d'utiliser un panneau pour mettre en évidence les étapes importantes.1. Modifier l'attribut "name" pour la balise ehcache | ||
| 29 | <ehcache xmlns:xsi~="[[http://www.w3.org/2001/XMLSchema-instance>>url:http://www.w3.org/2001/XMLSchema-instance]]" xsi:noNamespaceSchemaLocation~="ehcache.xsd" updateCheck~="false" monitoring~="autodetect" dynamicConfig~="true" **name~="com.hardis.adelia.ehcacheAdelWeb2**"> | ||
| 30 | Et faire en sorte que toutes les webapps est un name différent. | ||
| 31 | 1. Modifier l'attribut "path" de la balise diskstore : | ||
| 32 | <diskStore path~="[[java.io>>url:http://java.io]].tmpdir/**webcacheP2**"/> | ||
| 33 | Et faire en sorte que toutes les webapps est un path différent | ||
| 34 | |||
| 35 | |||
| 36 | {{/hardis-panel}} | ||
| 37 | |||
| 38 | |||
| 39 | |||
| 40 | |||
| 41 | |||
| 42 | |||
| 43 | |||
| 44 | |||
| 45 |