2017-05-23 30 views
0

我已經定義了一個緩存(本地緩存)的Infinipan緩存容器。 在集羣環境(高可用性,例如standalone-full-ha.xml)中沒有問題。 使用@Resource Annotation查找緩存引用可以正常工作。如何在Non HA Wildfly中查找Infinispan緩存10

但與非羣集配置部署到Wildfly時(無HA,如獨立-full.xml配置文件)此查找失敗, WFLYCTL0184:新的失蹤/不滿意的依賴 我仍然可以定義CLI腳本的高速緩存和我可以在運行時配置中看到它們。 區別在於JNDI註冊表中缺少JNDI資源名稱(這是查找失敗的原因)。

使用缺省standalone-full-ha.xml(其工作原理)和standalone-full.xml(部署失敗時)可以重現該問題。

如何在非集羣/非HA配置中查找Infinispan緩存? 如果羣集配置文件處於活動狀態,我想要使用相同的代碼和部署來緩存任何內容。

CLI腳本:

batch 
/subsystem=infinispan/cache-container=test-cache-container/:add(default-cache=test-cache,jndi-name=java:jboss/infinispan/container/test) 
/subsystem=infinispan/cache-container=test-cache-container/transport=TRANSPORT/:add(lock-timeout=30000) 
/subsystem=infinispan/cache-container=test-cache-container/local-cache=test-cache:add(indexing=NONE,jndi-name=infinispan/test-cache-container/test-cache) 
/subsystem=infinispan/cache-container=test-cache-container/local-cache=test-cache/transaction=TRANSACTION:add(locking=PESSIMISTIC, mode=FULL_XA) 
/subsystem=infinispan/cache-container=test-cache-container/local-cache=test-cache/eviction=EVICTION:add(strategy=NONE) 
/subsystem=infinispan/cache-container=test-cache-container/local-cache=test-cache/locking=LOCKING:add(acquire-timeout=30000,isolation=REPEATABLE_READ) 
run-batch 

查找與@Resource:

@Singleton 
@Remote(DataStore.class) 
public class DataStoreBean implements DataStore { 

    @Resource(lookup = "java:jboss/infinispan/test-cache-container/test-cache") 
    private Cache<String, Object> cache; 

JBoss的部署,structure.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2"> 
    <deployment> 
     <dependencies> 
      <module name="org.infinispan" export="true"/> 
      <module name="org.infinispan.commons" export="true"/> 
     </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

回答

1

的Infinispan的緩存容器定義一個運輸有一個隱含的d對JGroups渠道的依賴。 standalone-full.xml配置文件未定義必需的JGroups子系統。從CLI腳本中刪除第二行(添加傳輸的行),你應該很好。

相關問題