问题标签 [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.
infinispan - Infinispan configuration issues
I am trying to setup a cache cluster using infinispan, in replication mode. And, i would like to access the cache on any of these 2 laptops from a 3rd computer. (All 3 computers are on same network).
I have a stand alone java program on my 3rd computer
I have configured namedCache2 on Laptop-1, prior to the execution of this method.
But, when i do rm.getCache("namedCache2"), i am getting this exception saying, namedCache2 is not configured.
Can someone please let me know what went wrong?
java - Infinispan 和 Ehcache 与 JGroups 复制的任何主要区别
我正在对缓存解决方案进行概念验证。我的要求是在不同的服务器(缓存集群)上复制缓存。
经过一番努力,我入围了 2 个缓存解决方案:
- 使用 JGroups 作为复制策略的 Ehcache
- 英菲尼斯潘
这两种缓存解决方案之间有什么主要区别吗?我真的很困惑,因为 Infinispan 在内部也使用 JGroups。
这些缓存解决方案中的任何一个与其他解决方案相比是否有任何主要优势/劣势/过载?至少对于一个小集群。
glassfish - Glassfish 3.1.2 with Infinispan 5.1.2
I'm using Glassfish 3.1.2 and Infinispan 5.1.2. I want to override the config of the default cache manager and start some named caches in advance. Then I want to inject that cache manager into a stateless EJB and use name caches. Code that I have:
Config.java:
CacheBean.java:
When I deploy the EAR to Glassfish server I get this:
What am I doing wrong?
infinispan - Infinispan.xml 是强制性的吗?
可能是一个愚蠢的问题..
要创建一个独立的缓存,“infinispan.xml”是强制性的还是可以通过编程配置来避免?
infinispan - 有什么方法可以在远程服务器上使用 remotecachemanger 创建缓存?
我正在尝试使用 Infinispan 缓存在 2 个不同的服务器上设置复制缓存。
Node1 和 Node2 是运行 hotrod 服务器的 2 台物理服务器。
我的意图是从远程客户端(Node3)在 node1/node2 上创建一些缓存(使用自定义配置)。
在 Node3 上,我正在尝试执行以下操作..
RemoteCacheManager rm = new RemoteCacheManager("node1ip4address", portNumber); rm.getCache("namedcache1"); ---->这个方法的javadoc说,
/** * 如果缓存已被定义,则从远程服务器检索命名缓存,否则如果缓存名称未定义,它将返回 null。*/
我检查了 RemoteCacheManager 的源代码。此类没有如 EmbeddedCacheManager 中存在的 defineConfiguration() 方法。
有没有办法可以在远程节点上创建缓存?
谢谢,-文卡特
java - 使用 JPA 的 Spring 事务在 AfterCompletion 阶段抛出异常
我有一个使用 Spring Framework (3.1) 并通过 Hibernate (4.1.1) 支持的 JPA (2.0) 持久性的 Web 应用程序
还启用了休眠搜索 (4.1 RC)。Hibernate 的二级缓存是 Infinispan (5.1.3)。
我还使用 Infinispan 作为 Lucene (3.5) Directory Provider(用于 Hibernate Search)。
一切都在 XA 事务上运行,Bitronix (2.1.2) 作为 JTA 管理器。
我有用@Transactional
. 当方法结束并且事务提交时,会发生以下异常:
您会注意到 Hibernate 类“SynchronizationRegistryImpl”。这个持有一组javax.transaction.Synchronization
对象。我认为正在发生的是 Hibernate 本身在这个集合中注册为同步。所以,
- 提交后,会触发两个事件:beforeTransactionCompletion 和 afterTransactionCompletion。
- beforeTransactionCompletion 进展顺利。
- afterTransactionCompletation 启动并调用方法 notifySynchronizationsAfterTransactionCompletion。
- 此方法在 Set 的每个 Synchronization 元素上调用 afterCompletion。
- 集合中的一项(不是最后一项)是 Hibernate 项,它调用了一些清理。
- 此清理会清空 Set。
- 抛出 ConcurrentModificationException 是因为该集合在迭代时已被清理。
也许我错误地配置了 Hibernate。我的 Spring XML 太大了,不能放在这里。幸运的是,你们中的一些人知道为什么会发生这种情况。
更多数据(可能有用也可能没用)来建立上下文:
- Synchronization 集中的其他项目属于 Hibernate Search。
- 数据库数据源是 PostgreSQL。
- 我使用 XA 是因为事务中还有一个 ActiveMQ JMS,并且起初 Infinispan 也被设置为 XA 资源(现在它与 JTA 同步挂钩)。
- 启用了 Spring 安全性。
- Hibernate 通过 CMTTransactionFactory 连接到 JTA。
- 我不确定 PersistenceContext 是“事务性的”还是“扩展的”,但从调试来看,它看起来像后者。
java - Infinispan - 使用索引加载数据非常慢。可以做得更快吗?
- 我正在尝试使用 Infinispan 缓存以仅本地缓存模式存储 java 对象。
- 我想查询两个键以及一些字段。所以我正在使用 Infinispan 的查询/索引模块。
- 索引字段的查找性能非常好。然而,与无索引相比,加载缓存中的所有项目需要大量时间。
- 例如,对于大约 50k 个对象,使用 Infinispan 索引需要 10 分钟才能将项目加载到缓存中。没有索引,只需要 2 秒。
- 我想知道索引后 Infinispan 是不是这么慢,或者我做错了什么。
;
caching - infinispan 如何知道它必须从 delta 感知对象中获取更改
我们正在使用 infinispan,在我们的系统中,我们有一个大对象,我们必须在其中推送每个事务的小更改。我已经为这个对象和 Delta 实现了 DeltaAware 接口。我面临的问题是更改没有传播到其他节点,只有初始对象状态被传播到其他节点。此外,不会在实现 DeltaAware 的大对象上调用 delta 和 commit 方法。除了简单地将它放在缓存中之外,我是否需要在其他地方注册这个对象?
谢谢
java - 带有 Hibernate Search + Infinispan 目录的事务 ACID 属性
我有以下设置:
- JPA (2.0) 到 Hibernate (4.1)
- Infinispan 作为二级缓存 (5.1)
- Hibernate Search 连接到 Hibernate (4.1)
- Infinispan 作为 Hibernate Search (Lucene) 的目录
- 为 Infinispan 目录连接了一个 JDBC CacheStore
- PostgreSQL (9.1) 数据库来存储实体和 Lucene 目录。
- Bitronix (2.1.2) 作为事务管理器
- 我没有使用 Java EE,而是使用 Spring (3.1)
Infinispan 作为二级缓存很好,不需要恢复,并且由于缓存的性质,您可以在自己的事务中读取更改。
在阅读源代码数小时后,当我更新实体时,Hibernate Search 不会更新 Lucene 目录,而是在事务结束时(如果它提交),所以我想搜索我刚刚更新的文本,在同一笔交易中,我不能吗?
但此外,在事务完成后,Hibernate Search 在不同的线程中对目录进行更新。因此,如果其中一个目录更新失败,那么 Lucene 会与我的实体不一致吗?如果在更新被发送到目录之前发生了一些事情并且需要恢复,这些更新会丢失吗?
假设这个“第一个”事务成功提交,更新被发送到 Infinispan 目录。一个新的事务将在这里开始。通过谁?Lucene 可以选择使用 JMS 发送更新。假设该选项已激活,因此 JMS 消息初始化新事务。
Infinispan 将使用它接收到的更新来修改其内存目录,但持久性 CacheStore 将在此事务完成时再次更新,在提交之后。因此,如果在更新 jdbc CacheStore 时发生某些事情,它可能不会更新,但 Infinispan 内存目录将应用它们。
我的问题是,考虑到我使用的所有模块都支持事务,并且它们甚至支持加入全局事务 (XA),有没有办法实现真正的事务性?也许我只是没有看到它。
lucene - 将 Apache Lucene 与 Infinispan 一起使用
将 Infinispan 与 Lucene 一起使用会提高 Lucene 的性能吗?Lucene 本身包含一个 RAM 目录。Infinispan 是否优于 RAM 目录?