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)的主要内容,如果未能解决你的问题,请参考以下文章