Нужна ваша помощь в ситуации тупиковой блокировки, с которой мы сталкиваемся ТОЛЬКО в производстве.Ниже приведен дамп потока для случая, когда в производственном приложении зависает из-за потоков в состоянии ожидания при попытке получить блокировку при чтении объекта 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)