当前位置: 首页 > 知识库问答 >
问题:

infinispan作为二级缓存Hibernate

农均
2023-03-14

尝试使用infinispan作为Hibernate的二级缓存,但总是给我以下错误

org.infinispan.jmx.JMX MBean实例类型=CacheManager, name="DefaultCacheManager"已经在'org.infinispan'JMX域下注册。如果您想允许多个配置了相同JMX域的实例,请在org.infinispan.jmx.JmxUtil.buildJmxDomain(JmxUtil.java:51)org.infinispan.jmx.CacheManagerJmxRegistration.updateDomain(CacheManagerJmxRegistration.java:79)中启用'globalJmx统计'配置元素中的'准确度域'属性

这是冬眠属性

setProperty("hibernate.cache.use_second_level_cache", "true");
            setProperty("hibernate.cache.use_query_cache", "true");
            setProperty("hibernate.cache.region.factory_class",
             "org.hibernate.cache.infinispan.InfinispanRegionFactory");
            setProperty("hibernate.cache.infinispan.statistics", "false");
            setProperty("hibernate.cache.infinispan.cfg", "infinispan-config.xml");

infinispan配置文件

<?xml version="1.0" encoding="UTF-8"?>
   <infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="urn:infinispan:config:7.2"
    xsi:schemaLocation="urn:infinispan:config:7.2 
                        http://www.infinispan.org/schemas/infinispan-config-7.2.xsd
                       urn:infinispan:config:store:jdbc:7.2
                       http://www.infinispan.org/schemas/infinispan-cachestore-jpa-config-7.2.xsd">

    <cache-container default-cache="default" statistics="false">
    <local-cache name="simpleCache" statistics="false">
    </local-cache>

    </cache-container>
</infinispan>

我有两个项目,有两个数据源,一个用于审计,另一个是主web项目。异常中的xml值在infinispan 7.2版之后的版本中不存在,请提前感谢您的帮助:)

共有2个答案

佴涵蓄
2023-03-14

作为一种替代解决方案,如果需要,您可以尝试删除xml配置文件。我们也可以通过编程方式允许重复域。

GlobalConfiguration config = new GlobalConfigurationBuilder()
                                .globalJmxStatistics()
                                .allowDuplicateDomains(Boolean.TRUE)
                                .build();
EmbeddedCacheManager cacheManager = new DefaultCacheManager(config);
封俊艾
2023-03-14

添加<代码>

应更新错误消息。

 类似资料:
  • 我计划使用infinispan作为我的Hibernate应用程序二级缓存。My all entities具有生命周期属性[新建- 简单地说,当实体生命周期属性状态到达已完成状态时,我想从缓存中驱逐实体。据我所知,Infinispan不支持自定义驱逐策略。处理我的情况的最佳方式是什么?

  • 当你使用本地(在内存中)缓存时,服务器可以缓存一些信息并快速地检索它,但是其他服务器不能访问这个缓存数据,他们需要到数据库中查询同样的信息。 如果你喜欢使用分布式缓存让其他服务器访问缓存的数据,由于它有一些序列化/反序列化和网络延迟开销,则需要注意:在某些情况下,它可能会降低性能。 缓存需要处理的另一个问题:缓存失效。 There are only two hard things in Compu

  • Infinispan作为hibernate二级缓存的更新方式与数据库事务的工作方式不同。我的意思是,在完全提交之前,数据库事务对其他事务不可见。根据日志记录,我观察到事务(JEE MDB)能够部分更新给定的Infinispan更新。具体来说,我的设置如下: Jboss 我似乎看到的是,如果在事务的DB提交之后启动JEE bean,并且我认为是infinispan更新(提交),那么它可以看到一些in

  • 问题内容: 我正在尝试将Infinispan配置为休眠二级缓存。一切都很好,但是我想调整默认配置,即所有缓存共享的值。 缓存是用于注明实体自动创建的,我可以通过一个在对其进行自定义一个通过。但是,我希望所有这些缓存都具有默认值(例如,逐出策略)。 另一件事是,我想将所有这些生成的缓存标记为“分布式”(默认情况下它们是“本地的”)。 这是我的摘录: 我该怎么做? 问题答案: 实体的默认缓存配置名为:

  • 1、一级缓存:指的是mybatis中sqlSession对象的缓存,当我们执行查询以后,查询的结果会同时存入sqlSession中,再次查询的时候,先去sqlSession中查询,有的话直接拿出,当sqlSession消失时,mybatis的一级缓存也就消失了,当调用sqlSession的修改、添加、删除、commit()、close()等方法时,会清空一级缓存。 2、二级缓存:指的是mybati

  • 问题内容: 我想在hibernate项目中使用二级缓存,但是我只对hibernate二级缓存了解一点,任何人都可以解释我应该如何在代码中使用它以及需要什么配置和.jar文件吗?我将这些设置设置为我的hibernate.cfg.xml文件 并添加这些jar文件, 我想知道我是否需要更改其他配置? 我怎么知道我的项目使用二级缓存? 如果只是设置此设置,hibernate将自动使用此设置,否则我必须在我