0%

Linux下链接oralce报SQLRecoverableException: I/O Exception: Connection reset

简介

今天在正式环境部署应用时,使用jdbc连接数据库发现启动应用非常的忙,等待启动后查看日志发现SQLRecoverableException: I/O Exception: Connection reset’错误,在stackoverflow中发现有可能是linux随机数的问题,一下是网上摘抄的

1
2
3
/dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流。很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流。

  这两个设备的差异在于:/dev/random的random pool依赖于系统中断,因此在系统的中断数不足时,/dev/random设备会一直封锁,尝试读取的进程就会进入等待状态,直到系统的中断数充分够用, /dev/random设备可以保证数据的随机性。/dev/urandom不依赖系统的中断,也就不会造成进程忙等待,但是数据的随机性也不高。

所以在启动应用时也有可能很慢也有可能是此问题
解决方案

1
2
3
4
5
6
7
对于jdk而言,需要的是把配置文件中$JAVA_HOME/jre/lib/security/java.security中的

securerandom.source=file:/dev/random

改为

securerandom.source=file:/dev/urandom