2016-10-27 1 views
0

Nous avons un serveur dédié en tant que memcached. Il a en dessous de la configuration:InterruptedException pendant l'opération put SSM Xmemcached

STAT curr_connections 242 
STAT total_connections 684 
STAT chunk_size 48 
STAT num_threads 64 
STAT num_threads_per_udp 64 

Mais nous voyons exception InterruptedException pour un cache lors du réglage de l'objet. ci-dessous sont les journaux

WARN [com.google.code.ssm.spring.SSMCache] (hystrix-ABCGROUP-45) An error has ocurred for cache APP_CACHE_1 and key 51BREAnullUFLDE384nullHOnull: com.google.code.ssm.providers.CacheException: java.lang.InterruptedException 
     at com.google.code.ssm.providers.xmemcached.MemcacheClientWrapper.set(MemcacheClientWrapper.java:240) 
     at com.google.code.ssm.CacheImpl.set(CacheImpl.java:290) 
     at com.google.code.ssm.CacheImpl.set(CacheImpl.java:128) 
     at com.google.code.ssm.spring.SSMCache.put(SSMCache.java:109) 
     at org.springframework.cache.interceptor.AbstractCacheInvoker.doPut(AbstractCacheInvoker.java:82) 
     at org.springframework.cache.interceptor.CacheAspectSupport$CachePutRequest.apply(CacheAspectSupport.java:651) 
     at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:358) 
     at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:299) 
     at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:61) 
     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
     at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) 
     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
     at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) 
     at com.sun.proxy.$Proxy140.cleanseAddress(Unknown Source) 
     at org.hystrix.command.ABCommand.runTask(ABCommand.java:33) 
     at org.hystrix.command.ABCommand.runTask(ABCommand.java:13) 
     at org.hystrix.BaseHystrixCommand.run(BaseHystrixCommand.java:75) 
     at com.netflix.hystrix.HystrixCommand$1.call(HystrixCommand.java:293) 
     at com.netflix.hystrix.HystrixCommand$1.call(HystrixCommand.java:288) 
     at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50) 
     at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) 
     at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50) 
     at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) 
     at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50) 
     at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) 
     at rx.Observable.unsafeSubscribe(Observable.java:8460) 
     at com.netflix.hystrix.AbstractCommand$5.call(AbstractCommand.java:521) 
     at com.netflix.hystrix.AbstractCommand$5.call(AbstractCommand.java:497) 
     at rx.Observable.unsafeSubscribe(Observable.java:8460) 
     at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94) 
     at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:56) 
     at org.util.ContextCallable.call(ContextCallable.java:51) 
     at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction.call(HystrixContexSchedulerAction.java:69) 
     at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_92] 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_92] 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_92] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_92] 
     at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_92] 
Caused by: java.lang.InterruptedException 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1326) [rt.jar:1.8.0_92] 
     at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:277) [rt.jar:1.8.0_92] 
     at net.rubyeye.xmemcached.XMemcachedClient.latchWait(XMemcachedClient.java:2516) 
     at net.rubyeye.xmemcached.XMemcachedClient.sendStoreCommand(XMemcachedClient.java:2498) 
     at net.rubyeye.xmemcached.XMemcachedClient.set(XMemcachedClient.java:1338) 
     at net.rubyeye.xmemcached.XMemcachedClient.set(XMemcachedClient.java:1396) 
     at net.rubyeye.xmemcached.XMemcachedClient.set(XMemcachedClient.java:1383) 
     at com.google.code.ssm.providers.xmemcached.MemcacheClientWrapper.set(MemcacheClientWrapper.java:238) 
     ... 39 more 

est Ci-dessous la version memcached

<dependency> 
    <groupId>com.googlecode.xmemcached</groupId> 
    <artifactId>xmemcached</artifactId> 
    <version>2.0.0</version> 
</dependency> 
<dependency> 
    <groupId>com.google.code.simple-spring-memcached</groupId> 
    <artifactId>xmemcached-provider</artifactId> 
    <version>3.6.0</version> 
</dependency> 
<dependency> 
<groupId>com.google.code.simple-spring-memcached</groupId> 
<artifactId>spring-cache</artifactId> 
    <version>3.1.0</version> 
</dependency> 

Je ne sais pas ce qui peut être la raison de cette exception. Plusieurs caches sont configurés mais cette exception est rencontrée uniquement pour APP_CACHE_1. L'expiration de APP_CACHE_1 est 7200.

+0

Quelle version de SSM utilisez-vous? Fournissez un stacktrace complet incluant la partie xmemcached. – ragnor

Répondre

0

Essayez une version plus récente de xmemcached: 2.2.0 en version plus ancienne il y avait un bug similaire: https://github.com/killme2008/xmemcached/issues/30

Je ne l'ai pas testé si elle est compatible avec 3.6.0 mais SSM ça vaut le coup d'essayer.

utiliser la dernière version de xmemcached-fournisseur et le printemps-cache: 3.6.1