Hi,

So, you stopped node, transaction was rolled back. You don't have inconsistent
data. What did you expect?

In this case you should handle this exception and run transaction again.

Evgenii







2017-05-29 7:53 GMT+03:00 rickynauvaldy <[email protected]>:

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

Reply via email to