So I've been trying to do the case using write through only, but when I stopped one of the server, exception appeared:
> Exception in thread "main" javax.cache.CacheException: class > org.apache.ignite.cluster.ClusterTopologyException: Failed to acquire lock > for keys (primary node left grid, retry transaction if possible) > [keys=[UserKeyCacheObjectImpl [part=1, val=1, hasValBytes=true]], > node=d46c85bc-bd55-4731-b390-05e86fa68af6] > at > org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1421) > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxy.cacheException(IgniteCacheProxy.java:2641) > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxy.get(IgniteCacheProxy.java:1205) > at > myexamples.store.TransactionClient1.deposit(TransactionClient1.java:107) > at myexamples.store.TransactionClient1.main(TransactionClient1.java:46) > Caused by: class org.apache.ignite.cluster.ClusterTopologyException: > Failed to acquire lock for keys (primary node left grid, retry transaction > if possible) [keys=[UserKeyCacheObjectImpl [part=1, val=1, > hasValBytes=true]], node=d46c85bc-bd55-4731-b390-05e86fa68af6] > at > org.apache.ignite.internal.util.IgniteUtils$7.apply(IgniteUtils.java:812) > at > org.apache.ignite.internal.util.IgniteUtils$7.apply(IgniteUtils.java:810) > ... 5 more > Caused by: class > org.apache.ignite.internal.cluster.ClusterTopologyCheckedException: Failed > to acquire lock for keys (primary node left grid, retry transaction if > possible) [keys=[UserKeyCacheObjectImpl [part=1, val=1, > hasValBytes=true]], node=d46c85bc-bd55-4731-b390-05e86fa68af6] > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.newTopologyException(GridDhtColocatedLockFuture.java:1319) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.access$1900(GridDhtColocatedLockFuture.java:85) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture$MiniFuture.onResult(GridDhtColocatedLockFuture.java:1469) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.onNodeLeft(GridDhtColocatedLockFuture.java:414) > at > org.apache.ignite.internal.processors.cache.GridCacheMvccManager$4.onEvent(GridCacheMvccManager.java:263) > at > org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager$LocalListenerWrapper.onEvent(GridEventStorageManager.java:1311) > at > org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:892) > at > org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.record0(GridEventStorageManager.java:340) > at > org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager.record(GridEventStorageManager.java:307) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.recordEvent(GridDiscoveryManager.java:2277) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.body0(GridDiscoveryManager.java:2474) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryWorker.body(GridDiscoveryManager.java:2306) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) > at java.lang.Thread.run(Unknown Source) > Caused by: class > org.apache.ignite.internal.cluster.ClusterTopologyCheckedException: Failed > to acquire lock for keys (primary node left grid, retry transaction if > possible) [keys=[UserKeyCacheObjectImpl [part=1, val=1, > hasValBytes=true]], node=d46c85bc-bd55-4731-b390-05e86fa68af6] > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture.newTopologyException(GridDhtColocatedLockFuture.java:1319) > ... 11 more I saw this post [1], but I still don't get the /this means it has been already acquired/ part. What should I do? I used Transactions with /pessimistic /concurency with /serializable /isolation. When I try to change the isolation to /repeatable_read/, another exception is shown: > Exception in thread "main" class org.apache.ignite.IgniteException: Failed > to commit transaction: > GridNearTxLocal[id=ec0e9825c51-00000000-0668-82bc-0000-00000000001d, > concurrency=PESSIMISTIC, isolation=REPEATABLE_READ, state=ROLLED_BACK, > invalidate=false, rollbackOnly=true, > nodeId=bc2cac44-08b4-43e3-9316-c54bb8ca4679, duration=3859] > at > org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:949) > at > org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.rollback(TransactionProxyImpl.java:314) > at > myexamples.store.TransactionClient1.deposit(TransactionClient1.java:122) > at myexamples.store.TransactionClient1.main(TransactionClient1.java:41) > Caused by: class org.apache.ignite.IgniteCheckedException: Failed to > commit transaction: > GridNearTxLocal[id=ec0e9825c51-00000000-0668-82bc-0000-00000000001d, > concurrency=PESSIMISTIC, isolation=REPEATABLE_READ, state=ROLLED_BACK, > invalidate=false, rollbackOnly=true, > nodeId=bc2cac44-08b4-43e3-9316-c54bb8ca4679, duration=3859] > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishFuture.finish(GridNearTxFinishFuture.java:423) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.rollbackNearTxLocalAsync(GridNearTxLocal.java:3246) > at > org.apache.ignite.internal.processors.cache.GridCacheSharedContext.rollbackTxAsync(GridCacheSharedContext.java:855) > at > org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.rollback(TransactionProxyImpl.java:306) > ... 2 more Any suggestion? Thanks. -- Ricky [1] http://apache-ignite-users.70518.x6.nabble.com/Enter-Lock-is-not-working-td8040.html ----- -- Ricky -- View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Client-Server-Persistent-Store-Fault-Tolerance-tp13054p13186.html Sent from the Apache Ignite Users mailing list archive at Nabble.com.
