如何知道Hibernate已经成功运用了二级缓存EhCache

http://yulimin.javaeye.com/blog/30826

问题是DEBUG之后我也不清楚应该看哪里!
DEBUG的信息实在是太多,很难看全!
能否给个实例,指出那里显示了使用了二级缓存!

 

对Log4J进行分类分级一下,我的如下,你可以进行修改:

代码

  1. log4j.threshold = ALL   
  2. log4j.rootLogger = ALL   
  3. #   
  4. log4j.category.org.springframework debug,FrameWorkSpring   
  5. log4j.category.org.hibernate debug,FrameWorkHibernate   
  6. log4j.category.net.sf.ehcache debug,FrameWorkEhCache   
  7.   
  8. log4j.appender.FrameWorkSpring org.apache.log4j.DailyRollingFileAppender   
  9. log4j.appender.FrameWorkSpring.File ${system.logPath}/FrameWorkSpring.log   
  10. log4j.appender.FrameWorkSpring.DatePattern yyyy-MM-dd'.log'   
  11. log4j.appender.FrameWorkSpring.layout org.apache.log4j.PatternLayout   
  12. log4j.appender.FrameWorkSpring.layout.ConversionPattern [%c]-[%p] %m%n   
  13. log4j.appender.FrameWorkSpring.append false  
  14.   
  15. log4j.appender.FrameWorkHibernate org.apache.log4j.DailyRollingFileAppender   
  16. log4j.appender.FrameWorkHibernate.File ${system.logPath}/FrameWorkHibernate.log   
  17. log4j.appender.FrameWorkHibernate.DatePattern yyyy-MM-dd'.log'   
  18. log4j.appender.FrameWorkHibernate.layout org.apache.log4j.PatternLayout   
  19. log4j.appender.FrameWorkHibernate.layout.ConversionPattern [%c]-[%p] %m%n   
  20. log4j.appender.FrameWorkHibernate.append false  
  21.   
  22. log4j.appender.FrameWorkEhCache org.apache.log4j.DailyRollingFileAppender   
  23. log4j.appender.FrameWorkEhCache.File ${system.logPath}/FrameWorkEhCache.log   
  24. log4j.appender.FrameWorkEhCache.DatePattern yyyy-MM-dd'.log'   
  25. log4j.appender.FrameWorkEhCache.layout org.apache.log4j.PatternLayout   
  26. log4j.appender.FrameWorkEhCache.layout.ConversionPattern [%c]-[%p] %m%n   
  27. log4j.appender.FrameWorkEhCache.append false  

 

可以看到命中的信息

代码

  1. [net.sf.ehcache.store.MemoryStore]-[DEBUG] xxx.xxx.XyzCache: xxx.xxx.XyzMemoryStore hit for xxx.xxx.Xyz#8  

 

没命中的信息:

代码

  1. [net.sf.ehcache.Cache]-[DEBUG] xxx.xxx.Xyz cache - Miss   

大概是这样子的,可以继续进行观察它的详细log信息再做分析。 

增加一些信息:

EhCache初始化的信息

代码

  1. [net.sf.ehcache.CacheManager]-[DEBUG] Configuring ehcache from classpath.   
  2. [net.sf.ehcache.config.ConfigurationFactory]-[DEBUG] Configuring ehcache from ehcache.xml found in the classpath: file:xxx/WEB-INF/classes/ehcache.xml   
  3. [net.sf.ehcache.config.ConfigurationFactory]-[DEBUG] Configuring ehcache from URL: file:xxx/WEB-INF/classes/ehcache.xml   
  4. [net.sf.ehcache.config.ConfigurationFactory]-[DEBUG] Configuring ehcache from InputStream   
  5. [net.sf.ehcache.config.DiskStoreConfiguration]-[DEBUG] Disk Store Path: xxx   
  6. [net.sf.ehcache.config.ConfigurationHelper]-[DEBUG] No CacheManagerEventListenerFactory class specified. Skipping...   
  7. [net.sf.ehcache.config.ConfigurationHelper]-[DEBUG] No CachePeerListenerFactoryConfiguration specified. Not configuring a CacheManagerPeerListener.   
  8. [net.sf.ehcache.config.ConfigurationHelper]-[DEBUG] No BootstrapCacheLoaderFactory class specified. Skipping...   

 

EhCache开始工作的信息

代码

  1. [net.sf.ehcache.store.DiskStore]-[DEBUG] Deleting data file xxx.xxx.Xyz.data   
  2. [net.sf.ehcache.store.MemoryStore]-[DEBUG] Initialized net.sf.ehcache.store.LruMemoryStore for xxx.xxx.Xyz   
  3. [net.sf.ehcache.store.LruMemoryStore]-[DEBUG] xxx.xxx.Xyz Cache: Using SpoolingLinkedHashMap implementation   
  4. [net.sf.ehcache.Cache]-[DEBUG] Initialised cache: xxx.xxx.Xyz 
时间: 2024-12-05 02:30:28

如何知道Hibernate已经成功运用了二级缓存EhCache的相关文章

hibernate一级缓存,二级缓存,三级缓存,缓存算法及配置。

什么是缓存(我的理解):在内存中开辟一块空间,把原来在硬盘上的东西,放到内存当中,当需要用到一些数据时,直接在内存中查找,而不是到硬盘上查找.这块内存中的空间就是缓存.缓存能提高程序的运行效率. 一级缓存(session级的缓存):在一个session中load同一个对象2次,load时,hibernate首先在session缓存中查找对象,如果没找到就到数据库中去load.因此,在同一个session中load一个对象2次,只会发出一条sql语句.而在2个session中load同一个对象则会

SSH框架网上商城项目第16战之Hibernate二级缓存处理首页热门显示_java

网上商城首页都有热门商品,那么这些商品的点击率是很高的,当用户点击某个热门商品后需要进入商品的详细信息页面,就像淘宝里面那样.那么每次点击都要去后台查询一下该商品的详细信息,就会发送相应的sql语句,每次刷新一下详细页面也会发sql语句,这样的话,性能肯定会受到很大的影响.那么使用Hibernate的二级缓存就可以解决这个问题. 有些人可能会想,我们可以使用重定向,这样的话,在用户第一次访问的时候把信息查出来放到session中,以后每次用户刷新就可以去session中拿了,这样就不用去数据库中

【hibernate框架】缓存机制之二级缓存

二级缓存是sessionFactory级别的缓存,可以跨越session存在. hibernate文档里关于二级缓存的说明: 二级缓存(The Second Level Cache) hibernate支持多种多样的二级缓存的实现,但hibernate本身并没有写二级缓存的实现(有一个是用来内部测试的,不要用于产品开发),而是由其他的厂商来提供. 表 21.1. 缓存策略提供商(Cache Providers) org.hibernate.cache.HashtableCacheProvider

Hibernate整合spring配置二级缓存

applicationContext.xml 文件配置: <prop key="hibernate.cache.use_second_level_cache">true</prop> <!--设置缓存机制为二级缓存 --> <prop key="hibernate.cache.use_query_cache">true</prop> <!--启动查询缓存 --> <prop key=&qu

Hibernate的二级缓存问题

问题描述 Hibernate的二级缓存问题 1.hibernate.cfg.xml配置如下 <!-- 设置二级缓存供应商 --> <property name="cache.provider_class"> org.hibernate.cache.EhCacheProvider </property> <!-- 开启二级缓存 --> <property name="cache.use_second_level_cache&

详解Java的Hibernate框架中的缓存与二级缓存_java

缓存 今天我们就来讲一下hibernate中实体状态和hibernate缓存.  1)首先我们先来看一下实体状态:  实体状态主要分三种:transient,persitent,detached.  看英文应该就大概明白了吧.  transient:是指数据还没跟数据库中的数据相对应.  persistent:是指数据跟数据库中的数据相对应,它的任何改变都会反映到数据库中.  detached:是指数据跟数据库中的数据相对应,但由于session被关闭,它所做的修改不会对数据库的记录造成影响.

hibernate 中的一级缓存 二级缓存

1.什么是缓存? 缓存是介于物理数据源与应用程序之间,是对数据库中的数据复制一份临时放在内存中的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用程序的运行性能.Hibernate在进行读取数据的时候,根据缓存机制在相应的缓存中查询,如果在缓存中找到了需要的数据(我们把这称做"缓存命 中"),则就直接把命中的数据作为结果加以利用,避免了大量发送SQL语句到数据库查询的性能损耗.   缓存策略提供商: 提供了HashTable缓存,EHCache,OSCache,Swa

Hibernate之一级缓存和二级缓存

1:Hibernate的一级缓存: 1.1:使用一级缓存的目的是为了减少对数据库的访问次数,从而提升hibernate的执行效率:(当执行一次查询操作的时候,执行第二次查询操作,先检查缓存中是否有数据,如果有数据就不查询数据库,直接从缓存中获取数据):  1.2:Hibernate中的一级缓存,也叫做session的缓存,它可以在session范围内减少数据库的访问次数,只在session范围内有效,session关闭,一级缓存失败: 1.3:一级缓存的特点,只在session范围有效,作用时间

hibernate3学习笔记(二十一)|二级缓存

二级缓存及外部缓存,它能够越过数个Session,通过同一个SessionFactory进行管理和维护. 接上例的代码:http://blog.csdn.net/kunshan_shenbin/archive/2008/09/03/2874375.aspx 要使用二级缓存,首先需要对hibernate.cfg.xml文件进行修改: 1.<?xml version="1.0" encoding="utf-8"?>2.<!DOCTYPE hiberna