我们在整个应用程序中利用内存中的LRU缓存来处理几种不同的模型。为了避免事务被回滚(比如陈旧的条目)引起的问题,添加了事务性缓存的概念:为每个事务创建一个临时缓存,然后如果条目被回滚或被复制到主如果提交该模型缓存。什么时候应该调用Transaction.delistResource()?
要做到这一点,高速缓存实现XAResource
并覆盖commit()
和rollback()
方法。每当新的Transaction
想要访问一些不在主缓存中的数据时,就会创建事务缓存并将其传递到enlistResource()
。
的问题是,我试图在commit()
和rollback()
方法,这是抛出IllegalStateException
中调用delistResource()
的缓存实例,称该交易已经被标记为回滚(或提交)。所以我想知道......是不是而不是将缓存作为资源去除(换句话说,它已经作为回滚或提交过程的一部分被除牌),还是流程中还有另一点叫做?