[hibernate-issues] [Hibernate-JIRA] Updated: (HHH-5971) Bad performance UpdateTimestampsCache ReentrantReadWriteLock

Strong Liu (JIRA) noreply at atlassian.com
Fri Nov 18 03:08:19 EST 2011


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-5971?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Strong Liu updated HHH-5971:
----------------------------

    Issue Type: Improvement  (was: Bug)

> Bad performance UpdateTimestampsCache ReentrantReadWriteLock
> ------------------------------------------------------------
>
>                 Key: HHH-5971
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5971
>             Project: Hibernate Core
>          Issue Type: Improvement
>    Affects Versions: 3.6.1
>         Environment: hibernate 3.6.1, jboss as eap 4.3
>            Reporter: Fernando Paris
>            Assignee: Strong Liu
>            Priority: Critical
>
> Performance bootleneck created by UpdateTimestampsCache  invalidate, generating full heap. On the threaddump have 346 threads waiting for
> "ajp-0.0.0.0-5490-251" daemon prio=10 tid=0x00002aabc683c000 nid=0x7673 waiting on condition [0x000000005b4da000]
>    java.lang.Thread.State: WAITING (parking)
>                 at sun.misc.Unsafe.park(Native Method)
>                 - parking to wait for  <0x00002aaac1c8c9d0> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
>                 at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>                 at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
>                 at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778)
>                 at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114)
>                 at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:807)
>                 at org.hibernate.cache.UpdateTimestampsCache.invalidate(UpdateTimestampsCache.java:88)
>                 at org.hibernate.engine.ActionQueue$AfterTransactionCompletionProcessQueue.afterTransactionCompletion(ActionQueue.java:604)
>                 at org.hibernate.engine.ActionQueue.afterTransactionCompletion(ActionQueue.java:209)
>                 at org.hibernate.impl.SessionImpl.afterTransactionCompletion(SessionImpl.java:602)
>                 at org.hibernate.jdbc.JDBCContext.afterNontransactionalQuery(JDBCContext.java:292)
>                 at org.hibernate.impl.SessionImpl.afterOperation(SessionImpl.java:595)
>                 at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1273)
>                 at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
>                 at org.springframework.orm.hibernate3.HibernateTemplate$34.doInHibernate(HibernateTemplate.java:1024)
>                 at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
>                 at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
>                 at org.springframework.orm.hibernate3.HibernateTemplate.findByNamedQueryAndNamedParam(HibernateTemplate.java:1015)
>                 at com.rumbo.hotel.dbaccess.dao.impl.DhotMetadataDAOImpl.getByDescriptionKey(DhotMetadataDAOImpl.java:46)
>                 at com.rumbo.alojamientos.tools.parameter.HotelParameterCacheManager.getParameter(HotelParameterCacheManager.java:113)
>                 at com.rumbo.alojamientos.tools.parameter.HotelParameterCacheManager.getParameterValue(HotelParameterCacheManager.java:76)
>                 at com.rumbo.alojamientos.tools.parameter.HotelParameterCacheManager.getParameterValue(HotelParameterCacheManager.java:87)
>                 at com.rumbo.alojamientos.tools.logging.LoggingUtilities.isLogWritingActive(LoggingUtilities.java:189)
>                 at com.rumbo.alojamientos.tools.logging.LoggingUtilities.isLogWritingActive(LoggingUtilities.java:232)
>                 at com.rumbo.alojamientos.tools.logging.LoggingUtilities.saveLog(LoggingUtilities.java:141)
>                 at com.rumbo.hoteles.ws.interceptor.LoggingInterceptor.saveLog(LoggingInterceptor.java:168)
>                 at com.rumbo.hoteles.ws.interceptor.LoggingInterceptor.handleRequest(LoggingInterceptor.java:94)
>                 at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:213)
>                 at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:168)
>                 at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88)
>                 at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57)
>                 at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:230)
>                 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
>                 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
>                 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 com.rumbo.mvc.encoding.EncodingFilter.doFilter(EncodingFilter.java:61)
>                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>                 at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>                 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>                 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
>                 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
>                 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
>                 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>                 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
>                 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
>                 at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:543)
>                 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>                 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
>                 at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
>                 at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:381)
>                 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>                 at java.lang.Thread.run(Thread.java:619)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list