1

我们有一个场景,它需要大约 10 秒来获取应用程序需要大约 10 秒才能从应用程序服务器获取 SQL 异常(声明登录被拒绝,因为用户 ID/密码组合无效)。

我写了一个小的java应用程序只是为了直接启动sql连接。

公共类 TestUsingJ2SE {

/**
 * @param args
 */
public static void main(String[] args) {

    Date start = new Date();

    Connection conn = null;

    Date end = new Date();

    Properties connectionProps = new Properties();
    connectionProps.put("user", "ivr_cds");
    connectionProps.put("password", "something");

    start = new Date();

    try {
        String url = "jdbc:oracle:thin:@localhost:1521:XE";
        DriverManager.getDriver(url);
        conn = DriverManager.getConnection(url, connectionProps);
    } catch (Exception e) {
        System.out.println("Driver Manager --> error ..." + e.getMessage());
    }

    end = new Date();

    System.out.println("Using Driver Manager ..");
    System.out.println("Started at:" + start + " and finished at:" + end);
    System.out.println("Duration :" + (end.getTime() - start.getTime()));

}

}

我们发现 oracle 仍然需要 10 秒才能返回无效/用户名密码错误。我用于连接到 oracle 的 jar 是 ojdbc5.jar(JAVA 5 版本),因为我们的环境是在 WAS 6.1.2 上。

当我使用 ojdbc6.jar(JAVA 6 版本)并运行上述程序时,oracle 在 600 毫秒内返回无效的用户名/密码。

任何关于为什么会发生这种情况的线索,以及 Oracle 中是否有一些参数可以用来快速获取和出错,而不是 10 秒的延迟。

提前致谢。高拉夫

4

0 回答 0