我们正在使用 ModeShape 4.1.0.Final 和 Infinispan 6.0.2.Final 来构建我们的内容存储库。在使用 singleFile 存储启用 maxEntries 驱逐后,我注意到当 JCR 节点的数量超过 maxEntries 时,JCR 属性中的某些内容被截断。此截断问题是由以下配置引起的还是当前版本 ModeShape 4.1.0.Final 中的错误引起的?
这是 ModeShape 配置:
{
"name" : "Persisted-Repository",
"jndiName" : "",
"workspaces" : {
"predefined" : ["otherWorkspace"],
"default" : "default",
"allowCreation" : true
},
"security" : {
"anonymous" : {
"roles" : ["readonly","readwrite","admin"],
"useOnFailedLogin" : false
}
},
"storage" : {
"cacheConfiguration" : "eviction-test-infinispan-config.xml",
"cacheName" : "REPOSITORY",
"binaryStorage" : {
"type" : "file",
"directory": "modeshape/content/binaries",
"minimumBinarySizeInBytes" : 1000000
}
},
}
这是 Infinispan 的配置:
<?xml version="1.0" encoding="UTF-8"?>
<infinispan>
<global>
<globalJmxStatistics enabled="true"
allowDuplicateDomains="true" />
</global>
<namedCache name="REPOSITORY">
<!-- single file store -->
<persistence passivation="false">
<singleFile shared="true" preload="false"
fetchPersistentState="false" ignoreModifications="false"
purgeOnStartup="true" location="./infinispan/eviction">
</singleFile>
</persistence>
<!-- Look for transaction manager first -->
<transaction
transactionManagerLookupClass="org.infinispan.transaction.lookup.GenericTransactionManagerLookup"
transactionMode="TRANSACTIONAL" lockingMode="OPTIMISTIC" />
<!-- No more that 10K entries per cache, with LIRS eviction. -->
<eviction threadPolicy="DEFAULT" maxEntries="10000" strategy="LIRS" />
</namedCache>
</infinispan>