相关疑难解决方法(0)

Java JDBC - 如何使用服务名称而不是SID连接到Oracle

我有一个使用JDBC(通过JPA)的Java应用程序,它使用主机名,端口和Oracle SID连接到开发数据库,​​如下所示:

JDBC:神谕:薄:@ oracle.hostserver1.mydomain.ca:1521:XYZ

XYZ是Oracle SID.现在我需要连接到不使用SID的不同Oracle数据库,而是使用Oracle"服务名称".

我试过这个,但它不起作用:

JDBC:神谕:薄:@ oracle.hostserver2.mydomain.ca:1522:ABCD

ABCD是另一个数据库的服务名称.

我究竟做错了什么?

java oracle connection-string jdbc service-name

242
推荐指数
5
解决办法
55万
查看次数

如何解决慢Java`SecureRandom`?

如果你想在Java中使用加密强大的随机数,你可以使用SecureRandom.不幸的是,SecureRandom可能会很慢.如果它/dev/random在Linux上使用,它可以阻止等待足够的熵建立.你如何避免性能损失?

有没有人使用Uncommon Maths作为解决这个问题的方法?

任何人都可以确认JDK 6中已经解决了这个性能问题吗?

java security random performance entropy

157
推荐指数
11
解决办法
14万
查看次数

Oracle JDBC间歇性连接问题

我遇到了一个非常奇怪的问题这是一个非常简单的JDBC连接到Oracle数据库的用法

OS: Ubuntu
Java Version:  1.5.0_16-b02
               1.6.0_17-b04
Database: Oracle 11g Release 11.1.0.6.0
Run Code Online (Sandbox Code Playgroud)

当我使用jar文件时 OJDBC14.jar它每次都连接到数据库当我使用jar文件时 OJDBC5.jar它连接了一些时间,有时它会抛出一个错误(如下所示)如果我用Java 6重新编译并使用 OJDBC6.jar我获得相同的结果如OJDBC5.jar

我需要JODB5.jar中的特定功能,这些功能在OJDBC14.jar中不可用

有任何想法吗

错误

> Connecting to oracle
    java.sql.SQLException: Io exception: Connection reset
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:74)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:494)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:490)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:202)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:474)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at TestConnect.main(TestConnect.java:13)
Run Code Online (Sandbox Code Playgroud)

以下是我正在使用的代码

import java.io.*;
import java.sql.*;
public class TestConnect {
    public static void main(String[] args) {
        try {
            System.out.println("Connecting to oracle"); …
Run Code Online (Sandbox Code Playgroud)

java oracle jdbc

59
推荐指数
4
解决办法
11万
查看次数

Oracle getConnection运行缓慢

在Java项目中,我使用的是ojdbc6 jar

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.1.0</version>
        <scope>compile</scope>
    </dependenc>
Run Code Online (Sandbox Code Playgroud)

我运行一天的第一次,dataSource.getConnection()很快.第二次通常没关系.接下来的几次大约需要45秒.之后,需要几分钟.一旦我有一个给定应用程序运行的FIRST连接,我得到的任何新连接都非常快.此延迟仅为给定运行获取FIRST连接.

是什么让我的第一次连接变得如此缓慢?

我正在观看netstat并且在成功运行后看不到任何连接.尝试了几个不同的连接池(DBCP,C3PO)没有运气.通过源代码调试,org.springframework.jdbc.datasource.DataSourceUtils的延迟是100%:

Connection con = dataSource.getConnection();
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑了更多细节

1)我正在使用连接池(DBCP或C3PO),它可以保存连接以备将来使用.当我谈到获得新连接时,我的意思是在第一个连接正在使用时......我需要转到数据库并获得新连接.当然,我可以一遍又一遍地从连接池返回并获得相同的连接.但同时获得第二个也很快.

2)我不知道我的DB允许我登录多少个连接.知道这个属性在oracle中的位置吗?

java oracle datasource jdbc

6
推荐指数
1
解决办法
1万
查看次数