我们有一个场景,它需要大约10秒才能让应用程序花费大约10秒来从Application Server获取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在600ms内返回无效的用户名/密码。
为什么会发生这种情况的任何线索以及Oracle中是否有一些参数可用于快速获取和错误,而不是10秒延迟。
提前致谢。 拉夫