[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-5346) StandardQueryCache not alive after EntityManagerFactory is re-created

Gail Badner (JIRA) noreply at atlassian.com
Sun Jul 11 16:58:13 EDT 2010


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-5346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=37702#action_37702 ] 

Gail Badner commented on HHH-5346:
----------------------------------

Is this still an issue using 3.5.3?

> StandardQueryCache not alive after EntityManagerFactory is re-created
> ---------------------------------------------------------------------
>
>                 Key: HHH-5346
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5346
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: caching (L2)
>    Affects Versions: 3.5.3
>         Environment: Ubuntu 8.04
> Java SDK 1.6_07
> Tomcat 6.0.20
> Hibernate-core: 3.3.2.GA
> Hibernate-annotations3.4.0.GA
> Hibernate-entitymanager: 3.4.0.GA
> EhCache 2.1.1
> Specific databse product: Data Federator (SAP)
> JAX-WS stack: 2.1.7 RT
>            Reporter: Franck Michel
>
> Hi all,
> I'm facing a trouble that no post seems to be treating yet: I use Hibernate through the JPA API + EhCache as a 2nd level cache.
> In the appli.
> After a long inactivity period, I happen to get a PersistenceException at the first request to my entity manager. In this case, I create a new EntityManagerFactory, and a new EntityManager. At that moment: 
> - the first request raises an exception about the StandardCacheQuery not being alive. 
> - most curious, the second request works fine. 
> The exception stack is listed at the end. Other information about the context follows.
> Thx in advance for your help. Regards.
>    Franck.
> - ehcache.xml config:
> ---------------------
>  same exception happens with or without the StandardQueryCache region configuration.
> <ehcache>
>     <diskStore path="java.io.tmpdir"/>
>     <defaultCache
>             maxElementsInMemory="20000"
>             eternal="false"
>             timeToIdleSeconds="600"
>             timeToLiveSeconds="600"
>             overflowToDisk="true"
>             diskPersistent="false"
>             diskExpiryThreadIntervalSeconds="600"
>             memoryStoreEvictionPolicy="LRU"/>
>      <cache name="RefTables" eternal="true" maxElementsInMemory="10000" overflowToDisk="false" />
>      <cache name="org.hibernate.cache.StandardQueryCache"
>             maxElementsInMemory="20000"
>             eternal="false"
>             timeToIdleSeconds="600"
>             timeToLiveSeconds="600"
>             overflowToDisk="true"
>             diskPersistent="false"
>             diskExpiryThreadIntervalSeconds="600"
>             memoryStoreEvictionPolicy="LRU"/>
> </ehcache>
> - persistence.xml:
> ------------------
>     <persistence-unit name="DataFederator at localhost" transaction-type="RESOURCE_LOCAL">
>         <provider>org.hibernate.ejb.HibernatePersistence</provider>
>         <class>fr.anr.techlog.neurolog.server.persistence.neurologdb.AcquisitionEquipment</class>
>         <class>fr.anr.techlog.neurolog.server.persistence.neurologdb.Centre</class>
>         <exclude-unlisted-classes>true</exclude-unlisted-classes>
>         <properties>
>             <property name="hibernate.connection.username" value="neurolog"/>
>             <property name="hibernate.connection.password" value="neurolog"/>
>             ...
>             <property name="hibernate.connection.driver_class" value="LeSelect.ThinDriver.ThinDriver"/>
>             <property name="hibernate.connection.url" value="jdbc:datafederator://localhost:3055/schema"/>
>             <property name="hibernate.dialect" value="fr.anr.techlog.neurolog.server.persistence.DataFederatorSQLDialect"/>
>             <property name="hibernate.show_sql" value="true"/>
>             <property name="hibernate.cache.use_second_level_cache" value="true"/>
>             <property name="hibernate.cache.use_query_cache" value="true"/>
>             <property name="hibernate.cache.region.factory_class" value="net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory"/>
>             <property name="net.sf.ehcache.configurationResourceName" value="/conf/ehcache.xml"/>
>         </properties>
>     </persistence-unit>
> Entities:
> ---------    
> My entities are described with the annotation:
>     @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, include = "non-lazy")
> or
>     @Cache(usage = CacheConcurrencyStrategy.READ_WRITE, include = "non-lazy")
> Exception stack:
> ----------------
> java.lang.IllegalStateException: The org.hibernate.cache.StandardQueryCache Cache is not alive.
>         at net.sf.ehcache.Cache.checkStatus(Cache.java:2191)
>         at net.sf.ehcache.Cache.get(Cache.java:1354)
>         at net.sf.ehcache.hibernate.regions.EhcacheGeneralDataRegion.get(EhcacheGeneralDataRegion.java:58)
>         at net.sf.ehcache.hibernate.regions.EhcacheQueryResultsRegion.get(EhcacheQueryResultsRegion.java:29)
>         at org.hibernate.cache.StandardQueryCache.get(StandardQueryCache.java:130)
>         at org.hibernate.loader.Loader.getResultFromQueryCache(Loader.java:2188)
>         at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2151)
>         at org.hibernate.loader.Loader.list(Loader.java:2121)
>         at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
>         at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
>         at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
>         at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
>         at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
>         at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:88)
>         at fr.anr.techlog.neurolog.common.PersistenceManager.retrieveSingleNamedQuery(PersistenceManager.java:521)
>         at fr.anr.techlog.neurolog.common.PersistenceManager.retrieveSingleNamedQuery(PersistenceManager.java:501)
>         at fr.anr.techlog.neurolog.server.metadata.MetadataPuller.findDatasetExpressionById(MetadataPuller.java:147)
>         at fr.anr.techlog.neurolog.server.data.webservices.filemanagement.FileManagement.delegateMakePublicCopyOfDsExpressionFiles(FileManagement.java:633)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:246)
>         at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146)
>         at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:257)
>         at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
>         at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:598)
>         at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:557)
>         at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:542)
>         at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:439)
>         at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)
>         at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:471)
>         at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
>         at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)
>         at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)
>         at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160)
>         at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list