SpringBoot项目连接oracle报 connection reset by peer解决办法

SpringBoot项目连接oracle报 connection reset by peer解决办法

Springboot开发好的项目在linux环境部署连接数据库时报如下错误:

errorCode 17002,state 08006
java.sql.SQLRecoverableException: IO Error: Connection reset by peer,Authentication lapse 74909 ms.

1.虽然启动报错,但只是连接数据库比较慢,功能一切正常。

2.查阅资料发现由于tomcat启动时产生随机数导致jvm阻塞,可能是多次启动tomcat导致熵池被用空造成阻塞。

3.使用telnet命令查询部署的机器和数据库的端口也是通的。

在apache-tomcat官方文档:如何让tomcat启动更快里面提到了一些启动时的优化项,其中一项是关于随机数生成时,采用“熵源”(entropy source)的策略。他提到tomcat7的session id的生成主要是通过java.security.SecureRandom生成随机数来实现的,随机数算法使用的是“SHA1PRANG”。

解决办法:

启动参数java -jar 后加上下面的部分即可,增加后可以加快随机数产生过程。

-Djava.security.egd=file:/dev/../dev/urandom

参考:

java.security.SecureRandom源码分析

springboot应用连接oracle数据库报错connection reset;errorcode 17002 state 08006

上一篇:QwQ


下一篇:《Ansible权威指南 》一3.4 Ad-Hoc用户与组管理