2017-05-05 5 views
0

Ich habe diese Ausnahme in Wildfly-8.2-Domäne-Modus:Wildfly Ausnahme, wenn L2C aktiviert

Verursacht durch: Unable Sperre nach [15 Sekunden] zum Erwerb von Schlüssel [app.entity.UserData # 17568183] für Anforderer [GlobalTransaction :: 2482: remote]! Sperre gehalten von [GlobalTransaction :: 2135: remote] bei org.infinispan.util.concurrent.locks.LockManagerImpl (Linie 198)

Hier sind die Einstellungen:

   <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> 

Ich benutze XA-Datenquelle. Welche Änderung ist erforderlich, um dieses Problem zu beheben?

Antwort

1

Ich habe auch diese Ausnahme mit Wildfly 10.1 in Domäne-Modus und der gleichen Konfiguration.

Wenn ich den Cache für eine bestimmte Entität deaktivieren, gibt es keine solche Ausnahme.

Der Fehler tritt auf, wenn in einem ersten Versuch, die Einheit zu speichern, die Transaktion zurück aufgrund einiger Ausnahme gerollt wird, nachdem die Entität auf die Entität Manager/Datenbank gespült wurde. Und dann in einem zweiten Versuch (ohne Ausnahme nach dem Flush) renne ich in diese Sperre Ausnahme. Ich denke also, es könnte etwas mit Transaktionssachen zu tun haben. Eine Transaktion, die nicht (korrekt) zurückgesetzt wird !?

Wenn der zweite Versuch nach etwa 2 Minuten nach dem ersten Versuch mit Ausnahme gestartet/Rollback es funktioniert. Dies liegt wahrscheinlich an der Ablaufzeit von 100.000 ms = 1min 40sec.

Siehe auch hier: https://developer.jboss.org/thread/260634

+1

Dieser Beitrag sieht auf dem ersten viel wie ein, aber es ist eine tatsächliche Antwort in dort begraben „Ich auch!“. Sie könnten es wahrscheinlich reorganisieren, so dass die Antwort offensichtlicher ist. Da Sie das gleiche Problem hatten, erwarte ich andere auch, und ein paar Änderungen werden diese Antwort einfacher finden und einfacher zu benutzen sein –

Verwandte Themen