0
我有使用GridGain進行緩存和分佈式鎖定的分佈式應用程序。當我的應用程序啓動時,它將連接多個節點的網格。 我所面臨的問題時,我的一個節點最終停止(例如,我的應用程序的重新部署)和連接到電網後,我有這個在我的日誌:如何管理GridGain緩存中未釋放的鎖?
[13:57:32,140][WARNING][main][GridDhtPreloader] <cacheLocks> Failed to wait for initial partition map exchange. Possible reasons are:
^-- Transactions in deadlock.
^-- Long running transactions (ignore if this is the case).
^-- Unreleased explicit locks.
[13:57:33,085][WARNING][grid-timeout-worker-#33%null%][GridDhtPartitionsExchangeFuture] <cacheLocks> Retrying preload partition exchange due to timeout [done=false, dummy=false, exchId=GridDhtPartitionExchangeId [topVer=56, nodeId=ee95b126, evt=NODE_JOINED], rcvdIds=[03e6666c], rmtIds=[ba1d527c, 03e6666c, 76bf5103], remaining=[ba1d527c, 76bf5103], init=true, initFut=true, ready=true, replied=false, added=true, oldest=76bf5103, oldestOrder=46, evtLatch=0, locNodeOrder=56, locNodeId=ee95b126-aaf9-4d46-9273-983e175d513a]
這不是死鎖,也沒有長期運行的事務。我想這是未發佈的鎖,因爲即時JVM停止而未發佈,之前我的應用沒有cache.lock(key, 0L)
,也沒有cache.unlock(key)
。
我只需要重新啓動所有網格。
問題是如何避免未發佈的鎖以及如何管理它們?我該如何正確處理這種情況?
您使用的是什麼版本的GridGain? – Alexey
我正在使用6.5.2 – hypet