我在爲infinispan配置jdbc-store時遇到了一些問題。 我已經定義了一個本地緩存與此配置:在wildfly-8.1.0中使用jdbc-store的infinispan .Fianl
<cache-container name="MyCacheContainer">
<local-cache name="MyCache">
<expiration max-idle="60000" interval="6000"/>
</local-cache>
</cache-container>
我需要堅持的緩存,所以我嘗試使用JDBC的存儲,使用此數據源
<datasource jta="true" jndi-name="java:jboss/datasources/MyDS" pool-name="MyDS" enabled="true" use-ccm="true">
<connection-url>jdbc:h2:file:${jboss.server.data.dir}/db;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver-class>org.h2.Driver</driver-class>
<driver>h2</driver>
<security>
<user-name>abc</user-name>
<password>abc</password>
</security>
</datasource>
當我嘗試配置JDBC店在wildfly Web控制檯我有這個錯誤:
Internal Server Error
{
"outcome" => "failed",
"result" => {"step-1" => undefined},
"failure-description" => "JBAS014883: No resource definition is registered for address [
(\"subsystem\" => \"infinispan\"),
(\"cache-container\" => \"MyCacheContainer\"),
(\"local-cache\" => \"MyCache\"),
(\"jdbc-store\" => \"JDBC_STORE\")
]",
"rolled-back" => true
}
如果我手動編輯standalone.xml添加此CONFIGS
<cache-container name="MyCacheContainer">
<local-cache name="MyCache">
<expiration max-idle="60000" interval="6000"/>
<string-keyed-jdbc-store preload="false" passivation="false" purge="false" datasource="java:jboss/datasources/MyDS"/>
</local-cache>
</cache-container>
我對分貝通常的高速緩存序列化,但按預期的數據從數據庫(而不是從內存中)每60000毫秒,無論是空閒的也刪除它不工作。所以,如果我重新啓動wildfly緩存是空的。 此外我注意到Web控制檯仍然說在disableb中的jdbc-store,如果我使用文件存儲而不是jdbc-store所有工作正常,所以我懷疑在我的配置中存在一些問題。
快速提示:我可以看到您已經配置了選項preload =「false」。如果您重新啓動Wildfly(使用您的緩存),那麼數據將不會從商店預加載,因此緩存將爲空。如果您的商店中有一些持久條目,則應在請求時延遲加載。嘗試在重新啓動的緩存中獲取(some_key)。你使用什麼版本的Infinispan? – tsykora 2014-09-24 08:08:13
@tsykora謝謝你的回覆。我試圖獲得一個條目,緩存是空的。按照預期,配置文件相同,但文件存儲工作正常。我使用infinispan 6.0.2.Final – codadilupo 2014-09-24 09:09:23
嗯奇怪。可能是一個錯誤。你也嘗試過二進制密鑰存儲嗎? +嘗試刪除到期設置,看看會發生什麼。並感謝您的信息! – tsykora 2014-09-24 09:44:28