非事务方面,我具有了Ehcache缓存实例配置为transactionalMode="local"
。
现在,当我试图把一个元素在所述高速缓存中的事务之外,我得到
net.sf.ehcache.transaction.TransactionException: transaction not started
。的Ehcache与事务缓存
这是否意味着在事务缓存实例每次调用需要在一个事务上下文?
我在启动时正在做一些自定义高速缓存预加载,并且我不希望Ehcache事务(和copyOnRead/Write)开销。此外,因为我将处理逻辑上不可变的对象,所以我希望能够在没有事务范围的情况下从缓存中读取它们(如果可能的话)。
我需要某种形式的全球交易,不全面的JTA。这就是为什么我最感兴趣的是本地事务的回滚机制。万一“全局事务”失败,我只需回滚所有缓存更改。是的,我正在处理需要保持一致的多个缓存级别。所以锁定会从隔离的角度来派上用场,但看起来我仍然需要自己实现回滚,对吧? – cbaby