问题标签 [ehcache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2623 浏览

java - 在 Ehcache 中检索过期对象

我想在 Ehcache 上面实现以下算法:

  • 尝试从缓存中获取元素
  • 如果元素未过期
    • 服务于价值
  • 别的
    • 服务过期值
    • 在后台刷新元素

但我从来没有得到一个过期的元素(Element.isExpired())。我尝试使用我的缓存配置(尤其是 TimeToLive 和 TimeToIdle),但我似乎无法让它按我的意愿工作。我可以列出缓存中的键,但是如果我“get()”一个过期的元素,我总是得到一个空值。

我究竟做错了什么 ?

0 投票
1 回答
761 浏览

java - “缓存项被锁定”导致休眠中的 Select 语句

我无法完全按照我想要的方式获得一些缓存来使用休眠。我创建了一些示例代码来复制我遇到的这个问题。

我有一个包含自身实例的对象。例如,由多个 Part 组成的 Part。

当更新的对象进入时,我真的需要最小化 Hibernate 正在使用的 select 语句。在查看日志后,我看到导致 SELECT 语句的日志输出:

缓存项被锁定:com.cache.dataobject.Part.parts#1

我可以在注释映射、xml 文件、缓存提供程序或逻辑中进行哪些更改以防止缓存项被锁定?我真的很想摆脱那个选择语句。

我包括了实体、数据对象、我正在测试的代码和日志输出。

休眠版本: 3.4

EHCache 版本: 1.2.3(包含在 Hibernate 下载中)

部分数据对象:

缓存道:

测试客户端代码:

持久性.xml

EhCache.xml

输出日志:

0 投票
2 回答
2879 浏览

java - 添加 JMS 信息会破坏 EhCache

我想通过 JMS 主题分发我的 EhCache。这记录在 EhCache 的网站上

我正在使用:

  • ehcache-1.6.0-beta3
  • ehcache-jmsreplication-0.3
  • 弹簧-2.5
  • 弹簧模块-0.9

我的 Spring 配置如下所示:

而且,在 JMS 之前的配置中,我的 ehcache.xml 如下所示:

这很好用。所以我添加了我的主题信息:

当我得到一个应用程序上下文时,我得到一个 NullPointer。这是堆栈跟踪:

任何人的任何想法?

0 投票
8 回答
9923 浏览

java - 任何可以限制内存缓存的内存使用的Java缓存,而不仅仅是实例计数?

我正在寻找一个简单的内存(和进程内)缓存,用于查询数据的短期缓存(但短期含义超出请求/响应,即会话边界)。EhCache 可能会起作用,但看起来它可能无法提供我需要的一件事:不是对缓存对象数量的限制,而是对缓存数据消耗的内存量的(近似)限制。

我知道在没有序列化的情况下很难计算出给定对象的确切内存使用情况(在一般情况下,我想避免这种情况,因为它的速度很慢,违背了我的使用目的),我可以自己提供大小估计。

那么:是否有一个简单的开源 Java 缓存允许定义缓存对象的“权重”,以限制缓存的内容数量?

编辑(2010 年 11 月):值得一提的是,有一个名为Java CacheMate的新项目试图解决这个问题,以及其他一些改进想法(多级内存进程内缓存)

0 投票
3 回答
4135 浏览

java - 操作 Hibernate 二级缓存

我使用休眠作为我的 ORM 解决方案,使用 EHCache 作为二级(读写)缓存。

我的问题是:是否可以直接访问二级缓存?

我想访问这个:http ://www.hibernate.org/hib_docs/v3/api/org/hibernate/cache/ReadWriteCache.html

如何访问 Hibernate 使用的同一个 ReadWriteCache?

我有一些我正在做的直接/自定义 JDBC 插入,我想自己将这些对象添加到二级缓存中。

0 投票
3 回答
32740 浏览

java - 休眠二级缓存

嗨,我在使用休眠二级缓存时遇到了一些问题。作为缓存提供者,我使用 ehcache。

来自 persistence.xml 的部分配置

我使用注释配置我的实体,所以:

这些注释的导入是: import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy;

我的 ehcache.xml

有人知道为什么我会出现以下错误吗?

解决方案是向 persistence.xml 添加另一个属性

并且删除了那个错误的前缀 big thx ruslan!

0 投票
4 回答
2339 浏览

java - EHCache 似乎不起作用

我已经在使用 Spring 和 Hibernate 的 Java 应用程序上设置了 ehcache。但是,当我运行 Junit 测试并打印统计信息时,缓存中似乎没有任何内容:

每个缓存的缓存管理器统计信息的输出:

COM.****.SERVICES.CLARITY.DOMAIN.ACTIONITEM.BYRESOURCEUNIQUENAME:getCacheHits:0 getCacheMisses:0 getObjectCount:0

COM.****.SERVICES.CLARITY.DOMAIN.ACTIONITEM:getCacheHits:0 getCacheMisses:0 getObjectCount:0

COM.****.SERVICES.CLARITY.DOMAIN.RESOURCE:getCacheHits:0 getCacheMisses:0 getObjectCount:0

映射文件的内容(仅部分,太大,无法全部粘贴):

[...]

EHCACHE.XML 的内容:

休眠配置:

关于如何填充缓存的任何想法?谢谢。

0 投票
1 回答
1410 浏览

java - Java 应用程序对象...它存储在哪里?

我正在考虑使用java应用程序对象来实现一个简单的缓存,保存一些配置变量,以及一些带有常用信息的xml......

我想知道应用程序数据物理存储在哪里(系统文件,内存,数据库),如何配置,以及是否有任何限制,如空间、并发性等...

此外,任何其他关于可扩展性(包括大小和并发性)的问题都将不胜感激......

如果有人能指点我一些地方找到更多信息,我会很高兴...

多谢

0 投票
6 回答
24681 浏览

java - 设置 ehcache 复制 - 我需要哪些多播设置?

我正在尝试设置 ehcache 复制,如此处所述:http: //ehcache.sourceforge.net/EhcacheUserGuide.html#id.s22.2
这是在 Windows 机器上,但最终将在生产中的 Solaris 上运行。

说明说要设置提供程序如下:

像这样的听众:

我的问题是:
多播 IP 地址和端口是任意的(我知道地址必须在特定范围内,但它们必须是特定数字)吗?
它们是否需要由我们的系统管理员以某种方式设置(我在办公网络上)?

我想在本地测试它,所以我使用上述配置运行两个单独的 tomcat 实例。我需要在每一项中更改什么?我知道两个侦听器都不能在同一个端口上侦听 - 但是提供者呢?
另外,侦听器端口也是任意的吗?

我已经尝试按上述方式进行设置,但在我的测试中,缓存似乎没有被复制——在一个 tomcat 的缓存中添加的值在另一个缓存中不存在。
我可以做些什么来调试这种情况(数据包嗅探除外)?

在此先感谢您的帮助,一直在为这个而烦恼!

0 投票
1 回答
2128 浏览

java - hibernate二级缓存ehcache的性能

我们正在考虑使用 ehcache (1.6.0-beta5) 来启用许多从未修改过的表的二级缓存。我们已经为这个表设置了一个只读的 ehcache 区域,目前它似乎工作正常。存储在缓存中的 Hibnerate POJO 都是不可变的。

这里的一位开发人员提出了一个问题,即从 ehcache 中“水合”对象(即从 ehcache 的实体内部表示到实际 Java 对象的映射)所花费的时间显着降低了性能。相反,他建议我们手动将对象存储在我们自己的缓存中。这将需要对我们的代码进行重大修改,我对改进的幅度持保留态度。

我的问题是:

  1. 这种性能下降真的很显着吗?
  2. 如果实体在只读缓存中是不可变的,那么 ehcache 实际上是否需要进行任何水合?它不能直接存储对象吗?

谢谢你的帮助。