注册

dm.jdbc.driver.DMException: 网络通信异常

火炬 2025/07/02 104 3

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8_20250613_HWarm_kylin10_64_rq_ent_8.1.4.80_pack8.tar
【操作系统】:Kylin-Desktop-V10-SP1-2403-Release-20240430-arm64
【CPU】:架构: aarch64
CPU 运行模式: 32-bit, 64-bit
字节序: Little Endian
CPU: 4
在线 CPU 列表: 0-3
每个核的线程数: 1
每个座的核数: 4
座: 1
NUMA 节点: 1
厂商 ID: ARM
型号: 3
型号名称: Cortex-A72
步进: r0p3
BogoMIPS: 125.00
NUMA 节点0 CPU: 0-3
Vulnerability Gather data sampling: Not affected
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Retbleed: Not affected
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Vulnerable
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected
标记: fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
【问题描述】*:采用docker部署的达梦V8数据库,查看日志启动也都正常,容器内也能连接到数据库,但是宿主机却无法连接:
root@hj-pc:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
be59added03f dm8:dm8_20250618_rev275278_HWarm_kylin10_64 "/opt/startup.sh" 36 minutes ago Up 36 minutes 52141/tcp, 61141/tcp, 0.0.0.0:25236->5236/tcp, :::25236->5236/tcp dmsingle
本地通过telnet也能连接25236,但是通过jdbc就连接不了,报错:
dm.jdbc.driver.DMException: 网络通信异常
at dm.jdbc.driver.DBError.throwException(SourceFile:801)
at dm.jdbc.a.a.a(SourceFile:274)
at dm.jdbc.a.a.e(SourceFile:655)
at dm.jdbc.driver.DmdbConnection.openConnection(SourceFile:691)
at dm.jdbc.internal.conf.EP.connect(SourceFile:143)
at dm.jdbc.internal.conf.EPGroup$EPSelector.select(SourceFile:485)
at dm.jdbc.internal.conf.EPGroup.connect(SourceFile:329)
at dm.jdbc.driver.DmDriver.do_connect(SourceFile:164)
at dm.jdbc.driver.DmDriver.connect(SourceFile:450)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at com.hok.dm8.DMJdbcConnTest.main(DMJdbcConnTest.java:30)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at dm.jdbc.util.buffer.ByteArrayNode.load(SourceFile:129)
at dm.jdbc.util.buffer.Buffer.load(SourceFile:365)
at dm.jdbc.a.c.a(SourceFile:208)
at dm.jdbc.a.a.e(SourceFile:389)
at dm.jdbc.a.a.a(SourceFile:263)
... 10 more
驱动使用的是:
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.3.140</version>
</dependency>
测试代码:
public class DMJdbcConnTest {

// 定义连接
static Connection con = null;
// 定义 DM JDBC 驱动串
static String cname = "dm.jdbc.driver.DmDriver";
// 定义 DM URL 连接串
static String url = "jdbc:dm://localhost:25236";
// 定义连接用户名
static String userid = "SYSDBA";
// 定义连接用户口令
static String pwd = "SYSDBA_dm001";
public static void main(String[] args) {
try {
Class.forName(cname);
con = DriverManager.getConnection(url, userid, pwd);
con.setAutoCommit(true);
System.out.println("[SUCCESS]conn database");
} catch (Exception e) {
e.printStackTrace();
System.out.println("[FAIL]conn database:" + e.getMessage());
}
}
public void disConn(Connection con) throws SQLException {
if (con != null) {
con.close();
}
}

}

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