Connection reset by peer: socket write error项目中从redis读数据报错

火光闪耀 2015-08-19 09:43:44
java项目跑起来后,在执行redis的hget方法的时候必然会报错:Connection reset by peer: socket write error

但是在该类中手动写了个main方法,然后调用hget方法,程序没有报错,得到了正确的结果。

停止项目执行main方法,结果正确;项目正在运行,执行main方法,结果也正确。

就是在项目自己执行到这个方法的时候会报这个错,请问这个应该怎么解决?
报错信息如下:
redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketException: Connection reset by peer: socket write error
at redis.clients.jedis.Connection.flush(Connection.java:69)
at redis.clients.jedis.Connection.getBinaryMultiBulkReply(Connection.java:200)
at redis.clients.jedis.BinaryJedis.hgetAll(BinaryJedis.java:903)
at com.ll.da.persistence.redis.dao.impl.RedisMapDaoImpl.get(RedisMapDaoImpl.java:69)
at com.ll.da.persistence.redis.service.impl.DASQueryKeyServiceImp.findQueryKeys(DASQueryKeyServiceImp.java:46)
at com.ll.da.common.schedule.task.CleanAlarmQueryCacheTask.run(CleanAlarmQueryCacheTask.java:73)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.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: java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at redis.clients.util.RedisOutputStream.flushBuffer(RedisOutputStream.java:29)
at redis.clients.util.RedisOutputStream.flush(RedisOutputStream.java:227)
at redis.clients.jedis.Connection.flush(Connection.java:67)
... 13 more
...全文
2908 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuyesuifeng 2015-08-20
  • 打赏
  • 举报
回复
连接池连接没有释放就被第二个线程拿来用了 1.检查DB配置和连接池配置 2.检查数据库连接模块代码
火光闪耀 2015-08-19
  • 打赏
  • 举报
回复
不是网络原因。问题找到了。是因为有个地方从池中获取后没有释放。
  • 打赏
  • 举报
回复
会不会是网络原因

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧