We apologize for untranslated text, you can use the Google Translation button to get an automatic translation of the web page in the language of your choice.

Erreur lors de la compilation

Michel ANDRIANAIVO · on 6/18/19 at 2:41 PM

Bonjour, 

Je suis sur JCMS 9, à la compialtion j'ai une erreur qui m'empêche d'executer le projet après modidication du fichier doEdit que je souhaitais modifier. J'ai mis à jour le package generated, malgré celà voici l'erreur:

14:22:08,966 WARN [TEST - Contact] [LogManager] - Error while parsing the store
java.io.IOException: Map failed
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:888)
at com.jalios.jstore.LogManager.getStoreInputStream(LogManager.java:289)
at com.jalios.jstore.LogManager.parseLog(LogManager.java:354)
at com.jalios.jstore.LogManager.parseLog(LogManager.java:324)
at com.jalios.jstore.LogManager.load(LogManager.java:145)
at com.jalios.jstore.Store.load(Store.java:554)
at com.jalios.jstore.Store.load(Store.java:539)
at com.jalios.jcms.Channel.loadStore(Channel.java:1332)
at com.jalios.jcms.ChannelInitServlet.init(ChannelInitServlet.java:127)
at com.jalios.jcms.ChannelInitServlet.init(ChannelInitServlet.java:81)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5231)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5518)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.OutOfMemoryError: Map failed
at sun.nio.ch.FileChannelImpl.map0(Native Method)
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:885)
... 21 more
14:22:08,970 FATAL [TEST - Contact] [ChannelInitServlet] - An exception occured while initializing JCMS. The site is not available.
com.jalios.jstore.LogException: Error (java.io.IOException) while parsing the store : Map failed
at com.jalios.jstore.LogManager.parseLog(LogManager.java:371)
at com.jalios.jstore.LogManager.parseLog(LogManager.java:324)
at com.jalios.jstore.LogManager.load(LogManager.java:145)
at com.jalios.jstore.Store.load(Store.java:554)
at com.jalios.jstore.Store.load(Store.java:539)
at com.jalios.jcms.Channel.loadStore(Channel.java:1332)
at com.jalios.jcms.ChannelInitServlet.init(ChannelInitServlet.java:127)
at com.jalios.jcms.ChannelInitServlet.init(ChannelInitServlet.java:81)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5231)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5518)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
juin 18, 2019 2:22:08 PM org.apache.catalina.core.StandardContext loadOnStartup
GRAVE: La servlet /jcms a généré une exception "load()"
javax.servlet.ServletException: An exception occured while initializing JCMS. The site is not available.
at com.jalios.jcms.ChannelInitServlet.init(ChannelInitServlet.java:187)
at com.jalios.jcms.ChannelInitServlet.init(ChannelInitServlet.java:81)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5231)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5518)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

0 pts
Cyrille Arzoumanian · on 6/18/19 at 2:42 PM

 Error while parsing the store ????

 

C'est plus une erreur de store... vous avez pas une balise ou un truc qui traine dans le store ?? 

0 pts
Frédéric Touitou · on 6/19/19 at 10:41 AM

Bonjour,

Apparemment, la "vraie cause" est celle-ci (le gras est de moi) :

Caused by: java.lang.OutOfMemoryError: Map failed

Puisque le chargement du store se fait via NIO, i.e. directement en mémoire (indépendamment de celle attribuée à la JVM avec les options -Xms et -Xmx : il s'agit de la mémoire restant disponible dans l'OS), il se peut qu'il n'y en ait pas assez à disposition pour assurer le chargement du store (cf. aussi notre fiche NIO : qu'est-ce que c'est ?).

Il faut donc :

  • Soit si possible augmenter la mémoire disponible sur votre serveur (si la limite des 2Go pour le placement du store en mémoire n'est pas encore atteinte...)
  • Soit - et c'est ce qui est fait en général - désactiver NIO, afin que le chargement se fasse de façon "traditionnelle", au prix d'un temps de démarrage (et de toute manipulation du store, pour JSync notamment le cas échéant) un peu plus long, en spécifiant la propriété suivante : channel.store.nio: false

Bien cordialement.

3 pts