阿里云 java程序 链接redis 报错 : IO Error: Connection reset

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

阿里云 java程序 链接redis 报错 : IO Error: Connection reset

  • 报错内容
2018-03-07 17:33:41.224 ERROR [main][Worker.java:26] - catching
java.sql.SQLRecoverableException: IO Error: Connection reset
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:421) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:148) ~[druid-1.0.15.jar:1.0.15]
    at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:211) ~[druid-1.0.15.jar:1.0.15]
    at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142) ~[druid-1.0.15.jar:1.0.15]
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1377) ~[druid-1.0.15.jar:1.0.15]
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1431) ~[druid-1.0.15.jar:1.0.15]
    at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:632) ~[druid-1.0.15.jar:1.0.15]
    at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:934) ~[druid-1.0.15.jar:1.0.15]
    at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:930) ~[druid-1.0.15.jar:1.0.15]
    at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:102) ~[druid-1.0.15.jar:1.0.15]
    at com.dragon.terminal.common.db.ConnectionPool.getConnection(ConnectionPool.java:71) ~[terminal-system-common-3.1.0.Final.jar:?]
    at com.dragon.terminal.worker.dao.DeviceStatusDao.getTotalCount(DeviceStatusDao.java:273) ~[terminal-system-worker-3.1.0.Final.jar:?]
    at com.dragon.terminal.worker.DeviceStatusInitializer.initialize(DeviceStatusInitializer.java:50) ~[terminal-system-worker-3.1.0.Final.jar:?]
    at com.dragon.terminal.worker.Worker.start(Worker.java:23) [terminal-system-worker-3.1.0.Final.jar:?]
    at com.dragon.terminal.server.TerminalServer30.main(TerminalServer30.java:19) [terminal-system-server-3.1.0.Final.jar:?]
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:115) ~[?:1.8.0_144]
    at java.net.SocketOutputStream.write(SocketOutputStream.java:155) ~[?:1.8.0_144]
    at oracle.net.ns.DataPacket.send(DataPacket.java:199) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:211) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:227) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:175) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:100) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.net.ns.NetInputStream.read(NetInputStream.java:85) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:122) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:78) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1179) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1155) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:279) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:359) ~[ojdbc6-11.2.0.jar:11.2.0.1.0]
    ... 18 more
原因
  • 响应慢,阿里云CentOS7 最小化安装 默认没安装嫡服务器
    启动java 程序 链接redis 时间过长,导致启动失败。解决方法如下:

解决方案

  • 安装rng-tools
# yum install rng-tools
# echo 'EXTRAOPTIONS="-i -o /dev/random -r /dev/urandom -t 10 -W 2048"' > /etc/sysconfig/rngd
# systemctl enable rngd.service
# systemctl restart  rngd.service
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
8天前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
1月前
|
缓存 NoSQL Java
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
55 3
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
|
13天前
|
安全 小程序 Java
Java“AccessControlException”报错解决
Java中的“AccessControlException”通常发生在尝试访问受安全策略限制的资源时。解决方法包括:1. 检查安全策略文件(java.policy)配置;2. 确保代码具有足够的权限;3. 调整JVM启动参数以放宽安全限制。
|
1月前
|
消息中间件 NoSQL Kafka
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
33 4
|
1月前
|
缓存 NoSQL Java
Java中redis面试题
Java中redis面试题
33 1
|
13天前
|
存储 NoSQL Java
Java 使用 Redis
10月更文挑战第22天
21 0
|
1月前
|
NoSQL Java API
Java操作redis
Java操作redis
|
3月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
4月前
|
Java 大数据
解析Java中的NIO与传统IO的区别与应用
解析Java中的NIO与传统IO的区别与应用
|
2月前
|
Java 大数据 API
Java 流(Stream)、文件(File)和IO的区别
Java中的流(Stream)、文件(File)和输入/输出(I/O)是处理数据的关键概念。`File`类用于基本文件操作,如创建、删除和检查文件;流则提供了数据读写的抽象机制,适用于文件、内存和网络等多种数据源;I/O涵盖更广泛的输入输出操作,包括文件I/O、网络通信等,并支持异常处理和缓冲等功能。实际开发中,这三者常结合使用,以实现高效的数据处理。例如,`File`用于管理文件路径,`Stream`用于读写数据,I/O则处理复杂的输入输出需求。