簡體   English   中英

如何清除Infinispan緩存

[英]How to clear the Infinispan cache

在我的項目中,我們將infinispan用作Hibernate 4的二級緩存。這是persistence.xml中的條目

<jta-data-source>java:jboss/datasources/RuleEngine</jta-data-source>        
  <shared-cache-mode>ALL</shared-cache-mode>
  <properties>
    <property name="hibernate.show_sql" value="false" />
    <property name="hibernate.dialect" value="org.hibernate.dialect.DB2390Dialect"/>
    <property name="hibernate.cache.use_second_level_cache" value="true" />
    <property name="hibernate.cache.use_query_cache" value="true"/>
    <property name="hibernate.cache.infinispan.cachemanager" value="java:jboss/infinispan/RuleEngineCache"/>
    <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.infinispan.JndiInfinispanRegionFactory"/>
  </properties>

我要做的是在GUI上單擊按鈕時清除緩存。 Java代碼是:

CacheManager cm = new DefaultCacheManager();
Cache<Object, Object> c = cm.getCache();
c.clear();

我將此代碼添加到我的Web項目中。

但是我在第一行遇到了一個異常,說Failed to define class org.infinispan.io.ExposedByteArrayOutputStream in Module "deployment.RuleEngineWS-ear.ear.RuleEditor-1.2.0-SNAPSHOT.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link org/infinispan/io/ExposedByteArrayOutputStream (Module "deployment.RuleEngineWS-ear.ear.RuleEditor-1.2.0-SNAPSHOT.war:main" from Service Module Loader)
java.lang.NoClassDefFoundError: org/jboss/marshalling/ByteOutput引起java.lang.NoClassDefFoundError: org/jboss/marshalling/ByteOutput
java.lang.ClassNotFoundException: org.jboss.marshalling.ByteOutput引起java.lang.ClassNotFoundException: org.jboss.marshalling.ByteOutput

緩存本身運行正常,我在顯式訪問它時遇到問題。 我以為,如果我調用new DefaulCacheManager()但將不贊成使用此接口,那么我將獲得唯一的CacheManager。

因此,如果我的路徑完全錯誤,那么如何刪除緩存?

Infinispan 5.2.6

編輯:我也嘗試通過使用幾次嘗試注入CM,特別是@Resource(lookup="java:jboss/infinispan/RuleEngineCache")批注。 但是,無論是像快速入門示例中那樣使用EmbeddedCacheManager還是不贊成使用CacheManager,都不會注入它。

如果您想清除Hibernate的二級緩存,無論使用哪種緩存提供程序,都應直接調用Hibernate。 調用SessionFactory.getCache().evictAllRegions應該可以做到這一點,而不必因Infinispan而煩惱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM