连接不到JDBC异常排查
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接不到JDBC异常排查相关的知识,希望对你有一定的参考价值。
连接不到数据库的报错一般有以下几种原因:
1、数据源配置文件有问题,检查数据源配置文件中的IP,账号和密码。
2、检查数据库是否正常运行。使用plsql输入账号和密码进行验证。
3、查看在deploy目录下是否存在两个数据源配置文件,对照别的环境查看是否需要连接两个数据库。也可和开发核对是否需要那样连接。
4、如果第一遍启动报数据源连接不到异常,重启不报错,这种是因为数据库连接数较小,增加数据库的连接数,增大数据库服务器的文件打开数和用户最大进程数。这里应该是调整oracle用户的相关参数。
要确保这两个文件中的配置数足够大
* 代表所有用户
cat /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
oracle soft nproc 16384 --设置oracle用户的最大进程数
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536 --这里是给oracle用户设置文件打开数
[[email protected] limits.d]# cat 90-nproc.conf --这个配置文件是设置用户最大进程数
# Default limit for number of user‘s processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
root soft nproc unlimited
* soft nproc 65536
* hard nproc 65536
以上可通过ulimit -a来查看
[root@fossdb limits.d]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 1031898
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 65536
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[[email protected] limits.d]# su - oracle
[oracle@fossdb ~]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 1031898
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 16384
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[[email protected] ~]$
可以使用 ulimit -u 4096 修改max user processes的值,但是只能在当前终端的这个session里面生效,重新登录后仍然是使用系统默认值。
以上是关于连接不到JDBC异常排查的主要内容,如果未能解决你的问题,请参考以下文章
一次SocketException:Connection reset 异常排查
HttpClient连接池抛出大量ConnectionPoolTimeoutException: Timeout waiting for connection异常排查
Spring Boot 连接 ZooKeeper 注册中心发生异常的排查经历