ibatis

Ibatis.Net执行Sql超时commandTimeout的一个坑

项目中使用了Ibatis.Net,数据库是Mysql,在做一个批量Update的操作时,需要执行40几秒,在执行到30秒的时候,会抛出异常:Timeout expired , The timeout period elapsed prior to completion of the operation or the server is not responding

网上一查,说设置mysql的command timeout,于是在Ibatis.Net的providers.config文件里设置了commandTimeout="600" 参数。

结果一测试,还是报错,一样的异常。。。

没办法了,只能跟踪一下Ibatis.Net的源码,终于发现了SqlMapSession.CreateCommand这个方法里有个坑。。。就是把_connection.ConnectionTimeout赋值给了command.CommandTimeout。。。

这上面竟然还注释着 MySql provider doesn't support it !

还好,找到了原因,就能解决,在MySql的连接字符串上加上

Connect Timeout=600

这样Ibatis.Net就会把它赋值给command.CommandTimeout

测试不再报错了,ok问题解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值