在infinispan内设置条目的寿命

时间:2019-02-25 10:20:49

标签: java spring transactions infinispan

我在Spring应用程序中使用的是Infinispan 7.2.5。

我尝试打开事务,锁定缓存条目,执行一些逻辑并根据我的BL更新缓存条目-这意味着我使用 .put 方法,并设置了更新的缓存条目的值+新寿命。最后,我提交了交易。

transactionManager.begin();
Object myValue = myCache.withFlags(Flag.FORCE_WRITE_LOCK).get(key);
// Doing some BL
myCache.withFlags(Flag.IGNORE_RETURN_VALUES).put(key, newValue, newLifeSpan, TimeUnit.MILLISECONDS);
transactionManager.commit();

问题在于,在交易中,Inifispan无法将使用期限更改为新使用期限,并在原始使用期限时间逐出该条目。 我尝试不进行交易就执行相同的过程,而且一切正常。

我的缓存设置为:

<replicated-cache name="myCache" mode="SYNC">
    <locking isolation="REPEATABLE_READ"/>
    <transaction transaction-manager-lookup="org.inifnispan.transaction.lookup.GenericTransactionManagerLookup" locking="PESSIMISTIC" mode="FULL_XA"/>
</replicated-cache>

知道为什么会这样吗?

0 个答案:

没有答案