在我的hibernate映射中,我将缓存使用作为只读
<class name="cdot.ctms.layer.services.dispatch.data.DispatchMapDTO"
table="DISPATCH_MAP" mutable="false" optimistic-lock="version">
<cache usage="read-only"/>
在ehcache.xml中,默认缓存设置为
<defaultCache
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
diskSpoolBufferSizeMB="30"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
transactionalMode="xa_strict">
<persistence strategy="localTempSwap"/>
</defaultCache>
当我的对象获取默认缓存时,它会运行到事务回滚问题中。
如果我为我引用的对象显式添加缓存,我不会遇到任何问题。
<cache
name="cdot.ctms.layer.services.dispatch.data.DispatchMapDTO"
maxEntriesLocalHeap="100"
eternal="false"
timeToLiveSeconds="300">
<persistence strategy="localTempSwap" />
</cache>
我们有很多DTO在应用程序中使用默认缓存。我必须在ehcache.xml中为每个对象定义缓存吗?在hibernate手册中找不到任何相关文档
http://docs.jboss.org/hibernate/orm/4.3/manual/en-us/html/ch20.html#性能-缓存-只读
默认缓存配置和特定缓存配置之间存在差异。其中包括TimeToliveseconds
。
如果您也将默认缓存1设置为300
会发生什么?
问题内容: 我正在尝试将(v2.6.0)添加到我的项目中,但是存在一些配置问题。具体来说,当我尝试使用以下命令构建配置时,出现了:错误 这是我的 Maven 依赖关系… 这是我用来配置它的Java代码… 这是可怕的错误。我缺少什么配置? 问题答案: ehcache-core文件基本上是针对Hibernate 3.x的。Hibernate 4.x带有自己的ehcache实现。您无需在hibernat
问题内容: 我目前正在研究如何在ehcache中使用RMI分发选项。我已经正确配置了ehcache.xml,复制似乎可以正常工作。但是我有两个问题: ->似乎ehcache /hibernate为每个实体创建1个缓存。很好,但是当复制到位时,它会创建1个线程/缓存进行复制。这是预期的行为吗?由于我们的域很大,因此它创建了大约300个线程,在我看来,这确实很大 ->另一个令人讨厌的结果是,心跳消息似
在net.sf.ehcache.config.ConfigurationFactory.Parseconfiguration(ConfigurationFactory.java:105) 在net.sf.ehcache.hibernate.hibernateutil.LoadandCorretConfiguration(Hibernateutil.java:51) 在net.sf.ehcache.
在我们的应用程序中,我们使用Hibernate 3。最近我在交易中遇到了一个问题。我有一些代码如下方式 我有另一个与此相同的方法,即使该方法抛出异常,也会在该方法之后调用该方法。 两个方法的会话是相同的。 现在我所经历的是,如果我的第二个方法成功执行并提交hibernate事务,这将存储我不想要的保存在第一个方法中的数据。 我无法分享确切的代码,但我准备了一个与此问题类似的测试方法。我的数据库服务
我们有一个正式服JVM堆问题。当我们进行堆转储并分析报告时,我们发现超过80%的堆大小被Ehache对象耗尽,服务器变得很慢。我们怀疑内存泄漏或积累缓存对象而没有清除旧缓存。该站点是非常大的容量站点,因此缓存的数量会增加。 我想回顾一下这种配置的含义,并建议这是否与该问题有关: 在Java类中,我有以下实现: 任何建议都将不胜感激。 更新:溢出ToDisk="true"的意义是什么。我没有配置任何
我无意中发现我可以在对象上保留更改,即使我没有在事务中写入它们。我想知道这是怎么发生的,因为理论上,如果我不在事务中写入更改,我应该无法更改数据库中的年龄值。PS:如果我删除最后2行,它不会像预期的那样对db产生任何影响。