注册

jdbc连接显示dm.jdbc.driver.DMException: 网络通信异常

冯伟斌 2021/08/27 6062 3

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:win7 家庭高级版
【CPU】:
【问题描述】*:相同的环境,其他机器正常访问,这台机器显示通信异常,jdk版本1.8,达梦驱动18.
image.png
image.png
image.png
DriverManager.getConnection(“jdbc:dm://192.168.1.150:5236/ITRM”)
trying dm.jdbc.driver.DmDriver
SQLState(08S01) vendor code(6001)
dm.jdbc.driver.DMException: 网络通信异常
at dm.jdbc.driver.DBError.throwException(DBError.java:705)
at dm.jdbc.a.a.a(DBAccess.java:800)
at dm.jdbc.a.a.a(DBAccess.java:168)
at dm.jdbc.driver.DmdbConnection.openConnection(DmdbConnection.java:634)
at dm.jdbc.driver.DmDriver.do_connect(DmDriver.java:129)
at dm.jdbc.driver.DmDriver.connect(DmDriver.java:399)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at test.Test.main(Test.java:15)
getConnection failed: dm.jdbc.driver.DMException: 网络通信异常
Exception in thread “main” dm.jdbc.driver.DMException: 网络通信异常
at dm.jdbc.driver.DBError.throwException(DBError.java:705)
at dm.jdbc.a.a.a(DBAccess.java:800)
at dm.jdbc.a.a.a(DBAccess.java:168)
at dm.jdbc.driver.DmdbConnection.openConnection(DmdbConnection.java:634)
at dm.jdbc.driver.DmDriver.do_connect(DmDriver.java:129)
at dm.jdbc.driver.DmDriver.connect(DmDriver.java:399)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at test.Test.main(Test.java:15)
Caused by: java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
at dm.jdbc.a.a.c.a(ByteArrayNode.java:154)
at dm.jdbc.a.a.a.a(Buffer.java:395)
at dm.jdbc.a.a.b(DBAccess.java:864)
at dm.jdbc.a.a.a(DBAccess.java:791)
… 7 more
排查过程:相同的编译结果。再其他机器上也是可以成功执行的。
但因为用的是 jdbc 的通用底层写法。这个写法,不可能有问题。但是,就是在特定的机器上,无法执行。只能说明,在特殊情况下,jdbc和dm 的驱动,有冲突。我用 squrrel sql 在出问题的机器上是可以成功连接dm的。我看了 squirrel sql 的源码。发现它重写了 jdbc 的 DriverManager我们肯定基于通用写法。不会修改DriverManager。

回答 0
暂无回答
扫一扫
联系客服