- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们有几台服务器,每台服务器都运行 Oracle 数据库 11g 版本 11.2.0.1.0 - 64 位。我们通过 JDBC 进行连接,如下所示:
public Connection createConnection(String drvClass, String connURL, String user, String pass)
throws ClassNotFoundException, SQLException {
Class.forName(drvClass);
Connection conn = DriverManager.getConnection(connURL, user, pass);
for (SQLWarning warn = conn.getWarnings(); warn != null; warn = warn.getNextWarning()) {
System.out.println("SQL Warning:");
System.out.println("State : " + warn.getSQLState());
System.out.println("Message: " + warn.getMessage());
System.out.println("Error : " + warn.getErrorCode());
}
return conn;
}
drvClass 将是 oracle.jdbc.OracleDriver
。尝试连接的程序在每台服务器上运行。可以从具有完全相同连接属性的其他程序访问该数据库。
也可以让这个程序在另一台服务器上运行并让它连接到有问题的数据库。它可以建立连接。如果该程序在本地服务器上运行,则该程序无法运行。我们尝试了 IP 和服务器名。
在一台服务器上,代码卡在 DriverManager.getConnection()
处,我无法找出原因。有谁知道这可能是什么原因造成的吗?
数据库日志中没有与此相关的条目。
阻塞线程的堆栈跟踪:
"pool-27-thread-1" - Thread t@1483
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at oracle.net.ns.Packet.receive(Packet.java:239)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:255)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:973)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:291)
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(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.companyname.DBConnectionInternal.DBConnection.createConnection(DBConnection.java:19)
at com.companyname.exportadapter.ExportCollector.initDatabase(ExportCollector.java:259)
at com.companyname.exportadapter.ExportCollector.run(ExportCollector.java:120)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- locked <50be77> (a java.util.concurrent.ThreadPoolExecutor$Worker)
<小时/>
如果我设置DriverManager.setLoginTimeout(10)
然后我得到Io 异常:套接字读取超时
。
最佳答案
您可能会建立一些不必要的联系。
使连接
类静态
,每当您创建新连接时,请检查旧连接是否处于 Activity 状态或关闭,然后您必须创建新连接,否则返回旧连接。
喜欢
if(conn!=null & !conn.isClosed()){
// code for create connection
}
这还取决于数据库端的配置方式,因此请与您系统的 DBA 进行检查。
我建议使用连接池。
希望这有帮助。
关于java - Oracle JDBC DriverManager.getConnection() 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23868433/
调用oracle函数时DriverManager.getConnection与DriverManager.registerDriver()有什么区别? 我经常只使用DriverManager.getC
我想对这段代码进行单元测试,以验证调用了哪个 DriverManager.getConnection() 。DriverManager.getConnection(url,user,pass) 或 D
Apache Tomcat 6.0.35 hibernate 问题 com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@352e71c4
我正在尝试为调用 DriverManager.getConnection() 的方法编写单元测试。我正在使用 PowerMock 1.5 和 easymock。不知何故,Powermock 无法模拟
最近,我们在Hive连接中添加了SSL。我们通过添加 ssl=1;sslTrustStore=C:\\keytabs\\keys.truststore;trustStorePassword=foo 到
我有以下代码来测试新服务器上访问数据库的链接,一切都适用于现有服务器,并且我能够访问该文件夹。 !if.exists 返回 true,我可以使用 Runtime.getRuntime().exec("
我有一个应用程序,其目的是支持 jdbc:hive:// 和 jdbc:hive2:// 协议(protocol)的 JDBC 连接。以下代码加载这两种协议(protocol)相应的 JDBC 驱动程
尝试连接到我的 Oracle 11.1.0.7.0 时数据库使用 jdbc 和 ojdbc6.jar在匹配版本中,我发现了两个变体。 假设一个字符串 DBURL 形式的 jdbc:oracle:thi
我一直在尝试检测 getconnection 方法以获取在 JDBC 连接建立期间传递的 DB_URL。据我所知,DriverManager 的检测工作正常,因为注入(inject)部分工作正常而不会
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在使用 Java 和 mysql 作为数据库,但遇到了一个奇怪的问题:我的一位客户的连接非常不稳定,有时丢包率可能很高。好吧,我知道这不是软件的错误,但我去那里进行了测试,当程序调用“Driver
我正在开发一个 Java 应用程序,该应用程序可以连接到我的办公室网络,也可以不连接到我的办公室网络。 我的问题是,当用户未连接时,DriverManager.getConnection() 需要长达
我们在找出与 DriverManager 建立连接时收到错误消息的原因时遇到了一些麻烦。 这是我们的代码 package Databank; import java.sql.Connection; i
我有一个类,它连接到 H2 数据库并运行多个 SQL 语句。 public class H2Persistence implements IPersistence { private Conn
我正在尝试将 Java 程序连接到本地主机中的数据库。我的问题看起来很简单,但我找不到任何答案。 当我尝试编译时,出现以下错误: DriverManager.getConnection cannot
我正在尝试使用标准 JDBC 方式连接到数据库 connection = DriverManager.getConnection(url, username, password); 是否有连接超时的最
这个问题在这里已经有了答案: Connect Java to a MySQL database (14 个答案) 关闭 8 年前。 我正在尝试使用一个 Java 类,它在过去对我来说已经非常有用,以
我正在编写一些 gradle 插件,现在我遇到了 DriverManager 没有看到 buildscript 依赖项中定义的 JDBC 驱动程序的问题: 我有下一个 build.gradle 文件:
我正在编写一些 gradle 插件,现在我遇到了 DriverManager 没有看到 buildscript 依赖项中定义的 JDBC 驱动程序的问题: 我有下一个 build.gradle 文件:
我正在使用 jruby,并通过 db2jcc4.jar 文件调用 DB2/BIGSQL 数据库。我在插入和选择方面都建立了完美的连接,然后突然间我开始收到错误“未初始化的常量 DriverManage
我是一名优秀的程序员,十分优秀!