我在通配符-8.2域模式中得到了这个异常:
导致:无法获得锁15秒后,为请求者全球事务::2482:远程键app.entity.UserData#17568183!GlobalTransaction持有的锁::2135:远程在org.infinispan.util.concurrent.locks.LockManagerImpl (第198行)
以下是设置:
<subsystem xmlns="urn:jboss:domain:infinispan:2.0">
<cache-container name="server" default-cache="default" module="org.wildfly.clustering.server" aliases="singleton cluster">
<transport lock-timeout="120000"/>
<replicated-cache name="default" batching="true" mode="SYNC">
<locking isolation="REPEATABLE_READ"/>
</replicated-cache>
</cache-container>
<cache-container name="web" default-cache="dist" module="org.wildfly.clustering.web.infinispan">
<transport lock-timeout="120000"/>
<distributed-cache name="dist" batching="true" mode="ASYNC" owners="2" l1-lifespan="0">
<locking isolation="REPEATABLE_READ" acquire-timeout="300000" concurrency-level="1000"/>
<file-store/>
</distributed-cache>
</cache-container>
<cache-container name="ejb" default-cache="dist" module="org.wildfly.clustering.ejb.infinispan" aliases="sfsb">
<transport lock-timeout="120000"/>
<distributed-cache name="dist" batching="true" mode="ASYNC" owners="2" l1-lifespan="0">
<file-store passivation="true"/>
</distributed-cache>
</cache-container>
<cache-container name="hibernate" default-cache="local-query" module="org.hibernate">
<transport lock-timeout="120000"/>
<local-cache name="local-query">
<transaction mode="NONE"/>
<eviction strategy="LRU" max-entries="10000"/>
<expiration max-idle="100000"/>
</local-cache>
<invalidation-cache name="entity" mode="SYNC">
<transaction mode="NON_XA"/>
<eviction strategy="LRU" max-entries="10000"/>
<expiration max-idle="100000"/>
</invalidation-cache>
<replicated-cache name="timestamps" mode="ASYNC">
<transaction mode="NONE"/>
<eviction strategy="NONE"/>
</replicated-cache>
</cache-container>
</subsystem>我正在使用XA-DataSource。要解决这个问题需要做什么改变?
发布于 2017-06-09 10:09:10
在域模式和相同的配置中,Wildfly10.1也得到了这个异常。
如果我禁用了特定实体的缓存,就没有这样的异常。
如果在第一次尝试存储该实体时,由于该实体被刷新到实体管理器/数据库后出现某些异常,则会发生错误。然后,在第二次尝试中(在刷新之后毫无例外),我遇到了这个锁异常。所以我想这可能和一些交易有关。未回滚(正确)的事务!?
如果第二次尝试是在第一次尝试之后大约2分钟开始的,并且有异常/回滚,那么它可以工作。这可能是因为100.000 ms =1分钟40秒的过期时间。
https://stackoverflow.com/questions/43799134
复制相似问题