生产中的缓存对象读写锁定

时间:2019-06-05 10:21:33

标签: caching deadlock

在僵局的情况下需要您的帮助,我们仅在生产中面临。 以下是在尝试获取读取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)

0 个答案:

没有答案