连接到远程 DB2 时出现“操作超时。ERRORCODE=-4499,SQLSTATE=08001”

2024-05-15

我正在尝试使用 IBM Type 4 JDBC 驱动程序连接到远程 DB2。 这是我的配置:

Server:

  • Windows 7 专业版
  • DB2 LUW V10.5
  • DB2 SVCENAME=50000
  • TCP/IP 进行通信

Client:

  • 操作系统/x V10.10.3
  • 火星日食
  • IBM DB2 Java 类型 4 驱动程序

据我了解,如果您用 Java 编写客户端应用程序并使用类型 4(纯 Java)驱动程序,则客户端不必安装客户端。该应用程序将使用 DRDA 直接连接到远程数据库。

这是我尝试访问远程 db2 的一段代码:

public class BlobRetrieval {

    static String databaseDriver;
    static String dbURL;
    static String userName;
    static String password;
    static Connection passConn; 

public static void main(String[] args) {        
    databaseDriver = "com.ibm.db2.jcc.DB2Driver";
    dbURL = "jdbc:db2://192.168.1.81:50000/LOBDB";
    userName = "ace";
    password = "ace";
    try {
        Class.forName(databaseDriver).newInstance();
        System.out.println("register successful");
        Connection connection = DriverManager.getConnection(dbURL, userName, password);
        System.out.println("connection successful");
        passConn = connection;
        PreparedStatement preparedStatement=connection.prepareStatement("SELECT BOOKCOVER FROM BOOKCOVERS WHERE BOOKISBN=?");
        preparedStatement.setString(1, "0738425826");
    }
}

当我执行这些语句时,出现以下错误:

注册成功 com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException:[jcc][t4][2043][11550][4.19.26]异常 java.net.ConnectException:打开服务器套接字时出错 /192.168.1.81 在端口 50,000 上,并显示消息:操作超时。 错误代码=-4499,SQLSTATE=08001 在 com.ibm.db2.jcc.am.kd.a(来源未知) 在 com.ibm.db2.jcc.am.kd.a(来源未知) 在 com.ibm.db2.jcc.t4.ac.a(来源未知) 位于 com.ibm.db2.jcc.t4.ac.(来源未知) 在 com.ibm.db2.jcc.t4.a.b(来源未知) 在 com.ibm.db2.jcc.t4.b.newAgent_(来源未知) 在 com.ibm.db2.jcc.am.Connection.initConnection(来源未知) 位于 com.ibm.db2.jcc.am.Connection。(来源未知) 位于 com.ibm.db2.jcc.t4.b.(来源未知) 在 com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(来源未知) 在 com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(来源未知) 在 com.ibm.db2.jcc.DB2Driver.connect(来源未知) 在 com.ibm.db2.jcc.DB2Driver.connect(来源未知) 在 java.sql.DriverManager.getConnection(DriverManager.java:664) 在 java.sql.DriverManager.getConnection(DriverManager.java:247) 在 dbAccessPackage.BlobRetrieval.main(BlobRetrieval.java:30) 原因:java.net.ConnectException:操作超时 在 java.net.PlainSocketImpl.socketConnect(本机方法) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 java.net.Socket.connect(Socket.java:589) 在 com.ibm.db2.jcc.t4.w.run(来源未知) 在 java.security.AccessController.doPrivileged(本机方法)


在许多情况下,服务器上的本地防火墙是一个问题。 Windows 防火墙可能阻止传入请求。

您能否检查端口是否打开(防火墙报告的任何阻止)?在 DB2 服务器的“db2diag.log”(诊断日志文件)中是否看到任何活动?作为快速测试,您可以从客户端计算机执行“telnet 192.168.1.81 50000”。如果成功并且您获得了连接,那么防火墙就不再是问题了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接到远程 DB2 时出现“操作超时。ERRORCODE=-4499,SQLSTATE=08001” 的相关文章

  • CSS 中的边框图像开头

    MDN 是这样定义的边框图像开始 https developer mozilla org en docs Web CSS border image outset border image outset 属性描述了边框的数量 图像区域超出边框

随机推荐