title: Apache Ignite cache long running transaction
body: <p>Sometimes, not always, when the topology of my cluster changes it happens that my application hangs for up to 1 minute or more. In the log I then see the below Ignite warning. I guess this is the reason why my application hangs at a cache operation.</p>
  
  <p>What is causing the long transaction? I expect it is either network issues or GC?</p>
  
  <p>I wasn't able to find out which cache operation in my code is causing this long transaction. Does the warning help me find out what operation it is?</p>
  
  <pre><code>22:00:30.456 [grid-timeout-worker-#63][101] WARN  org.apache.ignite.internal.diagnostic-[warning] Found long running transaction [startTime=21:58:57.176, curTime=22:00:30.456, tx=GridNearTxLocal [mappings=IgniteTxMappingsImpl [], nearLocallyMapped=false, colocatedLocallyMapped=false, needCheckBackup=null, hasRemoteLocks=false, trackTimeout=false, lb=null, thread=&lt;failed to find active thread 1498&gt;, mappings=IgniteTxMappingsImpl [], super=GridDhtTxLocalAdapter [nearOnOriginatingNode=false, nearNodes=[], dhtNodes=[], explicitLock=false, super=IgniteTxLocalAdapter [completedBase=null, sndTransformedVals=false, depEnabled=false, txState=IgniteTxStateImpl [activeCacheIds=[], recovery=null, txMap=[]], super=IgniteTxAdapter [xidVer=GridCacheVersion [topVer=147994093, order=1536523104974, nodeOrder=74], writeVer=null, implicit=false, loc=true, threadId=1498, startTime=1536523137176, nodeId=e8153238-1d5a-4149-8db8-83a9fc820750, startVer=GridCacheVersion [topVer=147994093, order=1536523104974, nodeOrder=74], endVer=null, isolation=REPEATABLE_READ, concurrency=PESSIMISTIC, timeout=0, sysInvalidate=false, sys=false, plc=2, commitVer=null, finalizing=NONE, invalidParts=null, state=ACTIVE, timedOut=false, topVer=AffinityTopologyVersion [topVer=-1, minorTopVer=0], duration=93280ms, onePhaseCommit=false], size=0]]]]
  </code></pre>
  
  <p>My caches are created like this:</p>
  
  <pre><code>&lt;bean class="org.apache.ignite.configuration.CacheConfiguration"&gt;
      &lt;property name="name" value="MFDB_JobList" /&gt;
      &lt;property name="cacheMode" value="PARTITIONED" /&gt;
      &lt;property name="backups" value="0" /&gt;
      &lt;property name="atomicityMode" value="TRANSACTIONAL"/&gt; 
      &lt;property name="writeSynchronizationMode" value="FULL_SYNC"/&gt;
      &lt;property name="indexedTypes"&gt;
          &lt;list&gt;
              &lt;value&gt;java.util.UUID&lt;/value&gt;
              &lt;value&gt;CacheJobQueueEntry&lt;/value&gt;
          &lt;/list&gt;
      &lt;/property&gt;
  &lt;/bean&gt;
  </code></pre>
  
  <p>The relevant ignite configuration looks like this:</p>
  
  <pre><code>&lt;property name="networkTimeout" value="60000" /&gt;
  &lt;property name="networkSendRetryCount" value="10" /&gt;
  &lt;property name="failureDetectionTimeout" value="100000" /&gt;
  &lt;property name="clientFailureDetectionTimeout" value="100000" /&gt;
  </code></pre>