【发布时间】:2017-03-01 19:05:29
【问题描述】:
我正在尝试在 JBoss EAP 7(或 Wildfly 10)服务器上创建一个 JDBC 支持的 Infinispan 缓存。我在standalone-full.xml 中的cache-container 定义如下所示:
<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.
谁能解释我在这里做错了什么?有关此特定功能的文档似乎很薄,所以我确定我缺少一些东西,但不知道是什么。谢谢!
【问题讨论】:
-
尝试设置
data-source="InfinispanCacheDS" -
看起来这就是它所需要的!虽然,它不是在启动时创建表,并且它抱怨 createTableOnStart 属性。知道要使用的正确标志是什么吗?
-
infinispan 8.x 的 xsd(包含在 wildfly 10 中)docs.jboss.org/infinispan/schemas/… 缓存存储元素的属性 createTableOnStart 不存在,表有 createOnStart (create-on-start) 属性元素,目前,我认为在 wildfly 子系统中设置此值是不可能的。
-
@Shadowman,你还需要帮忙吗?
标签: jdbc jboss wildfly infinispan