连接不到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异常排查的主要内容,如果未能解决你的问题,请参考以下文章

rabbitmq io异常排查思路

一次SocketException:Connection reset 异常排查

HttpClient连接池抛出大量ConnectionPoolTimeoutException: Timeout waiting for connection异常排查

Spring Boot 连接 ZooKeeper 注册中心发生异常的排查经历

记一次dubbo连接zookeeper注册中心发生异常的排查经历

使用DMV排查数据库系统异常