2017-03-01 80 views
0

我試圖在JBoss EAP 7(或Wildfly 10)服務器上創建一個JDBC支持的Infinispan緩存。我在standalone-full.xmlcache-container定義是這樣的:JDBC支持的JBoss EAP/Wildfly上的Infinispan緩存

<cache-container name="SearchCacheContainer" default-cache="SearchCache" module="org.infinispan.cachestore.jdbc"> 
       <local-cache name="SearchCache"> 
        <expiration max-idle="60000" interval="6000"/> 
        <transaction mode="FULL_XA"/>     
        <string-keyed-jdbc-store data-source="java:jboss/datasources/InfinispanCacheDS" preload="true" passivation="false" purge="false"> 
         <property name="databaseType"> 
          postgres 
         </property> 
         <property name="createTableOnStart"> 
          true 
         </property> 
         <string-keyed-table prefix="str_"> 
          <id-column name="id" type="VARCHAR2(200)"/> 
          <data-column name="datum" type="BLOB"/> 
          <timestamp-column name="version" type="NUMBER"/> 
         </string-keyed-table> 
        </string-keyed-jdbc-store> 
       </local-cache> 
      </cache-container> 

我也宣佈我的服務器這樣必要的JDBC數據源:

<datasource jndi-name="java:jboss/datasources/InfinispanCacheDS" pool-name="InfinispanCacheDS" enabled="true" use-java-context="true"> 
       <connection-url>jdbc:postgresql://localhost:5432/db_infinispan_cache</connection-url> 
       <driver>postgresql-jdbc4</driver> 
       <pool> 
        <min-pool-size>10</min-pool-size> 
        <max-pool-size>20</max-pool-size> 
        <prefill>true</prefill> 
        <flush-strategy>IdleConnections</flush-strategy> 
       </pool> 
       <security> 
        <user-name>infinispan_cache</user-name> 
        <password>mypasswordhere</password> 
       </security> 
       <validation> 
        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/> 
        <validate-on-match>true</validate-on-match> 
        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/> 
       </validation> 
       <statement> 
        <track-statements>true</track-statements> 
       </statement> 
      </datasource> 

然而,當我嘗試啓動我的JBoss服務器,我見以下錯誤和服務器無法啓動:

14:02:09,692 ERROR [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0362: Capabilities required by resource '/subsystem=infinispan/cache-container=SearchCacheContainer/local-cache=SearchCache/store=string-jdbc' are not available: 
    org.wildfly.data-source.java:jboss/datasources/InfinispanCacheDS; There are no known registration points which can provide this capability. 

任何人都可以解釋我在這裏做錯了什麼嗎?關於這個特殊功能的文檔看起來很簡單,所以我確定有一些我錯過了,但不知道是什麼。謝謝!

+1

儘量設置'數據源= 「InfinispanCacheDS」' –

+0

看起來就是這樣!儘管它不是在啓動時創建表,並且它抱怨createTableOnStart屬性。任何想法是什麼使用正確的標誌是? – Shadowman

+0

在xsd for infinispan 8.x(包含在wildfly 10中)https://docs.jboss.org/infinispan/schemas/infinispan-cachestore-jdbc-config-8.0.xsd屬性createTableOnStart對於緩存存儲不存在元素,表元素有createOnStart(create-on-start)屬性,現在我認爲在wildfly子系統中設置這個值是不可能的。 –

回答