0

我正在尝试将jdbc-store类型用于 Wildfly 15+ 中的会话缓存。

我运行以下命令来配置我的standalone-full-ha.xml配置文件:

/subsystem=infinispan/cache-container=web/invalidation-cache=jdbc/:add(mode=SYNC)
/subsystem=infinispan/cache-container=web/invalidation-cache=jdbc/store=none:remove(){allow-resource-service-restart=true}
/subsystem=infinispan/cache-container=web/invalidation-cache=jdbc/store=jdbc/:add(data-source="...",passivation=false,shared=true){allow-resource-service-restart=true}
/subsystem=infinispan/cache-container=web/invalidation-cache=jdbc/component=transaction/:add()
/subsystem=infinispan/cache-container=web/invalidation-cache=jdbc/component=transaction/:write-attribute(name=mode,value=BATCH)
/subsystem=infinispan/cache-container=web:write-attribute(name=default-cache,value=jdbc)

...在配置文件中产生以下内容:

<cache-container name="web" default-cache="jdbc" module="org.wildfly.clustering.web.infinispan">
    <transport lock-timeout="60000"/>
    <invalidation-cache name="jdbc">
        <transaction mode="BATCH"/>
        <jdbc-store data-source="..." passivation="false" shared="true">
            <table/>
        </jdbc-store>
    </invalidation-cache>
    <distributed-cache name="dist">
        <locking isolation="REPEATABLE_READ"/>
        <transaction mode="BATCH"/>
        <file-store/>
    </distributed-cache>
</cache-container>

看起来我已经使用 JBoss CLI 正确配置了缓存,但是当集群实例启动时,即使一切正常启动,会话存储表也不会在数据库中创建。

我的问题是,我应该在<table/>我刚刚忽略的元素中设置一些东西吗?查看文档,我没有看到任何必需的属性,或任何关于自动创建的内容。

我已经查看了如何在 Wildfly 11 中实现此目的的先前示例string-keyed-jdbc-store,但该元素似乎不再有效。我知道 Infinispan文档提到了元素create-on-start上的属性string-keyed-table,但是这种配置在 Wildfly 中是如此的不同,以至于它完全没有帮助。

4

1 回答 1

0

添加

<property name="createTableOnStart">
    true
</property>

在您的jdbc-store元素中并确保您的 web.xml 是<distributable />

于 2019-09-06T15:32:31.850 回答