1 前言
继续研究maven项目中连接oracle数据库,期间已经遇到了一些问题并已整理在前面的博客中,本文继续补充遇到的问题。本博客中整理的专题是继续接maven项目中连接oracle数据库的那些坑专题的2.2部分。
2 问题整理
问题描述:Oracle数据库IO异常:Connection reset
解决方法1:修改$JAVA_HOME/jre/lib/security路径下的java.security文件,有如下几种修改方法:
把securerandom.source=file:/dev/random修改成
securerandom.source=file:/dev/../dev/urandom
或者securerandom.source=file:/dev/./urandom
或者securerandom.source=/dev/urandom
主要思路是将熵池配置由random变为urandom,/dev/random 和/dev/urandom 是linux 提供用于产生随机数的设备,他们产生随机数的原理是利用当前系统的熵池来计算出固定一定数量的随机比特,然后将这些比特作为字节流返回。
oracle JDBC在建立连接时需要一些随机数据用以加密session token之类的东西,而这个随机数据源默认用的是/dev/random,如果产生随机数的速度比较慢,可能会出现oracle connection reset的错误。
以下是分隔符
如果通过以上步骤已经解决了问题,则下面的内容没必要再看了哈哈。
解决方法2:通过启动rngd服务或者haveged来增大熵池:
通过以下命令查看熵池大小:
cat /proc/sys/kernel/random/entropy_avail
cat /proc/sys/kernel/random/poolsize
或者watch cat /proc/sys/kernel/random/entropy_avail
watch cat /proc/sys/kernel/random/poolsize
如果数值小于1000,则有必要增大熵池,安装rng-tools:
yum install rng-tools -y
启动服务:
systemctl enable rngd
haveged组件来进行补熵与以上操作类似。
3 参考资料:
https://blog.youkuaiyun.com/weixin_38287155/article/details/95891886 Linux中使用haveged对/dev/random补熵
https://blog.youkuaiyun.com/u011429743/article/details/108278807?utm_term=oracle%E8%BF%9E%E6%8E%A5reset&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-3-108278807&spm=3001.4430 Oracle JDBC 连接卡死后 Connection Reset解决过程
https://www.91linux.org/archives/96.html 安装haveged或rng-tools增加系统熵池
本文详述了在Maven项目中遇到的Oracle数据库IO异常ConnectionReset问题及解决方案。首先,建议修改`java.security`文件,将securerandom.source改为使用urandom以提高随机数生成速度。其次,当熵池不足时,可以启用rngd服务或安装haveged来增加熵池大小。这些方法有助于解决OracleJDBC连接过程中因加密sessiontoken所需随机数据导致的连接重置问题。
339

被折叠的 条评论
为什么被折叠?



