Java 连接到 OracleDB 的速度非常慢(使用 ojdbc6.jar 和 Linux)

Posted

技术标签:

【中文标题】Java 连接到 OracleDB 的速度非常慢(使用 ojdbc6.jar 和 Linux)【英文标题】:Java connect to OracleDB very slowly (with ojdbc6.jar and Linux) 【发布时间】:2013-07-15 13:41:46 【问题描述】:

我正在尝试部署连接到 ORACLE 数据库 (10g) 的 Web 服务。

目前,我有 - CentOS 6.4 64位 - 带有 JDK 1.7.0_25 的 Apache Tomcat 7.0.42 - Ojdbc6.jar

当我在 Windows 上使用相同版本的 tomcat 调用 Web 服务时。它工作正常(0.1-0.5 秒/事务)。

但不幸的是,当我尝试在 CentOS 服务器上调用它时,它非常慢(10-20 秒/事务)

除了操作系统和我监控 catalina.out 时,库完全相同,但没有错误,但执行 dbCreateConnection() 时速度很慢)

请给我一个建议。

谢谢:\

仅供参考,这是数据库部分中的代码。

try  
            Class.forName("oracle.jdbc.OracleDriver");

            InputStream isr = this.getClass().getResourceAsStream("/"+"dbConfig.properties");
            Properties prop = new Properties();
            if (isr != null)
              InputStreamReader isrProperties = new InputStreamReader(isr);
              prop.load(isrProperties);
            

            String dbURL = "jdbc:oracle:thin:@"+prop.getProperty("dbhost")+":"+prop.getProperty("dbport")+":"+prop.getProperty("dbname");
            System.out.println("TRACE : getdbConfig --> "+dbURL);
            String username = prop.getProperty("dbuser");
            String password = prop.getProperty("dbpass");

            dbConn = DriverManager.getConnection(dbURL, username, password);
            if(dbConn != null)
                System.out.println("TRACE : Connected to "+dbURL);
            
         
        catch (SQLException ex) 
            System.out.println("Error Message : getConnection Failed --> "+ex.getSQLState());
            ex.printStackTrace();
         

【问题讨论】:

你有什么证据表明数据库连接一直在占用? 嗨,戴夫,它只是在数据库连接线上缓慢。 dbConn = DriverManager.getConnection(dbURL, 用户名, 密码);过了这一段之后就正常了。 你解决过这个问题吗?我正在使用 OJDBC6 与 Oracle 12 通信,它在大约 50 毫秒内连接。我们升级到Oracle 19,连接需要3秒。我被困在装有 JDK 6 的客户端机器上,所以无法升级 OJDBC.jar 【参考方案1】:

使用 JVM 标志启动 Java:

-Djava.security.egd=file:/dev/./urandom

【讨论】:

您可能需要添加一些解释,说明您为什么认为这应该可以解决 OP 的问题。

以上是关于Java 连接到 OracleDB 的速度非常慢(使用 ojdbc6.jar 和 Linux)的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 加载页面非常慢

从 Java 连接到 Oracle DB 时出错

我正在尝试从面临以下错误的节点连接到 oracledb

通过 Android 应用程序连接到 OracleDB

通过 ODBC 连接到 DB2 非常慢

使用带有 node-oracledb 的 SID 连接到 Oracle DB 失败