FreeSql icon indicating copy to clipboard operation
FreeSql copied to clipboard

达梦数据库,数据库连接总是“请求执行超时”!

Open ZQL200207 opened this issue 1 year ago • 10 comments

问题描述及重现代码:

页面刷新就报错,这可能是什么原因导致的呢?

企业微信截图_17029816463144

数据库版本

DM7

安装的Nuget包

FreeSql.All.3.2.805

.net framework/. net core? 及具体版本

.NET6

ZQL200207 avatar Dec 19 '23 10:12 ZQL200207

连接串用文档的吗?

2881099 avatar Dec 19 '23 11:12 2881099

完全参照文档写的

image

ZQL200207 avatar Dec 20 '23 03:12 ZQL200207

请求执行超时,你用原生ado.net测试过没有?

2881099 avatar Dec 20 '23 06:12 2881099

还没有,达梦数据库的问题?我去测试下

ZQL200207 avatar Dec 20 '23 06:12 ZQL200207

和数据库无关和驱动有关,但是这个错误是驱动执行超时,例如,查询的内容被其他事务锁住了

2881099 avatar Dec 20 '23 07:12 2881099

和数据库无关和驱动有关,但是这个错误是驱动执行超时,例如,查询的内容被其他事务锁住了

我观察了一下,在程序刚启动时和隔一段时间就会出现超时,只要出现了超时那一段时间所有的操作都会超时,如果没有超时那一段时间都会正常 那么这种情况,能不能提供一下解决的思路呢 我现在也用ado.net去测试一下 如果按照您说的如果是事务锁住了,那么我用ado.net去测试似乎也没有什么意义,因为不太可能用ado.net将数据库操作都实现一遍

ZKUTF-8 avatar Dec 25 '23 09:12 ZKUTF-8

只要出现了超时那一段时间所有的操作都会超

针对这个,如果是状态不可用错误,可以使用 UseAdoConnectionPool(true) 设置。

但是你上面发的错误,确实是 ado.net 底层抛出的超时。

2881099 avatar Dec 25 '23 09:12 2881099

UseAdoConnectionPool 好的我试试,我也用ado.net试试

ZKUTF-8 avatar Dec 25 '23 10:12 ZKUTF-8

可以看下这个帖子: https://eco.dameng.com/community/question/813b5813c36120783124ef96a39a575c 23 年也有人反馈过

目前测试下来是达梦 ADO.NET 库的 Bug, commandTimeout 默认为 30s, 如果使用同一连接反复执行查询语句(最好是复杂的查询, 简单的查询没事), 当当前执行的时间点减去首次执行的时间点的值大于 commandTimeout 设置的值, 就必出现错误代码 -608, 错误消息"请求执行超时";

测试了多种方案, 都没有很好的解决, 目前有效的是把连接字符串里的 commandTimeout 设置为 0, 但是这样语句超时也没办法了

trackycn avatar Mar 04 '24 09:03 trackycn

@trackycn 命令超时问题,不是达梦专有的,其他数据库也会,默认值一般在15-30秒的样子。

2881099 avatar Mar 04 '24 11:03 2881099