Linux熵池耗尽确实可能导致Oracle数据库连接失败。 Linux系统中的熵池是用于生成随机数的数据池,熵值反映了池中随机性的质量。Oracle数据库在建立连接时,特别是使用11g版本的JDBC驱动程序时,需要大约40个字节的随机数据来加密会话令牌等连接字符串。这些随机数据默认从/dev/random设备获取,而/dev/random在
熵池本质上是若干字节。/proc/sys/kernel/random/entropy_avail中存储了熵池现在的大小,/proc/sys/kernel/random/poolsize是熵池的最大容量,单位都是bit。如果entropy_avail的值小于要产生的随机数bit数,那么/dev/random就会堵塞。 熵斥怎么增加? 只有少数驱动程序会填充熵池,首先是键盘和鼠标。 实际上是从各种noice...
EN但我担心的是,有人可能会反复生成代码,排出熵池,从而能够预测未来的代码。要求用户解决CAPTCHA以生成...
根据错误代码,进行查询,发现可能是linux系统熵池不够,导致连接无法建立,原因是oracle 11g JDBC在建立连接时需要大约40个字节随机数据来加密session token之类的连接字符串,而这个随机数据源默认用的是/dev/random,通过搜集键盘,鼠标,中断,磁盘操作来产生随机数据,可以通过以下命令查看当前的熵值: cat /proc/sys/kernel/...
然后找到了一篇文章,linux熵池耗尽 http://www.usn-it.de/index.php/2009/02/20/oracle-11g-jdbc-driver-hangs-blocked-by-devrandom-entropy-pool-empty/ 在jvm启动参数里加上 -Djava.security.egd=file:/dev/./urandom 就ok了。 可是这是为什么呢?