问题标签 [infinispan-10]
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.
java - 我可以将 Infinispan 配置为在特定缓存上使用 JavaSerializationMarshaller() 并在其他缓存上使用 protobufs 吗?
我正在尝试从升级Infinispan 8.2.11.Final
到Infinispan 10.1.8.Final
. Infinispan 现在默认使用协议缓冲区。Infinispan 缓存由 Hibernate 使用,并且还包含一些应用程序对象。
我可以如下设置全局编组器:
但是,如果我这样做,则有必要将所有休眠类(例如org.hibernate.cache.internal.CacheKeyImplementation
和其他类)列入白名单。
是否可以在用于应用程序对象的缓存上设置编组器,以便我可以继续对我的应用程序对象使用 Java 序列化,同时允许 Hibernate 使用 protobuf?
infinispan - 为什么“ISPN000312:由于优雅的离开者而丢失数据”是针对 INVALIDATION_SYNC 缓存的警告
我正在使用嵌入式 Infinispan ,并且在模式下10.1.8
有一个集群缓存。INVALIDATION_SYNC
缓存由另一个很少更新的数据存储支持,这就是它处于该模式的原因。
当服务器离开集群时,Infinispan 会记录如下消息:
该服务器上缓存中的任何内容都会从内存中丢失,但由于它是一个失效缓存,我不明白为什么这会是一个警告。
警告是不必要的,还是我误解了这种缓存的工作原理?
java - 接口 javax.transaction.Transaction 的实现是否需要线程安全?
是否符合javax.transaction.Transaction
需要是线程安全的?
这个实现是否有望处理来自不同线程的并发请求?
举个例子:
我问这个问题是因为我可以看到 Infinispan 以这种方式与事务管理器交互,这会导致死锁。我想了解这是否是 Infinispan 或事务管理器中的错误。
infinispan - 每个 Infinispan 缓存属性
我们有一些通用代码可以对 Infinispan 缓存容器中的缓存进行操作。该代码标识了某些缓存,其某个操作必须由自定义属性执行。缓存容器和缓存是通过infinspan.xml
WildFly 中的 Infinispan 子系统配置的。
以前我们会在缓存的数据存储上设置自定义属性。对于 Infinispan 10+,这不再可能。为了在缓存上设置任意属性,我们必须实现自定义持久性存储。这似乎有点矫枉过正,尤其是因为我们的缓存不是持久的。
有没有办法从一个infinspan.xml
,例如。没有将自定义对象放在缓存中众所周知的键下?
编辑
之前的配置看起来像这样:
Infinispan 模式的版本 10 不再支持此功能。
infinispan - 错误/Infinispan 9.4.20.Final 到 10.1.8.Final 之间事务行为的变化
我们正在使用 Infinispan 控制在 Payara 服务器(Enterprise v 5.22.0)上运行的 JEE 应用程序中的分布式缓存(复制缓存),使用 Java 8(OpenJDK 64 位服务器 VM 供应商:Azul Systems, Inc. 版本:25.262 -b19)
为了在启动多个实例时控制应用程序的启动,我们创建了一个名为 Mutex 的 PESSIMISTIC 锁定缓存,用于“锁定”集群以允许 1 个实例加载缓存而其他实例等待。获取锁的第一个实例读取数据库并加载许多其他缓存,这些缓存都配置为 OPTIMISISTIC 锁定。这些缓存“放置”都发生在外部 Mutex 事务中。OPTMISTIC 缓存使用 state-transfer enabled=true 定义,因此当实例从数据库加载缓存完成并通过提交外部事务释放互斥锁时,缓存也会在所有实例上更新。
在加载 OPTIMISTIC 缓存时,我们有时会使用 CACHE1 中的条目来驱动 CACHE2 的加载(我们确实有更有意义的名称,但这里的细节并不重要)。因此,加载 CACHE1 后,我们使用 CACHE1.values() 将条目编排到 CACHE2.put() 中。
现在问题...
在 V9.4.20.Final(及以下),上述过程有效。在 V10.x(也是 V.11.0.5.Final)这不起作用。我们已经调试了我们的代码,发现在 V10.x 中,写入 CACHE1 的条目(所有缓存都是隔离 =“READ_COMMITTED”)在尝试加载 CACHE2 时使用 CACHE1.values() 是不可见的。只是为了确认相同的代码在 V9 中有效,其中 CACHE1.values() 确实按预期返回值,因为它在同一事务中并且应该能够看到条目。
如果在 V10 中我们没有外部 Mutex 事务或在尝试读取 CACHE1 之前提交外部 Mutex 事务,那么一切正常。
问题:
事务性是否已更改以删除嵌套事务中写入的条目对写入它们的进程的可见性?
我尝试过 Weblogic 12.2.13,怀疑容器事务管理器的行为可能有所不同,但没有。它在 V10 上失败,在 Weblogic 上与 V9 一起工作。
我可以在 zip(eclipse / gradle 项目)中提供完整的代码复制器,但这里是代码片段:
CacheServiceImpl 有一个方法 exclusivePutAndGetAll 和名称为 LOCK_KEY 的锁,可以用布尔值调用它来控制是在“互斥”父事务提交之前还是之后读取条目:
这是 mutexManager 的 startTransactionAndAcquireMutex,它开始事务并使用提供的“LOCK_KEY”锁定名为 Mutex 的缓存
这是获取锁的 mutexManager:
最后是 XML 中的缓存配置
wildfly - Infinispan 缓存存储-wildlfy 插件模块中的“找不到类”异常
我正在使用配置有 XML 文件的 11.0.7 Infinispan 缓存存储。我已将该缓存模块导入 Wildlfy 服务器。我在我的应用程序中使用此依赖项。但是当我尝试从缓存中获取缓存元素时,它给了我异常ClassNotFound
。
我用过这个配置:
我使用了这个序列化:
我确信这是一个与类加载相关的问题。请帮帮我。
admin - Infinispan 12.1.1.Final 在管理控制台(服务器管理控制台)中缺少缓存配置
我们已经使用官方链接安装了Infinispan 12.1.1.Final:https://infinispan.org/docs/dev/titles/server/server.html
下载并安装 infinispan-server-${version}.zip
集群(3 个服务器节点)可用,但访问管理控制台缺少许多功能:
- 缓存容器配置:无法配置所有缓存参数
- 缺少集群管理(即启动新服务器)
仅可用:
- 数据容器:缺少参数配置
- 全球统计
- Cluster Membership => 仅可视化集群的 3 个节点
- 关于
有谁知道我们是否需要在配置中启用一些标志,或者我们需要安装一些插件才能对所有功能进行全面管理?
谢谢