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

JBoss EAP/Wildfly上支持JDBC的Infinispan缓存

陈松
2023-03-14

我试图在JBoss EAP 7(或Wildfly 10)服务器上创建一个JDBC支持的Infinispan缓存。我的缓存容器定义在独立完整中。xml如下所示:

<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个答案

董和风
2023-03-14

您需要参考以下链接[1]、[2]:

[1]http://infinispan.org/docs/5.3.x/user_guide/user_guide.html

[2]http://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html_single/#d5e1433

 类似资料:
  • 在Infinispan 6.0中。有x版本,但wildfly 8.2的属性是什么? 谢啦

  • 我正试图配置一个JDBC支持的Infinispan缓存,作为我的Java EE应用程序使用Hibernate搜索的后端。我正在JBoss EAP 7.0或Wildfly 10上部署。我有一个模块、缓存容器和持久性。在启动时不会给我任何错误的xml配置。此外,我能够创建JPA对象,并按预期通过Hibernate搜索对其进行索引。然后,我能够成功地查询这些对象。然而,在任何时候都不会在我配置为缓存容器

  • 我正试图从部署在wildfly 8.0.0中的应用程序中使用infinispan(6.0)。独立配置(JDK1.7)中的最终版本,但我在注入方面有一些问题。从这篇帖子开始,在谷歌上搜索,我得到了这样的结论: 在standalone.xml 而且 最后在pom中。xml 这在我的清单上产生。MF 当我使用getCache()方法时,我java.lang.NullPointerException,因为

  • 尊敬的Infinispan社区 我在EAP和Spring部署中运行应用程序。将依赖项从EAP 7.1迁移到EAP 7.2后,我在spring模式下收到警告:

  • 我在带有Infinispan 9.4.16的Wildfly 18.1上有一个独立模式群集。当两个节点上的项目版本相同时,缓存项的复制工作正常。但是,如果一个节点上有版本A,另一个节点上有版本B,那么java的复制就会失败。伊奥。InvalidClassException和组织。jboss。模块。ModuleNotFoundException:部署。我的应用程序版本B。耳朵myjar版本B。jar。

  • 一个好的HTTP缓存策略可以极大地提高一个web应用的性能及客户端的体验。谈到HTTP缓存,它主要是与HTTP的响应头'Cache-Control'相关,其次另外的一些响应头比如'Last-Modified'和'ETag'等也会起一定的作用。 HTTP的响应头'Cache-Control'主要帮助私有缓存(比如浏览器端缓存)和公共缓存(比如代理端缓存)了解它们应该如果缓存HTTP响应,以便后用。