问题:
linux下执行java程序时偶尔会有connection reset报错
分析:
Oracle的JDBC driver程序里面在获取db连接的时候用到了java的SecureRandom,来获取随机字节数据流,用来产生随机数,-Djava.security.egd配置的就是随机数据收集伪设备,linux下有两种:
1./dev/random,利用系统中断来生成随机数据,所以当系统不是很繁忙的时候,中断数很少,那么调用进程就会进入等待状态,直到有足够用的中断数的时候,才会返回随机数,而这时可能已经发生getConnection超时了
2./dev/urandom,不利用系统中断来生成随机数,所以不会造成调用进程等待
所以,我们的遇到的情况必须使用urandom才行,由于java的bug,即使指定file:/dev/urandom,SecureRandom使用的仍然是random,为了绕过这个bug,我们发现了「-Djava.security.egd=file:/dev/./urandom」这种配置方式,来达到我们使用urandom的目的.
解决方案:
1. 查找当前java的安装路径
ls -lrt /usr/bin/java
ls -lrt /etc/alternatives/java 找到java路径
2.将$JAVA_HOME/jre/lib/security/Java.security内,将securerandom.source的内容改为file:/dev/./urandom即可
注意:
cat /dev/random | od -x ----查看屏幕输出随机数的速度
cat /proc/sys/kernel/random/entropy_avail ----查看当前熵值,如果速度在2500以下基本判定就是有问题的。
相关推荐
本文将深入探讨如何通过JDBC(Java Database Connectivity)连接Oracle远程数据库时,解决中文乱码的困扰。 首先,我们需要理解的是,中文乱码通常源于字符集不一致或配置不当。在Java应用中,数据在JVM(Java...
"JDBC连接Oracle数据库常见问题及解决方法" 本文将对 JDBC 连接 Oracle 数据库常见问题...以上是 JDBC 连接 Oracle 数据库常见问题及解决方法的总结,希望能够帮助开发者更好地解决连接 Oracle 数据库时遇到的问题。
Java使用Jdbc连接Oracle执行简单查询操作示例 Java使用Jdbc连接Oracle执行简单查询操作,是指使用Java语言通过Jdbc(Java Database Connectivity)连接Oracle数据库并执行简单查询操作的过程。本文将通过实例形式...
### JDBC 连接 Oracle 字符集不同导致乱码问题解析及解决方案 #### 问题背景 在使用 JDBC(Java Database Connectivity)连接 Oracle 数据库时,可能会遇到一个常见的问题:从远程 Oracle 数据库获取的数据出现乱码...
JDBC连接Oracle测试 package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DB { private static Connection conn; private static ...
Java使用JDBC(Java Database Connectivity)来连接Oracle数据库是一个常见的任务,它允许Java应用程序与各种数据库进行交互。在本场景中,`ojdbc6.jar`是Oracle提供的JDBC驱动程序,用于建立Java应用程序与Oracle...
本篇文章将详细讲解如何创建一个JDBC连接Oracle的工具类,以及在实际应用中需要注意的事项。 首先,我们需要了解JDBC的基本概念。JDBC是Java与数据库交互的一组接口和类,它允许Java程序通过SQL语句来操作数据库。...
在使用JDBC连接Oracle数据库时,首先需要在项目的类路径中包含对应的ojdbc驱动jar文件。这里我们有ojdbc6_g.jar、ojdbc5_g.jar、ojdbc6.jar和ojdbc5.jar四个文件。其中,“_g”后缀通常表示包含了调试信息,对于开发...
本示例将详细解释如何在Eclipse集成开发环境中,通过JDBC连接到Oracle数据库。 首先,我们需要了解JDBC的基本概念。JDBC是一个Java API,它提供了一组接口和类,使得Java程序可以与各种数据库进行交互。它允许...
### 使用JDBC连接Oracle数据库 #### 一、简介与背景 Java Database Connectivity (JDBC) 是 Java 开发语言中的一项关键技术,它允许开发者通过标准 API 与多种类型的数据库进行交互。JDBC 提供了一种机制,使 Java...
本篇将详细介绍如何使用JDBC连接Oracle数据库并执行存储过程。 首先,我们需要理解JDBC的基本概念。JDBC是Java平台的标准API,它允许Java程序与各种数据库进行通信。通过JDBC,我们可以创建数据库连接、发送SQL语句...
在Java环境下连接Oracle数据库,你需要特定的驱动包,即Oracle JDBC驱动,通常这个驱动包含在`ojdbc.jar`文件中。 Oracle JDBC驱动主要有三种类型: 1. **JDBC-ODBC桥接驱动**:它是最早的Oracle JDBC驱动,通过...
在测试JDBC连接时,需要确保Oracle监听器(Listener)和相关配置文件(如listener.ora和tnsnames.ora)设置正确。例如: 在`listener.ora`中,配置如下: ```text SID_LIST_LISTENER = (SID_LIST = (SID_DESC =...
用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。 解决方案一: 今天工作时在新建连接的时候遇到...
Oracle客户端JDBC连接测试工具是一种实用程序,它允许开发者和系统管理员通过Java Database Connectivity (JDBC)...如果工具的源码可用,开发者还可以借此提升自己的技能,定制适合自己项目的数据库连接测试解决方案。
在IT领域,数据库管理和ETL(提取、转换、加载)工具是至关重要的组成部分。Kettle是一款流行的开源ETL工具,由Pentaho公司...通过以上分析和解决方案,你应该能够找到解决问题的方法,顺利连接到Oracle 12c数据库。
本教程将详细讲解如何在Java项目中使用JDBC连接Oracle数据库,并提供必要的jar包。 首先,我们需要引入Oracle JDBC驱动的jar包。在Java中,Oracle提供了`ojdbc.jar`,通常是`ojdbc6.jar`或`ojdbc7.jar`,具体版本取...
"JDBC连接Oracle数据库测试"是一个关键的实践环节,确保应用程序能够稳定且高效地与数据库进行交互。在这个场景中,我们将详细探讨如何使用JDBC来实现对Oracle数据库的连接测试,以及如何每隔20秒执行一次连接并记录...
本示例展示了如何使用JDBC连接Oracle数据库,通过Apache Commons DBCP库实现数据库连接池来提高性能和资源管理。 首先,让我们了解关键类和方法: 1. `BaseDAO` 类:这是基础数据访问对象类,它封装了与数据库交互...