专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

JDK7在CentOS7下访问数据库非常慢的处理方式

ins518 2024-11-10 11:11:08 技术文章 14 ℃ 0 评论

一、处理方式:

  1. 找到安装的jdk目录下的jre/lib/security文件夹,如:/usr/local/java/jdk1.7.0_80/jre/lib/security。
  2. 找到文件 java.security,调整内容如下:
修改前:securerandom.source=file:/dev/urandom
修改后:securerandom.source=file:/dev/./urandom

二、目前问题限定条件

当前问题发生再CentOS7系统下,java版本为7,tomcat版本为7。其他版本情况未测试。

三、原因

  1. Jdk 连接oracle的时,从某个版本开始The JDBC 11gneeds about 40 bytes of secure random numbers, gathered from /dev/random, toencrypt its connect string.
  2. linux有两种类型随机数发生器,一个是/dev/random,一个是/dev/urandom,urandom=unlocked random,即非阻塞随机。要产生真实的随机,linux是搜集真实的随机事件放到一个熵池里,当随机事件不足时,/dev/random会阻塞等到有随机事件产生才返回,而/dev/urandom则会重复利用以前的随机事件迅速返回。
  3. 那这里默认就是使用的/dev/urandom,为什么还是有问题呢?因为这个版本的jdk,实际上在jdk代码里当匹配到/dev/urandom时实际上还是指向了/dev/random,于是大家就想到了一个变通办法采用/dev/./urandom,在linux系统中,加个点表示当前路径这个和之前一样,但是jdk代码却不不配,就绕过去了。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表