我正在尝试将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 中是如此的不同,以至于它完全没有帮助。