Hi Stephen.

Have you tried to add through Maven any of the Java Caches available?

As per [1], seems DN declares a wrapper arround them, so you will need to add 
one implementation. 

Many are mentioned on the URL you included.

HTH,

Oscar






> El 7 dic 2016, a las 12:47, Stephen Cameron <[email protected]> 
> escribió:
> 
> Hi,
> 
> I am interested to try Level 2 caching to see what performance benefits I
> can gain.
> 
> At the moment I cannot configure it.
> 
> In the file persistor_datanucleus.properties I have these settings:
> 
> #
> # L2 cache
> # off except if explicitly marked as cacheable
> # http://www.datanucleus.org/products/datanucleus/jdo/cache.html
> #
> isis.persistor.datanucleus.impl.datanucleus.cache.level2.type=javax.cache
> isis.persistor.datanucleus.impl.datanucleus.cache.level2.mode=UNSPECIFIED
> isis.persistor.datanucleus.cache.level2.cacheName=myCache
> 
> I then get the following errors on start-up. This missing class
> "org.datanucleus.cache.JavaxCacheLevel2Cache" does seem to be on the
> classpath, within datanucleus-core.4.1.7.jar
> 
> 1) Error in custom provider, javax.jdo.JDOFatalUserException: Level 2 Cache
> "javax.cache" is registered to use class
> "org.datanucleus.cache.JavaxCacheLevel2Cache" yet this is not found. Please
> check your CLASSPATH and plugin specification.
> NestedThrowables:
> java.lang.reflect.InvocationTargetException
>  at
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSessionFactory(IsisInjectModule.java:109)
>  at
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSessionFactory(IsisInjectModule.java:109)
>  while locating
> org.apache.isis.core.runtime.system.session.IsisSessionFactory
>    for field at
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.isisSessionFactory(IsisWicketApplication.java:138)
>  while locating domainapp.webapp.DomainApplication
> 
> 1 error
>    at
> com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:482)
>    at
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:67)
>    at
> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:984)
>    at
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:279)
>    at domainapp.webapp.DomainApplication.init(DomainApplication.java:64)
>    at org.apache.wicket.Application.initApplication(Application.java:823)
>    at
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
>    ... 19 more
> Caused by: javax.jdo.JDOFatalUserException: Level 2 Cache "javax.cache" is
> registered to use class "org.datanucleus.cache.JavaxCacheLevel2Cache" yet
> this is not found. Please check your CLASSPATH and plugin specification.
> NestedThrowables:
> java.lang.reflect.InvocationTargetException
>    at
> org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:606)
>    at
> org.datanucleus.api.jdo.JDOPersistenceManagerFactory.freezeConfiguration(JDOPersistenceManagerFactory.java:859)
>    at
> org.datanucleus.api.jdo.JDOPersistenceManagerFactory.createPersistenceManagerFactory(JDOPersistenceManagerFactory.java:337)
>    at
> org.datanucleus.api.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFactory(JDOPersistenceManagerFactory.java:216)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>    at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>    at java.lang.reflect.Method.invoke(Method.java:497)
>    at javax.jdo.JDOHelper$16.run(JDOHelper.java:1970)
>    at java.security.AccessController.doPrivileged(Native Method)
>    at javax.jdo.JDOHelper.invoke(JDOHelper.java:1965)
>    at
> javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1171)
>    at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:813)
>    at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:702)
>    at
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.isSchemaAwareStoreManager(DataNucleusApplicationComponents.java:117)
>    at
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createPmfAndSchemaIfRequired(DataNucleusApplicationComponents.java:132)
>    at
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.initialize(DataNucleusApplicationComponents.java:108)
>    at
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.<init>(DataNucleusApplicationComponents.java:101)
>    at
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.createDataNucleusApplicationComponents(PersistenceSessionFactory.java:99)
>    at
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.init(PersistenceSessionFactory.java:76)
>    at
> org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder.buildSessionFactory(IsisSessionFactoryBuilder.java:202)
>    at
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSessionFactory(IsisInjectModule.java:118)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>    at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>    at java.lang.reflect.Method.invoke(Method.java:497)
>    at
> com.google.inject.internal.ProviderMethod$ReflectionProviderMethod.doProvision(ProviderMethod.java:299)
>    at
> com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:172)
>    at
> com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
>    at
> com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
>    at
> com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
>    at
> com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
>    at
> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
>    at
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
>    at
> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
>    at
> com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
>    at
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
>    at
> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:54)
>    at
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:132)
>    at
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:93)
>    at
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:80)
>    at
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
>    at
> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:80)
>    at
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:62)
>    ... 24 more
> Caused by: java.lang.reflect.InvocationTargetException
>    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>    at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>    at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
>    at
> org.datanucleus.plugin.NonManagedPluginRegistry.createExecutableExtension(NonManagedPluginRegistry.java:606)
>    at
> org.datanucleus.plugin.PluginManager.createExecutableExtension(PluginManager.java:301)
>    at
> org.datanucleus.PersistenceNucleusContextImpl.getLevel2Cache(PersistenceNucleusContextImpl.java:1373)
>    at
> org.datanucleus.PersistenceNucleusContextImpl.initialise(PersistenceNucleusContextImpl.java:449)
>    at
> org.datanucleus.api.jdo.JDOPersistenceManagerFactory.freezeConfiguration(JDOPersistenceManagerFactory.java:846)
>    ... 66 more
> Caused by: org.datanucleus.exceptions.NucleusException: Error creating cache
>    at
> org.datanucleus.cache.JavaxCacheLevel2Cache.<init>(JavaxCacheLevel2Cache.java:98)
>    ... 75 more
> Caused by: javax.cache.CacheException: No CachingProviders have been
> configured
>    at
> javax.cache.Caching$CachingProviderRegistry.getCachingProvider(Caching.java:381)
>    at
> javax.cache.Caching$CachingProviderRegistry.getCachingProvider(Caching.java:351)
>    at javax.cache.Caching.getCachingProvider(Caching.java:142)
>    at
> org.datanucleus.cache.JavaxCacheLevel2Cache.<init>(JavaxCacheLevel2Cache.java:64)



Óscar Bou Bou
Socio - IT & GRC Management Services Director
m: +34 620 267 520
s:  <http://www.govertis.com/>www.govertis.com <http://www.govertis.com/> e: 
[email protected] <mailto:[email protected]>

LinkedIn: https://www.linkedin.com/in/oscarbou 
<https://www.linkedin.com/in/oscarbou>
Twitter:        @oscarbou <https://twitter.com/oscarbou>



Este mensaje y los ficheros anexos son confidenciales. Los mismos contienen 
información reservada que no puede ser difundida. Si usted ha recibido este 
correo por error, tenga la amabilidad de eliminarlo de su sistema y avisar al 
remitente mediante reenvío a su dirección electrónica; no deberá copiar el 
mensaje ni divulgar su contenido a ninguna persona.

Su dirección de correo electrónico junto a sus datos personales constan en un 
fichero titularidad de GOVERTIS ADVISORY SERVICES, S.L. cuya finalidad es la de 
mantener el contacto con Ud. Si quiere saber de qué información disponemos de 
Ud., modificarla, y en su caso, cancelarla, puede hacerlo enviando un escrito 
al efecto, acompañado de una fotocopia de su D.N.I. a la siguiente dirección: 
GOVERTIS ADVISORY SERVICES, S.L. Avda Cortes Valencianas, 58 – 8º - 6ª. 46015 - 
Valencia,  y Paseo de la Castellana, 153, 28045 - MADRID. Asimismo, es su 
responsabilidad comprobar que este mensaje o sus archivos adjuntos no contengan 
virus informáticos, y en caso que los tuvieran eliminarlos.


Reply via email to