我正在尝试在Wildfly 15+中为我的会话缓存使用jdbc-store
类型。
我运行了以下命令来配置我的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/>
元素中需要设置的内容吗?看着documentation,我看不到任何必需的属性或关于自动创建的任何内容。
我已经看过先前的examples如何在Wildfly 11中实现此目标,但是string-keyed-jdbc-store
元素似乎不再有效。我知道Infinispan documentation在create-on-start
元素上提到了string-keyed-table
属性,但是此配置在Wildfly中有很大的不同,以至于完全无用。
答案 0 :(得分:0)
添加
<property name="createTableOnStart">
true
</property>
在您的jdbc-store
元素中
并确保您的web.xml为<distributable />