che sto esecuzione di più thread di lavoro (circa 10) per accedere ai dati dal Redis Q.
Per la sto usando timeout infinte per Jedi client .Impossibile ottenere una risorsa dal pool (SocketTimeoutException :)
Jedis jedis = pool.getResource();
jedis.getClient().setTimeoutInfinite();
Ancora sto ottenendo l'errore "Impossibile ottenere una risorsa dal pool". Lo stacktrace è indicato di seguito.
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:22)
at Workers.Worker1.met1(Worker1.java:124)
at Workers.Worker1.work(Worker1.java:108)
at org.gearman.impl.worker.WorkerConnectionController$3.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out
at redis.clients.jedis.Connection.connect(Connection.java:124)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:54)
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1657)
at redis.clients.jedis.JedisPool$JedisFactory.makeObject(JedisPool.java:63)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)
at redis.clients.util.Pool.getResource(Pool.java:20)
... 6 more
Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at redis.clients.jedis.Connection.connect(Connection.java:119)
... 11 more
E il server Redis è attivo? Puoi collegarti dal box del cliente usando redis-cli? –
Sì Il server Redis è attivo e può connettersi utilizzando redis-cli – Vignesh
Ho lo stesso problema. Redis è in esecuzione. Il problema si verifica quando si utilizza JedisPool e si esegue 'returnResource'. Nessun problema con 'Jedis jedis = new Jedis (" localhost ");'. Hai risolto questo problema? –