目前,我使用Hhcache将Hibernate配置为使用Ehcache作为二级缓存来运行2次测试(查询项目10000次以查看缓存如何工作),但缓存不起作用。与没有ehcache的测试相比,基准时间没有变化。统计数据显示,即使缓存的大小= 1(查询该项目),它根本没有被击中:
[ name = Location cacheHits = 0 onDiskHits = 0 offHeapHits = 0 inMemoryHits = 0 misses = 0 onDiskMisses = 0 offHeapMisses = 0 inMemoryMisses = 0 size = 1 averageGetTime = 0.0 evictionCount = 0 ]
Hibernate统计信息(sessionFactory.getStatistics()。getSecondLevelCacheStatistics(“Location”)):
SecondLevelCacheStatistics[hitCount=0,missCount=0,putCount=0,elementCountInMemory=1,elementCountOnDisk=1,sizeInMemory=760]
以下是我的配置:
Maven依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.1.3.Final</version>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.3.Final</version>
</dependency>
启用了ehcache的Hibernate配置:
Configuration cfg = new Configuration()
.addAnnotatedClass(Location.class)
.setProperty("hibernate.connection.driver_class", dbConfig.getH2JdbcDriverName())
.setProperty("hibernate.connection.url", dbConfig.getDbUrl())
.setProperty("hibernate.connection.username", dbConfig.getUserName())
.setProperty("hibernate.connection.password", dbConfig.getPassword())
.setProperty("javax.persistence.validation.mode", "NONE")
.setProperty("hibernate.cache.use_second_level_cache", "true")
.setProperty("hibernate.cache.use_query_cache", "true")
.setProperty("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.EhCacheRegionFactory");
sessionFactory = cfg.buildSessionFactory();
Ehcache xml配置:
<ehcache>
<diskStore path="c:/_cached"/>
<cache
name="org.hibernate.cache.StandardQueryCache"
maxEntriesLocalHeap="5"
eternal="false"
timeToLiveSeconds="120"
overflowToDisk="true"/>
<cache
name="org.hibernate.cache.UpdateTimestampsCache"
maxEntriesLocalHeap="5000"
eternal="true"
overflowToDisk="true"/>
<cache
name="Location"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>
数据库类:
import org.hibernate.annotations.*;
import javax.persistence.*;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
@Entity
@Table(name = "Location")
@org.hibernate.annotations.Cache(region = "Location", usage = CacheConcurrencyStrategy.READ_WRITE)
public class Location implements Serializable {
@Id
@GeneratedValue
@Column(name = "Id")
private int id;
@Column(name = "Name", nullable = false)
private String name;
@Column(name = "Description")
private String description;
@Column(name = "Position", nullable = false)
private Geometry position;
//getters and setters are ommited
}
测试代码:
@Test
public void testQueryCache(){
int size = 10000;
Location lo = null;
long startTime = System.currentTimeMillis();
Session currentSession = sessionFactory.openSession();
for (int i = 0; i< size ; i++){
Transaction transaction = currentSession.beginTransaction();
lo = (Location) currentSession.createCriteria(Location.class)
.add(Restrictions.eq("id", 86))
.setCacheable(true)
.uniqueResult();
transaction.commit();
}
long stopTime = System.currentTimeMillis();
Assert.assertNotNull(lo);
System.out.println(String.format("\t %d ms", stopTime - startTime));
Cache cache = CacheManager.getInstance().getCache("Location");
System.out.println(cache.getStatistics().toString());
SecondLevelCacheStatistics statistics = sessionFactory.getStatistics().getSecondLevelCacheStatistics("Location");
System.out.println(statistics.toString());
}
@Test
public void testEhcacheWithGet(){
int size = 10000;
Location lo = null;
long startTime = System.currentTimeMillis();
for (int i = 0; i< size ; i++){
Session currentSession = sessionFactory.openSession();
Transaction transaction = currentSession.beginTransaction();
lo = (Location) currentSession.get(Location.class, 86);
transaction.commit();
currentSession.close();
}
long stopTime = System.currentTimeMillis();
Assert.assertNotNull(lo);
System.out.println(String.format("\t %d ms", stopTime - startTime));
Cache cache = CacheManager.getInstance().getCache("Location");
System.out.println(cache.getStatistics().toString());
SecondLevelCacheStatistics statistics = sessionFactory.getStatistics().getSecondLevelCacheStatistics("Location");
System.out.println(statistics.toString());
}
@testQueryCache的控制台消息:
2012-06-15 15:07:03,953 DEBUG [org.jboss.logging] - Logging Provider: org.jboss.logging.Log4jLoggerProvider
2012-06-15 15:07:04,917 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from ehcache.xml found in the classpath: file:/***PATH***/ehcache.xml
2012-06-15 15:07:04,920 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from URL: file:/***PATH***/ehcache.xml
2012-06-15 15:07:04,921 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from InputStream
2012-06-15 15:07:05,085 DEBUG [net.sf.ehcache.config.DiskStoreConfiguration] - Disk Store Path: c:/_cached
2012-06-15 15:07:05,125 DEBUG [net.sf.ehcache.util.PropertyUtil] - propertiesString is null.
2012-06-15 15:07:05,139 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - No CacheManagerEventListenerFactory class specified. Skipping...
2012-06-15 15:07:05,186 DEBUG [net.sf.ehcache.Cache] - No BootstrapCacheLoaderFactory class specified. Skipping...
2012-06-15 15:07:05,186 DEBUG [net.sf.ehcache.Cache] - CacheWriter factory not configured. Skipping...
2012-06-15 15:07:05,188 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - No CacheExceptionHandlerFactory class specified. Skipping...
2012-06-15 15:07:05,190 DEBUG [net.sf.ehcache.Cache] - No BootstrapCacheLoaderFactory class specified. Skipping...
2012-06-15 15:07:05,191 DEBUG [net.sf.ehcache.Cache] - CacheWriter factory not configured. Skipping...
2012-06-15 15:07:05,191 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - No CacheExceptionHandlerFactory class specified. Skipping...
2012-06-15 15:07:05,191 DEBUG [net.sf.ehcache.Cache] - No BootstrapCacheLoaderFactory class specified. Skipping...
2012-06-15 15:07:05,192 DEBUG [net.sf.ehcache.Cache] - CacheWriter factory not configured. Skipping...
2012-06-15 15:07:05,192 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - No CacheExceptionHandlerFactory class specified. Skipping...
2012-06-15 15:07:05,192 DEBUG [net.sf.ehcache.Cache] - No BootstrapCacheLoaderFactory class specified. Skipping...
2012-06-15 15:07:05,193 DEBUG [net.sf.ehcache.Cache] - CacheWriter factory not configured. Skipping...
2012-06-15 15:07:05,193 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - No CacheExceptionHandlerFactory class specified. Skipping...
2012-06-15 15:07:05,222 DEBUG [net.sf.ehcache.store.MemoryStore] - Initialized net.sf.ehcache.store.MemoryStore for org.hibernate.cache.UpdateTimestampsCache
2012-06-15 15:07:05,230 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.UpdateTimestampsCache.index
2012-06-15 15:07:05,242 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Matching data file missing (or empty) for index file. Deleting index file c:\_cached\org.hibernate.cache.UpdateTimestampsCache.index
2012-06-15 15:07:05,243 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.UpdateTimestampsCache.index
2012-06-15 15:07:05,252 DEBUG [net.sf.ehcache.Cache] - Initialised cache: org.hibernate.cache.UpdateTimestampsCache
2012-06-15 15:07:05,252 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured. Skipping for 'org.hibernate.cache.UpdateTimestampsCache'.
2012-06-15 15:07:05,253 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured for defaultCache. Skipping for 'org.hibernate.cache.UpdateTimestampsCache'.
2012-06-15 15:07:05,253 DEBUG [net.sf.ehcache.store.MemoryStore] - Initialized net.sf.ehcache.store.MemoryStore for Location
2012-06-15 15:07:05,258 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file Location.index
2012-06-15 15:07:05,259 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Matching data file missing (or empty) for index file. Deleting index file c:\_cached\Location.index
2012-06-15 15:07:05,259 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file Location.index
2012-06-15 15:07:05,260 DEBUG [net.sf.ehcache.Cache] - Initialised cache: Location
2012-06-15 15:07:05,260 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured. Skipping for 'Location'.
2012-06-15 15:07:05,263 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured for defaultCache. Skipping for 'Location'.
2012-06-15 15:07:05,264 DEBUG [net.sf.ehcache.store.MemoryStore] - Initialized net.sf.ehcache.store.MemoryStore for org.hibernate.cache.StandardQueryCache
2012-06-15 15:07:05,265 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.StandardQueryCache.index
2012-06-15 15:07:05,266 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Matching data file missing (or empty) for index file. Deleting index file c:\_cached\org.hibernate.cache.StandardQueryCache.index
2012-06-15 15:07:05,267 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.StandardQueryCache.index
2012-06-15 15:07:05,268 DEBUG [net.sf.ehcache.Cache] - Initialised cache: org.hibernate.cache.StandardQueryCache
2012-06-15 15:07:05,268 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured. Skipping for 'org.hibernate.cache.StandardQueryCache'.
2012-06-15 15:07:05,272 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured for defaultCache. Skipping for 'org.hibernate.cache.StandardQueryCache'.
2012-06-15 15:07:05,482 WARN [org.hibernate.cache.ehcache.AbstractEhcacheRegionFactory] - HHH020003: Could not find a specific ehcache configuration for cache named [org.hibernate.cache.spi.UpdateTimestampsCache]; using defaults.
2012-06-15 15:07:05,483 DEBUG [net.sf.ehcache.store.MemoryStore] - Initialized net.sf.ehcache.store.MemoryStore for org.hibernate.cache.spi.UpdateTimestampsCache
2012-06-15 15:07:05,484 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.spi.UpdateTimestampsCache.index
2012-06-15 15:07:05,486 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Matching data file missing (or empty) for index file. Deleting index file c:\_cached\org.hibernate.cache.spi.UpdateTimestampsCache.index
2012-06-15 15:07:05,487 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.spi.UpdateTimestampsCache.index
2012-06-15 15:07:05,488 DEBUG [net.sf.ehcache.Cache] - Initialised cache: org.hibernate.cache.spi.UpdateTimestampsCache
2012-06-15 15:07:05,488 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured for defaultCache. Skipping for 'org.hibernate.cache.spi.UpdateTimestampsCache'.
2012-06-15 15:07:05,491 WARN [org.hibernate.cache.ehcache.AbstractEhcacheRegionFactory] - HHH020003: Could not find a specific ehcache configuration for cache named [org.hibernate.cache.internal.StandardQueryCache]; using defaults.
2012-06-15 15:07:05,492 DEBUG [net.sf.ehcache.store.MemoryStore] - Initialized net.sf.ehcache.store.MemoryStore for org.hibernate.cache.internal.StandardQueryCache
2012-06-15 15:07:05,493 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.internal.StandardQueryCache.index
2012-06-15 15:07:05,495 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Matching data file missing (or empty) for index file. Deleting index file c:\_cached\org.hibernate.cache.internal.StandardQueryCache.index
2012-06-15 15:07:05,495 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.internal.StandardQueryCache.index
2012-06-15 15:07:05,496 DEBUG [net.sf.ehcache.Cache] - Initialised cache: org.hibernate.cache.internal.StandardQueryCache
2012-06-15 15:07:05,497 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured for defaultCache. Skipping for 'org.hibernate.cache.internal.StandardQueryCache'.
2012-06-15 15:07:05,772 DEBUG [net.sf.ehcache.store.disk.Segment] - put added 0 on heap
2012-06-15 15:07:05,783 DEBUG [net.sf.ehcache.store.disk.Segment] - put added 0 on heap
2012-06-15 15:07:05,794 DEBUG [net.sf.ehcache.store.disk.Segment] - fault removed 0 from heap
2012-06-15 15:07:05,794 DEBUG [net.sf.ehcache.store.disk.Segment] - fault added 0 on disk
2012-06-15 15:07:05,795 DEBUG [net.sf.ehcache.store.disk.Segment] - fault removed 0 from heap
2012-06-15 15:07:05,795 DEBUG [net.sf.ehcache.store.disk.Segment] - fault added 0 on disk
2012-06-15 15:07:06,190 DEBUG [net.sf.ehcache.util.UpdateChecker] - Checking for update...
2586 ms
2012-06-15 15:07:08,152 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from ehcache.xml found in the classpath: file:/***PATH***/ehcache.xml
2012-06-15 15:07:08,153 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from URL: file:/***PATH***/ehcache.xml
2012-06-15 15:07:08,155 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from InputStream
2012-06-15 15:07:08,159 DEBUG [net.sf.ehcache.config.DiskStoreConfiguration] - Disk Store Path: c:/_cached
[ name = Location cacheHits = 0 onDiskHits = 0 offHeapHits = 0 inMemoryHits = 0 misses = 0 onDiskMisses = 0 offHeapMisses = 0 inMemoryMisses = 0 size = 1 averageGetTime = 0.0 evictionCount = 0 ]
2012-06-15 15:07:08,174 INFO [net.sf.ehcache.pool.sizeof.AgentLoader] - Located valid 'tools.jar' at 'C:\Program Files (x86)\Java\jdk1.6.0_31\jre\..\lib\tools.jar'
2012-06-15 15:07:08,184 INFO [net.sf.ehcache.pool.sizeof.JvmInformation] - Detected JVM data model settings of: 32-Bit HotSpot JVM
2012-06-15 15:07:08,240 INFO [net.sf.ehcache.pool.sizeof.AgentLoader] - Extracted agent jar to temporary file C:\Users\****\AppData\Local\Temp\ehcache-sizeof-agent6609755822520222855.jar
2012-06-15 15:07:08,241 INFO [net.sf.ehcache.pool.sizeof.AgentLoader] - Trying to load agent @ C:\Users\****\AppData\Local\Temp\ehcache-sizeof-agent6609755822520222855.jar
2012-06-15 15:07:08,247 INFO [net.sf.ehcache.pool.impl.DefaultSizeOfEngine] - using Agent sizeof engine
SecondLevelCacheStatistics[hitCount=0,missCount=0,putCount=0,elementCountInMemory=1,elementCountOnDisk=1,sizeInMemory=760]
@testEhcacheWithGet的控制台消息:
2012-06-15 15:09:26,046 DEBUG [org.jboss.logging] - Logging Provider: org.jboss.logging.Log4jLoggerProvider
2012-06-15 15:09:26,993 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from ehcache.xml found in the classpath: file:/***PATH***/ehcache.xml
2012-06-15 15:09:26,995 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from URL: file:/***PATH***/ehcache.xml
2012-06-15 15:09:26,997 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from InputStream
2012-06-15 15:09:27,156 DEBUG [net.sf.ehcache.config.DiskStoreConfiguration] - Disk Store Path: c:/_cached
2012-06-15 15:09:27,188 DEBUG [net.sf.ehcache.util.PropertyUtil] - propertiesString is null.
2012-06-15 15:09:27,200 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - No CacheManagerEventListenerFactory class specified. Skipping...
2012-06-15 15:09:27,247 DEBUG [net.sf.ehcache.Cache] - No BootstrapCacheLoaderFactory class specified. Skipping...
2012-06-15 15:09:27,248 DEBUG [net.sf.ehcache.Cache] - CacheWriter factory not configured. Skipping...
2012-06-15 15:09:27,249 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - No CacheExceptionHandlerFactory class specified. Skipping...
2012-06-15 15:09:27,251 DEBUG [net.sf.ehcache.Cache] - No BootstrapCacheLoaderFactory class specified. Skipping...
2012-06-15 15:09:27,252 DEBUG [net.sf.ehcache.Cache] - CacheWriter factory not configured. Skipping...
2012-06-15 15:09:27,252 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - No CacheExceptionHandlerFactory class specified. Skipping...
2012-06-15 15:09:27,252 DEBUG [net.sf.ehcache.Cache] - No BootstrapCacheLoaderFactory class specified. Skipping...
2012-06-15 15:09:27,252 DEBUG [net.sf.ehcache.Cache] - CacheWriter factory not configured. Skipping...
2012-06-15 15:09:27,256 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - No CacheExceptionHandlerFactory class specified. Skipping...
2012-06-15 15:09:27,257 DEBUG [net.sf.ehcache.Cache] - No BootstrapCacheLoaderFactory class specified. Skipping...
2012-06-15 15:09:27,257 DEBUG [net.sf.ehcache.Cache] - CacheWriter factory not configured. Skipping...
2012-06-15 15:09:27,257 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - No CacheExceptionHandlerFactory class specified. Skipping...
2012-06-15 15:09:27,285 DEBUG [net.sf.ehcache.store.MemoryStore] - Initialized net.sf.ehcache.store.MemoryStore for org.hibernate.cache.StandardQueryCache
2012-06-15 15:09:27,292 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.StandardQueryCache.index
2012-06-15 15:09:27,304 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Matching data file missing (or empty) for index file. Deleting index file c:\_cached\org.hibernate.cache.StandardQueryCache.index
2012-06-15 15:09:27,305 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.StandardQueryCache.index
2012-06-15 15:09:27,314 DEBUG [net.sf.ehcache.Cache] - Initialised cache: org.hibernate.cache.StandardQueryCache
2012-06-15 15:09:27,314 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured. Skipping for 'org.hibernate.cache.StandardQueryCache'.
2012-06-15 15:09:27,314 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured for defaultCache. Skipping for 'org.hibernate.cache.StandardQueryCache'.
2012-06-15 15:09:27,316 DEBUG [net.sf.ehcache.store.MemoryStore] - Initialized net.sf.ehcache.store.MemoryStore for Location
2012-06-15 15:09:27,318 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file Location.index
2012-06-15 15:09:27,319 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Matching data file missing (or empty) for index file. Deleting index file c:\_cached\Location.index
2012-06-15 15:09:27,319 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file Location.index
2012-06-15 15:09:27,320 DEBUG [net.sf.ehcache.Cache] - Initialised cache: Location
2012-06-15 15:09:27,320 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured. Skipping for 'Location'.
2012-06-15 15:09:27,323 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured for defaultCache. Skipping for 'Location'.
2012-06-15 15:09:27,324 DEBUG [net.sf.ehcache.store.MemoryStore] - Initialized net.sf.ehcache.store.MemoryStore for org.hibernate.cache.UpdateTimestampsCache
2012-06-15 15:09:27,325 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.UpdateTimestampsCache.index
2012-06-15 15:09:27,326 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Matching data file missing (or empty) for index file. Deleting index file c:\_cached\org.hibernate.cache.UpdateTimestampsCache.index
2012-06-15 15:09:27,327 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.UpdateTimestampsCache.index
2012-06-15 15:09:27,328 DEBUG [net.sf.ehcache.Cache] - Initialised cache: org.hibernate.cache.UpdateTimestampsCache
2012-06-15 15:09:27,328 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured. Skipping for 'org.hibernate.cache.UpdateTimestampsCache'.
2012-06-15 15:09:27,328 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured for defaultCache. Skipping for 'org.hibernate.cache.UpdateTimestampsCache'.
2012-06-15 15:09:27,530 WARN [org.hibernate.cache.ehcache.AbstractEhcacheRegionFactory] - HHH020003: Could not find a specific ehcache configuration for cache named [org.hibernate.cache.spi.UpdateTimestampsCache]; using defaults.
2012-06-15 15:09:27,531 DEBUG [net.sf.ehcache.store.MemoryStore] - Initialized net.sf.ehcache.store.MemoryStore for org.hibernate.cache.spi.UpdateTimestampsCache
2012-06-15 15:09:27,533 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.spi.UpdateTimestampsCache.index
2012-06-15 15:09:27,534 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Matching data file missing (or empty) for index file. Deleting index file c:\_cached\org.hibernate.cache.spi.UpdateTimestampsCache.index
2012-06-15 15:09:27,534 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.spi.UpdateTimestampsCache.index
2012-06-15 15:09:27,538 DEBUG [net.sf.ehcache.Cache] - Initialised cache: org.hibernate.cache.spi.UpdateTimestampsCache
2012-06-15 15:09:27,539 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured for defaultCache. Skipping for 'org.hibernate.cache.spi.UpdateTimestampsCache'.
2012-06-15 15:09:27,544 WARN [org.hibernate.cache.ehcache.AbstractEhcacheRegionFactory] - HHH020003: Could not find a specific ehcache configuration for cache named [org.hibernate.cache.internal.StandardQueryCache]; using defaults.
2012-06-15 15:09:27,545 DEBUG [net.sf.ehcache.store.MemoryStore] - Initialized net.sf.ehcache.store.MemoryStore for org.hibernate.cache.internal.StandardQueryCache
2012-06-15 15:09:27,546 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.internal.StandardQueryCache.index
2012-06-15 15:09:27,548 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Matching data file missing (or empty) for index file. Deleting index file c:\_cached\org.hibernate.cache.internal.StandardQueryCache.index
2012-06-15 15:09:27,548 DEBUG [net.sf.ehcache.store.disk.DiskStorageFactory] - Failed to delete file org.hibernate.cache.internal.StandardQueryCache.index
2012-06-15 15:09:27,549 DEBUG [net.sf.ehcache.Cache] - Initialised cache: org.hibernate.cache.internal.StandardQueryCache
2012-06-15 15:09:27,549 DEBUG [net.sf.ehcache.config.ConfigurationHelper] - CacheDecoratorFactory not configured for defaultCache. Skipping for 'org.hibernate.cache.internal.StandardQueryCache'.
2012-06-15 15:09:27,835 DEBUG [net.sf.ehcache.store.disk.Segment] - put added 0 on heap
2012-06-15 15:09:27,869 DEBUG [net.sf.ehcache.store.disk.Segment] - fault removed 0 from heap
2012-06-15 15:09:27,870 DEBUG [net.sf.ehcache.store.disk.Segment] - fault added 0 on disk
2012-06-15 15:09:28,251 DEBUG [net.sf.ehcache.util.UpdateChecker] - Checking for update...
4283 ms
2012-06-15 15:09:31,910 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from ehcache.xml found in the classpath: file:/***PATH***/ehcache.xml
2012-06-15 15:09:31,911 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from URL: file:/***PATH***/ehcache.xml
2012-06-15 15:09:31,912 DEBUG [net.sf.ehcache.config.ConfigurationFactory] - Configuring ehcache from InputStream
2012-06-15 15:09:31,915 DEBUG [net.sf.ehcache.config.DiskStoreConfiguration] - Disk Store Path: c:/_cached
[ name = Location cacheHits = 0 onDiskHits = 0 offHeapHits = 0 inMemoryHits = 0 misses = 0 onDiskMisses = 0 offHeapMisses = 0 inMemoryMisses = 0 size = 1 averageGetTime = 0.0 evictionCount = 0 ]
2012-06-15 15:09:31,932 INFO [net.sf.ehcache.pool.sizeof.AgentLoader] - Located valid 'tools.jar' at 'C:\Program Files (x86)\Java\jdk1.6.0_31\jre\..\lib\tools.jar'
2012-06-15 15:09:31,942 INFO [net.sf.ehcache.pool.sizeof.JvmInformation] - Detected JVM data model settings of: 32-Bit HotSpot JVM
2012-06-15 15:09:32,001 INFO [net.sf.ehcache.pool.sizeof.AgentLoader] - Extracted agent jar to temporary file C:\Users\****\AppData\Local\Temp\ehcache-sizeof-agent6451434728035591561.jar
2012-06-15 15:09:32,002 INFO [net.sf.ehcache.pool.sizeof.AgentLoader] - Trying to load agent @ C:\Users\****\AppData\Local\Temp\ehcache-sizeof-agent6451434728035591561.jar
2012-06-15 15:09:32,009 INFO [net.sf.ehcache.pool.impl.DefaultSizeOfEngine] - using Agent sizeof engine
SecondLevelCacheStatistics[hitCount=0,missCount=0,putCount=0,elementCountInMemory=1,elementCountOnDisk=1,sizeInMemory=760]
请帮我弄清楚我做错了什么! :(
非常感谢!!!
答案 0 :(得分:2)
迟到的回复,但
尝试在要跟踪的statistics="true"
元素中添加<cache>
。
还添加
hibernate.cfg.xml中的<property name="hibernate.generate_statistics">true</property>
答案 1 :(得分:0)
只是快速扫描一下,但你配置使用hibernate来使用net.sf.ehcache.hibernate.EhCacheRegionFactory
,而不是singleton
,但是然后使用CacheManager.getInstance()
...你试过监控缓存活动通过Hibernate统计?不知道你是否真的使用与Hibernate相同的CacheManage
...
答案 2 :(得分:0)
你试过了吗?
sessionFactory.getCurrentSession().get(Location.class, 86);
而不是使用Criteria Query?据我所知,Hibernate只会通过@Id加载一个对象来达到二级缓存,所以在会话中使用get / load。
如果您使Criteria可缓存:
sessionFactory.getCurrentSession.createCriteria().setCacheable(true).uniqueResult();
并启用实体和查询缓存,只要执行该查询,您就会点击二级缓存。