问题标签 [infinispan]
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.
hibernate - Infinispan L2 缓存自定义驱逐策略
我打算使用 infinispan 作为我的 Hibernate 应用 L2 缓存。我的所有实体都有一个生命周期属性 [New -> Run -> Completed]。最初我的实体处于新状态,随着时间的推移,它会转移到其他状态。
简单地说,我想在实体生命周期属性状态到达 Completed 状态时从缓存中驱逐实体。据我了解,Infinispan 不支持自定义驱逐策略。处理我的情况的最佳方法是什么?
hibernate - 查询缓存休眠加载实体
谁能帮我解决这个问题。我使用 Infinispan 作为二级缓存,使用 Hibernate 作为 ORM。我已经打开了 enityt 和查询缓存。
我有两个查询,例如 Q1 是“从 BokkEntity b 中选择 b,其中 b.id < 5”,另一个像 Q2 是“从 BokkEntity b 中选择 b,其中 b.id < 7”
我第一次运行 Q1 它加载 5对象从持久存储到缓存中。第一次运行第二个查询会在缓存中加载 7 个对象。虽然前五个对象在两个查询中都很常见。根据我的理解,查询缓存总是只存储 id,然后如果实体缓存在查询缓存中,则在缓存中为对象(由 ids 引用)完成搜索。
所以我的问题是为什么在我第一次运行 Q2(在运行 q1 之后)时,两个 Q2 都再次加载所有对象并在实体缓存中覆盖这些对象。
我已经检查了查询缓存对于任何后续请求是否正常工作。即,如果我重新运行 Q1 或 Q2,则从缓存中访问数据。
这很紧急,我会感谢你的努力。
谢谢
米娜
jboss7.x - CacheEntryCreated 事件——再次
从JBoss Infinispan 讨论中发布的交叉
我正在尝试实现一些代码,只要在我的一个 Infinispan 缓存中创建条目时就会采取行动。我很快意识到传递给我的 @CacheEntryCreated 方法的 CacheEntryCreatedEvent 对象不包含新创建的条目,因此我开始寻找解决方案。
我发现了有关解决方案的各种讨论,即捕获在@CacheEntryCreated 事件之后传递的@CacheEntryModified 事件并在isPre()=false 时获取对象。但是,我认为我错过了一些东西,因为在所有讨论中都没有解决您有一个修改事件的情况,该修改事件代表对现有条目的合法修改而不是创建。
这是否意味着我的@Listener 对象必须在事件传递之间维护状态信息?我的@CacheEntryModified 必须整合事件对象,确定它是一个创建事件(即 getValue() == null && isPre() == true),然后在获取新创建的对象之前等待下一个@CacheEntryModified 事件?
这提出了一个明显的问题,即如果另一个@Listener 对象在第二个@CacheEntryModified(即isPre() == false)事件传递之前否决了修改,该怎么办?
其他人如何处理这种情况?
spring - JBoss AS 7 Infinispan 集群
我通过以下方式设置了两个节点的 JBoss AS 7.1.1.FINAL 集群 -
- master - 在 Ubuntu Server 12.10 (VirtualBox VM) 上运行
- slave - 在 Windows 7 上运行(VirtaulBox 主机)
我已经在两个节点上部署了一个 Spring Web 应用程序,并且我正在尝试设置一个有效的复制缓存。我的问题是,即使集群显然有效,缓存似乎也没有被复制。
我的配置 -
在 domain.xml 中(在主从机上)
这几乎是 domain.xml 中的默认配置,除了 jndi-name 和 EAGER start。
在弹簧配置中 -
通过此设置,缓存可以工作,但不会被复制。缓存似乎彼此独立运行。此外,EAGER 启动似乎没有任何效果。缓存似乎仅在首次使用时才被初始化。
来自主日志(第一次使用缓存)-
从从属日志(第一次使用缓存)-
我不认为这是一个 udp/多播问题,因为我在这个集群中设置了 mod_cluster、HornetQ 和 Quartz,它们都按预期工作。
hibernate - Infinispan with Hibernate:更新后对象不会添加到缓存或删除
目前,我们的 Infinispan 二级缓存存在一些问题。我们准备了两个测试用例:
1) 新创建的对象不放在二级缓存中。我们在第一个事务中创建一个新对象(TestEntity)。我们看到它没有放在二级缓存中,即使我们刷新它。当我们关闭事务(容器管理)并创建第二个事务时,新创建的对象仍然没有在二级缓存中找到,但是如果我们加载它,我们会在数据库中找到它。所以我们确信它是在第一个事务中创建和提交的。但是为什么第一个事务关闭后新创建的对象没有放入二级缓存呢?
2)刷新后从二级缓存中删除更新的对象我们正在从数据库中加载一个实体,因此它在二级缓存中。现在我们正在更新这个加载实体的属性并进行刷新。如果我们再次检查二级缓存,实体不再被缓存。为什么在更新 + 刷新后它会从缓存中删除,我们如何防止这种情况发生?
案例一:代码:
日志输出第一笔交易:
日志输出第二个事务:
案例 2:准备:预加载实体“TMP0000000000043”,它已经在数据库中
代码:
日志输出:17:21:17,685 INFO [stdout] (default-threads - 6) LifecycleEngine TestEntity : true 17:21:17,857 INFO [stdout] (default-threads - 6) LifecycleEngine TestEntity : false 我们使用以下设置: - EAP-6.0.1 - Hibernate 4.2 - EAP-6.0.1 提供的 Infinispan 作为二级缓存
子系统配置:
启用二级缓存:
实体上的注释是:
configuration - 请求简单的 modeshape 3.x/infinispan SQL DB 配置
我一直在尝试让 modeshape 3.2 与 MySQL 数据库一起使用,但我并没有走得太远。默认情况下,所有内容都在内存中,这对我来说毫无用处。
从到目前为止我拼凑的内容来看,我似乎需要配置 infinispan 以保留 JCR。我尝试过调整我在谷歌上搜索过的各种示例,但无济于事。
这是对工作/经过验证的配置的请求,而不是尝试修复 jboss.org 站点上的损坏配置之一。
lucene - 清除 infinispan lucene 索引中的集群
我使用过 Hibernate Search 并使用 Infinispan 来存储 Lucene 索引。配置如下:在persistence.xml中
并在 pom.xml 文件中添加了依赖项,如 http://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#infinispan-directories中所述
一切都很好。
现在,我想清除 infinispan 在集群中创建的索引。我怎样才能做到这一点?
java - 以编程方式访问 Infinispan MBean
我正在使用 Infinispan 5.2.1 并尝试通过我的 Java 程序访问 MBean。但没有运气。我假设 Infinispan MBean 已在 Platform MBean 服务器中注册。我可以在 Jconsole 中正确地看到所有 MBean,但不能在程序中看到。
我的 Infinispan 配置
我的 Java 程序。
hibernate - Infinispan L2 缓存的 Hibernate / Spring 事务问题
我正在尝试将 Infinispan 用作使用 Tomcat 6、Hibernate 4 和 Spring 3.5 等技术的应用程序的 Hibernate L2 缓存。在 Tomcat 和我们当前的事务管理器中运行的应用程序是
我们为 Infinispan 介绍在 hibernate 属性文件中引入了以下属性。
引入 Infinispan 后,我们失去了应用程序的稳定性,并开始随机出现不同的错误。我假设我们的 Infinispan 配置不正确(我们使用跨国缓存)。我认为我们的事务管理器和 Infinispan 事务设置不匹配。请建议正确配置。
我们看到的错误
我使用的 Infinispan 配置文件
hibernate-search - Infinispan 搜索继承搜索映射配置
我有在 Infinispan 中测试搜索引擎的简单代码。
如您所见,有一个基类 DemoA 及其子类 DemoB。我想通过超类归档 id 进行搜索。然而这个演示代码生成org.hibernate.search.SearchException: Unable to find field id in com.genesis.inifispan.InifinispanTest$DemoB
我假设我错过了搜索映射配置中的继承配置,但是查看文档我一无所获。我想要基于 Java 的配置,因为我无法在生产环境中更改实体类。
请您帮我配置或指导我以正确的方式阅读文档。