Блокировка чтения и записи объекта кэша в Production - PullRequest
0 голосов
/ 05 июня 2019

Нужна ваша помощь в ситуации тупиковой блокировки, с которой мы сталкиваемся ТОЛЬКО в производстве.Ниже приведен дамп потока для случая, когда в производственном приложении зависает из-за потоков в состоянии ожидания при попытке получить блокировку при чтении объекта ehcache. Это происходило ТОЛЬКО в производственном режиме, когда обновление кэша было установлено на 1 час.Теперь обновление кэша установлено на 24 часа, и проблема больше не возникает.Но в будущем интервал обновления кэша должен быть низким из-за других функций.Пожалуйста, помогите мне с вашим вкладом.Спасибо, JBoss используется в качестве сервера приложений.Java8 вместе со Spring является бэкэндом.

Записи дампа потока:

“http-appserver6/192.777.33.66:8080-48” daemon prio=10 tid=0x00005fa1ec432000 nid=0xebeb waiting on condition [0x00007fa1d4d4e000]

Java.ang.Thread.State: WAITING (parking)

               At sun.misc.Unsafe.park(Native Method)

- Parking to wait for <0x000000072d7a3598> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)

at java.util.concurrent.locks.AbstrackQueueSynchronizer.partAndCheckInterrupt(AbstrackQueueSynchronizer.java:834)

at java.util.concurrent.locks.AbstrackQueueSynchronizer.doAquireShared(AbstrackQueueSynchronizer.java:964)

at java.util.concurrent.locks.AbstrackQueueSynchronizer.aquireShared(AbstrackQueueSynchronizer.java:1282)

at java.util.concurrent.locks.ReentrantRedWriteLock$ReadLock.lock.aquireShared(ReentrantRedWriteLock.java:731)

at net.sf.ehcache.concurrent.ReadWriteLockSync.lock(ReadWriteLockSync.java:53)

at net.sf.ehcache.constructs.blocking.BlockingCache.aquiredLockForKey (BlockingCache.java:186)

at net.sf.ehcache.constructs.blocking.BlockingCache.get (BlockingCache.java:151)

at net.sf.ehcache.constructs.blocking.BlockingCache.get (BlockingCache.java:243)

at com.abcd.xyz.db.util.ConfigCacheManager.getCachedObjectFromBlockingCache(ConfigCacheManager.java:159)

at com.abcd.xyz.rest.service.CommonJSONService.getListOfFunds(CommonJSONService.Java:869)

at com.abcd.xyz.rest.service.UserService.retrieveUserInfo(UserService.java:257)

at com.abcd.xyz.rest.controller.UserController.retrieveUserInfo(UserController.java:138)

at com.abcd.xyz.rest.controller.UserController$$FastClassBySpringCGLIB$$acc16af8.invoke(<generated>)

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)

at org. springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJointpoint(CglibAopProxy.java:700)

at org. springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:150)



at org. springframework.aop.aspectj. MethodInvocationProceedingJointpoint.proceed(MethodInvocationProceedingJointpoint.java:80)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...