`

JDBC连接Oracle时connection reset报错解决方案

 
阅读更多

问题:

     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连接oracle远程数据库中文乱码解决

    本文将深入探讨如何通过JDBC(Java Database Connectivity)连接Oracle远程数据库时,解决中文乱码的困扰。 首先,我们需要理解的是,中文乱码通常源于字符集不一致或配置不当。在Java应用中,数据在JVM(Java...

    Java使用Jdbc连接Oracle执行简单查询操作示例

    Java使用Jdbc连接Oracle执行简单查询操作示例 Java使用Jdbc连接Oracle执行简单查询操作,是指使用Java语言通过Jdbc(Java Database Connectivity)连接Oracle数据库并执行简单查询操作的过程。本文将通过实例形式...

    jdbc连接oracle字符集不同出现乱码

    ### JDBC 连接 Oracle 字符集不同导致乱码问题解析及解决方案 #### 问题背景 在使用 JDBC(Java Database Connectivity)连接 Oracle 数据库时,可能会遇到一个常见的问题:从远程 Oracle 数据库获取的数据出现乱码...

    JDBC连接Oracle数据库常见问题及解决方法

    "JDBC连接Oracle数据库常见问题及解决方法" 本文将对 JDBC 连接 Oracle 数据库常见问题...以上是 JDBC 连接 Oracle 数据库常见问题及解决方法的总结,希望能够帮助开发者更好地解决连接 Oracle 数据库时遇到的问题。

    JDBC连接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连接oracle数据库

    Java使用JDBC(Java Database Connectivity)来连接Oracle数据库是一个常见的任务,它允许Java应用程序与各种数据库进行交互。在本场景中,`ojdbc6.jar`是Oracle提供的JDBC驱动程序,用于建立Java应用程序与Oracle...

    jdbc连接oracle工具类

    本篇文章将详细讲解如何创建一个JDBC连接Oracle的工具类,以及在实际应用中需要注意的事项。 首先,我们需要了解JDBC的基本概念。JDBC是Java与数据库交互的一组接口和类,它允许Java程序通过SQL语句来操作数据库。...

    jdbc连接oracle数据库

    在使用JDBC连接Oracle数据库时,首先需要在项目的类路径中包含对应的ojdbc驱动jar文件。这里我们有ojdbc6_g.jar、ojdbc5_g.jar、ojdbc6.jar和ojdbc5.jar四个文件。其中,“_g”后缀通常表示包含了调试信息,对于开发...

    jdbc连接oracle简单示例

    本示例将详细解释如何在Eclipse集成开发环境中,通过JDBC连接到Oracle数据库。 首先,我们需要了解JDBC的基本概念。JDBC是一个Java API,它提供了一组接口和类,使得Java程序可以与各种数据库进行交互。它允许...

    使用JDBC连接Oracle数据库

    ### 使用JDBC连接Oracle数据库 #### 一、简介与背景 Java Database Connectivity (JDBC) 是 Java 开发语言中的一项关键技术,它允许开发者通过标准 API 与多种类型的数据库进行交互。JDBC 提供了一种机制,使 Java...

    jdbc连接oracle,执行存储过程,带数据库存储过程

    本篇将详细介绍如何使用JDBC连接Oracle数据库并执行存储过程。 首先,我们需要理解JDBC的基本概念。JDBC是Java平台的标准API,它允许Java程序与各种数据库进行通信。通过JDBC,我们可以创建数据库连接、发送SQL语句...

    jdbc连接oracle jar包

    在Java环境下连接Oracle数据库,你需要特定的驱动包,即Oracle JDBC驱动,通常这个驱动包含在`ojdbc.jar`文件中。 Oracle JDBC驱动主要有三种类型: 1. **JDBC-ODBC桥接驱动**:它是最早的Oracle JDBC驱动,通过...

    jdbc连接oracle三种方式

    在测试JDBC连接时,需要确保Oracle监听器(Listener)和相关配置文件(如listener.ora和tnsnames.ora)设置正确。例如: 在`listener.ora`中,配置如下: ```text SID_LIST_LISTENER = (SID_LIST = (SID_DESC =...

    Oracle SQL Developer连接报错(ORA-12505)的解决方案(两种)

    用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。  解决方案一: 今天工作时在新建连接的时候遇到...

    Oracle 客户端JDBC连接测试工具

    Oracle客户端JDBC连接测试工具是一种实用程序,它允许开发者和系统管理员通过Java Database Connectivity (JDBC)...如果工具的源码可用,开发者还可以借此提升自己的技能,定制适合自己项目的数据库连接测试解决方案。

    kettle连接oracle12C--报错ORA-28040 没有匹配的验证协议.rar

    在IT领域,数据库管理和ETL(提取、转换、加载)工具是至关重要的组成部分。Kettle是一款流行的开源ETL工具,由Pentaho公司...通过以上分析和解决方案,你应该能够找到解决问题的方法,顺利连接到Oracle 12c数据库。

    java中jdbc连接oracle代码及jar包

    本教程将详细讲解如何在Java项目中使用JDBC连接Oracle数据库,并提供必要的jar包。 首先,我们需要引入Oracle JDBC驱动的jar包。在Java中,Oracle提供了`ojdbc.jar`,通常是`ojdbc6.jar`或`ojdbc7.jar`,具体版本取...

    JDBC连接oracle数据库测试

    "JDBC连接Oracle数据库测试"是一个关键的实践环节,确保应用程序能够稳定且高效地与数据库进行交互。在这个场景中,我们将详细探讨如何使用JDBC来实现对Oracle数据库的连接测试,以及如何每隔20秒执行一次连接并记录...

    JDBC连接oracle数据库

    本示例展示了如何使用JDBC连接Oracle数据库,通过Apache Commons DBCP库实现数据库连接池来提高性能和资源管理。 首先,让我们了解关键类和方法: 1. `BaseDAO` 类:这是基础数据访问对象类,它封装了与数据库交互...

Global site tag (gtag.js) - Google Analytics