FreeSql
FreeSql copied to clipboard
达梦数据库,数据库连接总是“请求执行超时”!
问题描述及重现代码:
页面刷新就报错,这可能是什么原因导致的呢?
数据库版本
DM7
安装的Nuget包
FreeSql.All.3.2.805
.net framework/. net core? 及具体版本
.NET6
连接串用文档的吗?
完全参照文档写的
请求执行超时,你用原生ado.net测试过没有?
还没有,达梦数据库的问题?我去测试下
和数据库无关和驱动有关,但是这个错误是驱动执行超时,例如,查询的内容被其他事务锁住了
和数据库无关和驱动有关,但是这个错误是驱动执行超时,例如,查询的内容被其他事务锁住了
我观察了一下,在程序刚启动时和隔一段时间就会出现超时,只要出现了超时那一段时间所有的操作都会超时,如果没有超时那一段时间都会正常 那么这种情况,能不能提供一下解决的思路呢 我现在也用ado.net去测试一下 如果按照您说的如果是事务锁住了,那么我用ado.net去测试似乎也没有什么意义,因为不太可能用ado.net将数据库操作都实现一遍
只要出现了超时那一段时间所有的操作都会超
针对这个,如果是状态不可用错误,可以使用 UseAdoConnectionPool(true) 设置。
但是你上面发的错误,确实是 ado.net 底层抛出的超时。
UseAdoConnectionPool 好的我试试,我也用ado.net试试
可以看下这个帖子: https://eco.dameng.com/community/question/813b5813c36120783124ef96a39a575c 23 年也有人反馈过
目前测试下来是达梦 ADO.NET 库的 Bug, commandTimeout 默认为 30s, 如果使用同一连接反复执行查询语句(最好是复杂的查询, 简单的查询没事), 当当前执行的时间点减去首次执行的时间点的值大于 commandTimeout 设置的值, 就必出现错误代码 -608, 错误消息"请求执行超时";
测试了多种方案, 都没有很好的解决, 目前有效的是把连接字符串里的 commandTimeout 设置为 0, 但是这样语句超时也没办法了
@trackycn 命令超时问题,不是达梦专有的,其他数据库也会,默认值一般在15-30秒的样子。