JT400-JDBC连接被IBMi机器拒绝,但在Windows机器上工作



JT400-当从windows机器连接到IBMi机器时,JDBC连接工作正常。

DriverManager.registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
String sysname = "xxx.xxx.xx.xxx";
String xref = "IBMISQLLIB";
String url = "jdbc:as400://" + sysname + ";translate binary=true;prompt=false;naming=sql;libraries=" + xref;
Connection connection = DriverManager.getConnection(url, "USERNAME", "PASSWORD");
print("Connection created successfully");

但是无法使用相同的代码创建连接-当在同一台IBMi机器上运行代码时(通过"QSH命令项"上的可运行jar(,错误:

java.sql.SQLException:应用程序请求程序无法建立联系(远程主机拒绝了尝试的连接操作。(连接被拒绝((com.ibm.as400.access.JDError.createSQLExceptionSubClass(JDError.java:887(网址:com.ibm.as400.access.JDError.sthrowSQLException(JDError.java:610(网址:com.ibm.as400.access.JDError.sthrowSQLException(JDError.java:568(在com.ibm.as400.access.AS400JDBConnectionImpl.setProperties(AS400JDBConnection Impl.java:3522(在com.ibm.as400.access.AS400JDBCDriver.prepareConnection(AS400JDBCDriver.java:1430(com.ibm.as400.access.AS400JDBCDriver.initializeConnection(AS400JDBCDriver.java:1280(在com.ibm.as400.access.AS400JDBCDriver.connect(AS400JDBCDriver.java:403(位于java.sql.DriverManager.getConnection(DriverManager.java:675(java.sql.DriverManager.getConnection(DriverManager.java:258(

知道现在出了什么问题吗??

  • 因为这几天前还在工作
  • 相同的代码在其他IBMi服务器上工作

有关IBMi机器的更多详细信息如下:

  1. 连接配置文件中使用的用户名没有访问权限问题
  2. IBMi机器上未设置防火墙
  3. TCP/IP配置已按照说明进行验证-在IBM i上配置TCP/IP

数据库主机服务器是否处于活动状态?使用WRKACTJOB查看作业名称QZDASOINT是否正在运行。

如果没有,请尝试使用命令STRHOSTSVR*DATABASE启动主机服务器。

如果您从QSH运行jar文件,则需要确保允许多线程。这可能会把事情搞砸。

如果在PC上运行,相同的代码应该可以正常工作,除非您可能也使用不同版本的jt400.jar文件。

也可以尝试使用localhost而不是系统名称。

甚至可以编写一个Java小类来打开和关闭连接。

问题与默认TCP/IP端口有关,该端口未侦听JDBC连接请求。

最后,通过重新启动IBMi机器,问题得到了解决。

:(

相关内容

  • 没有找到相关文章

最新更新