- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Infinispan documentation说了很多关于它的锁定方案的东西,乐观的和悲观的,但没有详细说明如何使用事务。可能它被认为是知道的,因为它使用 Java 的默认 API,但如果是这样,我也没有找到关于 JTA 使用模式的信息。
我假设,在使用乐观事务时,它将被提交或回滚,具体取决于对数据的并发访问,如果回滚,我将能够重播事务,希望现在它会完成在其他并发访问之前并会成功。我在 TransactionManager 上有 begin()、commit() 和 rollback() 方法,以及我不确定何时抛出的错误记录异常。有了这些信息,我编写了以下代码:
public void transactionSum(Key key, Long delta) {
boolean redo;
do{
redo = false;
try {
tm.begin();
try {
Long value = cache.get(key);
// Some processing:
value += delta;
cache.put(key, value);
tm.commit();
} catch(CacheException e) {
tm.rollback();
throw new RollbackException();
}
} catch (RollbackException e) {
redo = true;
logger.debug("Cache transaction collision, replaying it.");
} catch (Exception e) {
logger.error(e.getMessage());
}
} while(redo);
}
CacheException
如果
cache.put()
会被抛出失败?如果是这样,我是否应该明确调用
tm.rollback()
?如果我打电话
tm.commit()
怎么办里面
finally
条款?什么时候会抛出
RollbackException
?
最佳答案
正确的模式是:
Transaction tx = tm.begin();
try
{
// DO SOMETHING
}
catch (Exception e)
{
tx.setRollbackOnly(); // Force a rollback for this error
throw e;
}
finally
{
if (tx.getStatus() == Status.STATUS_ACTIVE)
tx.commit();
else
tx.rollback();
}
关于java - 如何在 Infinispan 中使用 JTA 事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10624975/
我不想使用 Infinispan 作为我的数据源。提供什么样的数据库支持?是否需要 Hibernate 二级缓存? 最佳答案 Infinispan 可以配置持久缓存加载器,并且在支持的选项中,支持基于
我刚刚尝试将我的应用程序更新到 Infinspan 10.1.8.Final。我通过 build.gradle 中的此依赖项将 Infinispan 用作 2 级休眠 (5.4.18.Final) 缓
我正在使用 Infinispan 缓存。有没有办法在运行时获取条目的 TTL(或 lifepsan)?我看到界面CacheEntry作为 getLifespan() API,但我看不到如何获取 Cac
我们有三个服务必须位于集群中。因此,我们使用 Infinispan 来集群节点并在这些服务之间共享数据。成功重新启动后,有时我会遇到异常,并收到另一节点中左侧节点的“ View 已更改”事件。实际上所
我有以下 infinispan xml 并得到解析异常。javax.xml.stream.XMLStreamException:[行,列] 处的 ParseError:[3,36]消息:遇到意外元素“
我已将我的应用程序部署为 tomcat 6 服务上的 myApp1。由于一些要求,我复制了myApp1并粘贴到webapp下作为myApp2。现在我重新启动了tomcat并点击 myApp1 的网址。
我使用 infinispan-5.1.6.FINAL 作为远程缓存服务器和热棒协议(protocol)来访问它。但发现它没有按预期工作,即按照下面的配置,在 1ms 后不会驱逐键的缓存值
交叉张贴在 https://developer.jboss.org/thread/279735 假设我们有多个 docker 容器(每个都有 java webapps,所以本质上是多个 JVM),每个
我有一个使用 Infinispan 6.0.1.Final 的 Spring Boot 应用程序。我有两个类 A 和 B。B 扩展了 A。并且我有一个存储 B 类型对象的缓存。现在,我做了一个小更改,
在 jgroups 自动选择集群中对大约 180,000,000 条记录进行索引,一切正常(我索引和查询数据,结果似乎有效),但在每次启动和关闭时我都会遇到此类错误。这是我必须担心的实验模式造成的吗?
我们需要一个重新启动的持久缓存。主要目标是在启动时预加载尽可能多的数据。 因此要求是: 从磁盘存储预加载 从已使用热缓存运行的邻居节点预加载 看起来 Infinispan 可能是一个合适的选择,但
我编写了一个小型 infinispan 缓存 PoC(代码如下)来尝试评估 infinispan 性能。在运行它时,我发现对于我的配置 infinispan 显然不会从磁盘中清除缓存条目的旧副本,导致
我们使用 Infinispan 4.0 作为我们的缓存提供程序(我知道它有点过时,因为版本 9 是最新的)。话虽如此,我在阅读文档时有点困惑: Infinispan, by default, acqu
根据 infinispan 的文档:http://docs.jboss.org/infinispan/5.0/apidocs/ evict() API 不会从调用它的缓存存储上的集群中的任何其他缓存存
尝试在 thorntail project-defaults.yaml 上配置缓存,但是在尝试在 wildfly 上启动或部署时遇到以下问题。 错误必须在全局配置中设置传输才能定义集群缓存。 不确定我
环境 嵌入 Infinispan 9.4.18 3 个节点以复制模式缓存 RocksDB 存储(或其他,无关紧要) 重现步骤 创建基于 TCP 的集群 创建缓存 将实体添加到缓存 检查实体是否存储在每
如何将数据预加载到infinispan本地缓存?我有一个预先存在的应用程序表,其中包含键值对。我希望 infinispan 缓存表中的数据,当我读/写数据到缓存时,我希望基础表保持同步。 infini
我使用 JBoss 6.4 EAP 和 Infinispan 6。 org.infinispan infinispan-core 6.0.2.G1.Final 我有
我们使用具有 6 个实例的 JBoss 集群 (EAP 6.4.10),并大量使用捆绑的 Infinispan 5.2.11 来处理不同的内存网格用例。然而,它们中的大多数是分布式缓存(实际上是复制的
我们计划在客户端服务器模式下使用 Infinispan。该架构有许多客户端(客户端 1、客户端 2 等)和分布式 infinispan 网络。 我们需要定期更新缓存中的数据,比如每5小时更新一次。所有
我是一名优秀的程序员,十分优秀!