Thanks for the reply. But I've two doubts here.
1. If you check the code, I used ignite semaphore and if i remove that sempahore checking, then I'm getting JDBC connection issues as multiple threads access that particular code. We run 100s of threads. Is there any way where we can run in parallel. Because most of threads are waiting and frequently throwing these warnings ``` "" "172.21.197.110" "test" "" "" "" "1205" "org.apache.ignite.logger.java.JavaLogger" "warning" "WARNING" "19-05-2020 08:51:41:554" "294" "Dumping the near node thread that started transaction [xidVer=GridCacheVersion [topVer=201264296, order=1589828678516, nodeOrder=36], nodeId=82edf746-ccaf-4757-8d23-921c1c4d3ef6] Stack trace of the transaction owner thread: sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.park(LockSupport.java:304) o.a.i.i.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:177) o.a.i.i.util.future.GridFutureAdapter.get(GridFutureAdapter.java:140) o.a.i.i.processors.cache.GridCacheAdapter.get0(GridCacheAdapter.java:4267) o.a.i.i.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:4242) o.a.i.i.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:1406) o.a.i.i.processors.cache.GridCacheProxyImpl.get(GridCacheProxyImpl.java:373) o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync$1.call(GridCacheSemaphoreImpl.java:276) o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync$1.call(GridCacheSemaphoreImpl.java:270) o.a.i.i.processors.cache.GridCacheUtils.retryTopologySafe(GridCacheUtils.java:1425) o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync.compareAndSetGlobalState(GridCacheSemaphoreImpl.java:270) o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync.nonfairTryAcquireShared(GridCacheSemaphoreImpl.java:204) o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync.tryAcquireShared(GridCacheSemaphoreImpl.java:211) java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:988) java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304) o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl.acquire(GridCacheSemaphoreImpl.java:609) o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl.acquire(GridCacheSemaphoreImpl.java:597) com.zoho.scrapy.common.ignite.IgniteQuery$URLS_OBJECT.sqlBulkInsert(IgniteQuery.java:246) com.zoho.scrapy.common.ignite.IgniteQuery.executeFieldsQuery(IgniteQuery.java:63) com.zoho.scrapy.common.ignite.IgniteConnectionHandler$CacheHolder.sqlPipelinedSet(IgniteConnectionHandler.java:380) com.zoho.scrapy.common.ignite.IgniteUtil.zaddPipeline(IgniteUtil.java:343) edu.uci.ics.crawler4j.frontier.WorkQueues.putAll(WorkQueues.java:156) edu.uci.ics.crawler4j.frontier.Frontier.scheduleAll(Frontier.java:122) edu.uci.ics.crawler4j.crawler.WebCrawler.processPage(WebCrawler.java:560) edu.uci.ics.crawler4j.crawler.WebCrawler.run(WebCrawler.java:288) java.lang.Thread.run(Thread.java:748) ``` 2. I was under impression that once the JDBC connection terminates, all the rows will be flushed to insertion in the database. Is it not? Because if that's the case, we won't have any multi-threaded data consistency issues. -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/
