应用启动时出现以下错误:
Caused by: dm.jdbc.driver.DMException: 网络通信异常
Caused by: java.io.EOFException
错误发生在 SysDictTypeServiceImpl.init() 方法初始化字典缓存时。
修改文件: gw-admin/src/main/resources/application-druid.yml
关键调整:
修改文件: gw-system/src/main/java/com/goldenwater/system/service/impl/SysDictTypeServiceImpl.java
功能说明:
修改内容:
loadingDictCache() 方法中添加 try-catch 保护验证数据库服务状态
# 测试数据库服务器连通性
ping 39.98.38.2
# 测试数据库端口连通性
telnet 39.98.38.2 30236
检查防火墙规则
检查数据库服务器负载
如果当前使用的达梦驱动版本较老,建议升级到最新稳定版:
联系 DBA 检查达梦数据库服务器配置:
MAX_SESSIONS - 最大会话数CONNECT_TIMEOUT - 连接超时设置KEEP_ALIVE - 保持活动连接配置如果问题持续存在,可以考虑:
在 JDBC URL 中添加参数:
url: jdbc:dm://39.98.38.2:30236?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&schema=TBA_HZZ&connectTimeout=60000&socketTimeout=120000
启用 TCP KeepAlive: 在操作系统层面启用 TCP KeepAlive 以防止防火墙断开空闲连接
访问 Druid 监控页面:http://localhost:8080/druid/
查看:
关注以下日志信息:
如果问题依然存在,可以使用 Wireshark 或 tcpdump 进行网络抓包,分析 TCP 连接断开的具体原因。
重启应用后,观察:
如果以上方案都无法解决问题,请提供: