Could not get a resource from the pool

异常描述: java

  1.  
    redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
  2.  
    at redis.clients.util.Pool.getResource(Pool.java: 22)
  3.  
    at com.derbysoft.jredis.longkeytest.BorrowObject.run(BorrowObject.java: 22)
  4.  
    at java.lang.Thread.run(Thread.java: 662)
  5.  
    Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
  6.  
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java: 1134)
  7.  
    at redis.clients.util.Pool.getResource(Pool.java: 20)
  8.  
    ... 2 more



一、产生缘由:客户端去redis服务器拿链接(代码描述的是租用对象borrowObject)的时候,池中无可用链接,即池中全部链接被占用,且在等待时候设定的超时时间后还没拿到时,报出此异常。 

二、解决办法:调整JedisPoolConfig中maxActive为适合本身系统的阀值。 

<bean id="dataJedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> 
        <property name="maxActive" value="300"/> 
       <property name="maxIdle" value="100"/> 
        <property name="maxWait" value="10000"/> 
        <property name="testOnBorrow" value="true"/> 
</bean> redis

相关文章
相关标签/搜索