系统运维系列 之linux服务器中部署项目连接oracle数据库出现Connection reset(接maven项目中连接oracle数据库的那些坑专题)

Posted 琅晓琳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统运维系列 之linux服务器中部署项目连接oracle数据库出现Connection reset(接maven项目中连接oracle数据库的那些坑专题)相关的知识,希望对你有一定的参考价值。

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.csdn.net/weixin_38287155/article/details/95891886 Linux中使用haveged对/dev/random补熵
https://blog.csdn.net/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增加系统熵池

以上是关于系统运维系列 之linux服务器中部署项目连接oracle数据库出现Connection reset(接maven项目中连接oracle数据库的那些坑专题)的主要内容,如果未能解决你的问题,请参考以下文章

系统运维系列 之maven项目中连接oracle数据库的那些坑(接连接oracle数据库并进行数据读写专题)

系统运维系列 之linux系统下常用查找命令整理

系统运维系列 之记载一次windows系统下tomcat启动报错的问题

系统运维系列 之记载一次windows系统下tomcat启动报错的问题

系统运维系列 之linux常用命令整理与应用

系统运维系列 之Kafka查询不到正在消费的的消费组信息