问题描述:
多次执行同一sql,频繁出现 sql server未返回响应。连接已关闭
原因分析:
在控制台返回的内容是在插入参数 error occur setting parameter
由于性能要求,我这是一条大sql,插入参数多达一千多个。
解决方案:
在Hirika参数配置中加入参数
connection-timeout: 100000
conection-test-query: select 1
添加了此参数后,未返回响应的报错频率大幅度下降,但偶尔还是会有,其实这个方案是我猜的,由于我的报错发生在参数插入阶段,我猜测是因为我的参数太多,插入参数时间过长未返回相应被数据库框架判定为连接已关闭,所以我把连接超时的时间设置长一些以达到目的,我一直在找这个连接超时的参数是在一个什么场景连接超时,但是没找到,下来再想想办法找找看。
由于偶尔还是会有报错,我又尝试修改了数据库连接池的数量,由50改成了10,结果频繁出现Error attempting to get column XXX sql server返回的响应不完整 ,百度说是并发多达200以上容易出现取值偏差,最后还是把数量改回50,减少每次查询的传参,基本屏蔽了这几个bug。