【问题标题】:WildFly exception when L2C enabled启用 L2C 时的 WildFly 异常
【发布时间】:2017-10-03 14:13:11
【问题描述】:

我在 wildfly-8.2 域模式下遇到了这个异常:

原因:在键上 [15 秒] 后无法获取锁 [app.entity.UserData#17568183] 请求者 [GlobalTransaction::2482:remote]!锁住 通过 [GlobalTransaction::2135:remote] 在 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。需要进行哪些更改才能解决此问题?

【问题讨论】:

    标签: hibernate jpa wildfly-8 infinispan


    【解决方案1】:

    Wildfly 10.1 在域模式和相同的配置中也遇到了这个异常。

    如果我为特定实体禁用缓存,则不会出现此类异常。

    如果在第一次尝试存储实体时,在将实体刷新到实体管理器/数据库后由于某些异常而回滚事务,则会发生错误。然后在第二次尝试中(刷新后无异常)我遇到了这个锁异常。所以我认为这可能与一些交易有关。未回滚(正确)的事务!?

    如果在第一次尝试发生异常/回滚后大约 2 分钟后开始第二次尝试,则它可以工作。这可能是因为 100.000 ms = 1min 40sec 的过期超时。

    另见此处:https://developer.jboss.org/thread/260634

    【讨论】:

    • 这篇文章起初看起来很像“我也是!”,但其中隐藏了一个实际的答案。您可能可以重新组织它,以便答案更加明显。由于您遇到了同样的问题,我希望其他人也会遇到,并且一些编辑将使这个答案更容易找到和更容易使用
    猜你喜欢
    • 1970-01-01
    • 2015-01-28
    • 2015-10-09
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 2021-07-21
    相关资源
    最近更新 更多